К содержимому

Изменить текст заметки

PATCH/api/v1/pastes/{id}

Доступ
Ключ API
Право
content:write

Заменяет текст с проверкой ревизии; квота пересчитывается по байтам UTF-8, адрес, пароль и доступ не меняются. Устаревшая ревизия — 409 PASTE_REVISION_CONFLICT с currentRevision: сохрани черновик, загрузи актуальный текст и реши конфликт до повтора.

Пример запроса

curl -X PATCH "https://lac.pics/api/v1/pastes/Xq3u9RkT0bLmA7cV2pWz1eFy" \
  -H "Authorization: Bearer lac_api_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "# Release notes\n\n- Faster uploads",
  "revision": 1,
  "format": "markdown",
  "language": "text"
}'

Параметры

Путь

  • idstringобязательный

    id файла или заметки.

Тело запроса

application/jsonобязательный

  • textstringобязательный

    Текст заметки, 1–200 000 символов.

    длина 1–200 000

  • revisionintegerобязательный

    Ревизия, от которой сделана правка: revision из GET /pastes/{id}.

    1–2 147 483 646

  • formatstringобязательный

    plain — текст, markdown — Markdown, code — код с подсветкой.

    значения: "plain" "markdown" "code"

  • languagestringобязательный

    Язык подсветки; вне формата code становится text.

    значения: "text" "javascript" "typescript" "json" "python" "bash" "css" "xml" "sql" "rust" "go" "c" "cpp" "csharp" "yaml"

Ответы

  • 200ГотовоContent
    • idstringобязательный

      id файла.

    • titlestringобязательный

      Название.

    • tagsмассив stringобязательный

      Теги.

      до 10 элементов · без повторов

    • originalNamestring

      Исходное имя файла.

    • typestringобязательный

      IMAGE, VIDEO, PASTE или FOLDER — папка с кодом.

      значения: "IMAGE" "VIDEO" "PASTE" "FOLDER"

    • mimestringобязательный

      MIME-тип сохранённого файла.

    • pasteFormatstringили null

      Формат заметки.

      значения: "plain" "markdown" "code"

    • pasteLanguagestringили null

      Язык подсветки заметки.

    • folderFilesintegerили null

      У папки с кодом — сколько в ней файлов; у остального null.

      от 1

    • revisionintegerобязательный

      Ревизия текста заметки для правки.

      от 1

    • accessVersionintegerобязательный

      Share access version: 1 for a new file, raised by every change of visibility, password or one-time. From 2 on, url carries it as ?v= so messengers build a fresh link card instead of the one they kept for the previous access.

      от 1

    • sizeinteger · int64обязательный

      Размер в байтах.

    • visibilitystringобязательный

      Доступ: private, unlisted или public.

      значения: "private" "unlisted" "public"

    • allowDownloadbooleanобязательный

      Показывается ли кнопка скачивания.

    • passwordProtectedbooleanобязательный

      Есть ли пароль.

    • oneTimebooleanобязательный

      Одноразовая ли ссылка.

    • consumedAtstring · date-timeили null

      Когда одноразовая ссылка была открыта.

    • readExpiresAtstring · date-timeили null

      До какого момента открывший одноразовую ссылку может смотреть файл.

    • readMaxExpiresAtstring · date-timeили null

      Самый поздний конец доступа по одноразовой ссылке.

    • hasVideoTextboolean

      Есть ли у видео субтитры или расшифровка.

    • videoTextRevisioninteger

      Ревизия текста видео.

      0–2 147 483 647

    • viewsintegerобязательный

      Засчитанные открытия гостями, без повторов в пределах доступа зрителя (обычно сутки). Просмотры владельца не считаются.

      от 0

    • viewLimitintegerили null

      Лимит просмотров (Pro) или null.

      1–1 000 000

    • viewLimitReachedAtstring · date-timeили null

      Когда лимит просмотров исчерпан; null, пока просмотры есть или лимита нет.

    • mediaStatusstring

      Обработка: PROCESSING — идёт, READY — готово, FAILED — не удалась. Воспроизведение и превью — после READY; оригинал владелец может скачать и раньше, с ?download=1.

      значения: "PROCESSING" "READY" "FAILED"

    • mediaErrorstringили null

      Причина, если обработка не удалась.

    • widthintegerили null

      Ширина в пикселях.

    • heightintegerили null

      Высота в пикселях.

    • durationMsintegerили null

      Длительность видео в миллисекундах.

    • videoCodecstringили null

      Кодек видео.

    • hasAudioboolean

      Есть ли звук.

    • previewUrlstringили null

      Адрес зашифрованного превью; доступ — как у самого файла.

    • expiresAtstring · date-timeили null

      Когда файл и ссылка перестанут работать; null — без срока.

    • createdAtstring · date-timeобязательный

      Когда создан.

    • urlstring · uriобязательный

      Ссылка на страницу файла.

    • mediaUrlstringобязательный

      Адрес самого файла.

    • moderationHoldstringили null

      Автопроверка: review — скрыт до решения модератора, blocked — скрыт модератором. Другие видят такой файл как приватный.

      значения: "review" "blocked"

    • favoriteboolean

      В избранном (в списках).

    • ownedboolean

      Свой файл (в списках).

    • authorobject

      Автор.

      3 поля
      • idstring

        id автора.

      • usernamestring

        Никнейм.

      • namestring

        Имя.

  • 400Некорректный запрос
  • 401Нужен действующий ключ
  • 403Нет права или функции тарифа
  • 404Не найдено
  • 409КонфликтPASTE_REVISION_CONFLICT
  • 410Файл удалён или истёк
  • 413Слишком большой файл или нет места
  • 429Слишком много запросов
  • 503Сервис занят или недоступен

Пример ответа

200 · application/json
{
  "id": "Xq3u9RkT0bLmA7cV2pWz1eFy",
  "title": "capture",
  "tags": [
    "release"
  ],
  "originalName": "capture.png",
  "type": "IMAGE",
  "mime": "image/png",
  "pasteFormat": null,
  "pasteLanguage": null,
  "folderFiles": 1,
  "revision": 1,
  "accessVersion": 1,
  "size": 482133,
  "visibility": "unlisted",
  "allowDownload": true,
  "passwordProtected": false,
  "oneTime": false,
  "consumedAt": null,
  "readExpiresAt": null,
  "readMaxExpiresAt": null,
  "hasVideoText": false,
  "videoTextRevision": 0,
  "views": 3,
  "viewLimit": null,
  "viewLimitReachedAt": null,
  "mediaStatus": "READY",
  "mediaError": null,
  "width": 1920,
  "height": 1080,
  "durationMs": null,
  "videoCodec": null,
  "hasAudio": false,
  "previewUrl": null,
  "expiresAt": null,
  "createdAt": "2026-09-27T09:30:00.000Z",
  "url": "https://lac.pics/s/Xq3u9RkT0bLmA7cV2pWz1eFy",
  "mediaUrl": "/api/media/Xq3u9RkT0bLmA7cV2pWz1eFy",
  "moderationHold": null,
  "favorite": false,
  "owned": true,
  "author": {
    "id": "cmf8a1x2k0000q7lh3v9w2e4d",
    "username": "alex",
    "name": "Alex"
  }
}

Коды ошибок

КодСтатусТекст
PASTE_REVISION_CONFLICT409Заметка изменилась в другой вкладке. Сравни черновик с серверной версией.

Ответы любого метода с ключом — неверный или истёкший ключ, нет права, частые запросы — в разделе Ошибки.

Изменить текст заметки: PATCH /api/v1/pastes/{id} · API lacuna