LanaChat

API: Медіа Vault та підписані завантаження

Читання 5 хвОновлено Markdown

Vault зберігає фото, відео та голосові нотатки авторки, відсортовані по папках. Кожен елемент є Free, Teaser або Paid з ціною в Stars. Файли ніколи не проходять через API: ви запитуєте підписаний URL для завантаження, відправляєте файл туди, а потім підтверджуєте.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/mediaСписок медіа (creator_id= обов’язковий, folder_id=, type=photo,video,voice, access=free,teaser,paid)can_setupPlanned
POST/media/uploadsОтримати підписаний URL для завантаження одного файлу (дійсний 15 хвилин)can_setupPlanned
POST/media/uploads/{upload_id}/completeПідтвердити завантаження; медіа створюється та обробляєтьсяcan_setupPlanned
GET/media/{id}Одне медіа, його прев’ю та де воно використовуєтьсяcan_setupPlanned
PATCH/media/{id}Змінити опис, доступ, ціну або папкуcan_setupPlanned
DELETE/media/{id}Видалити (відмовлено, якщо крок скрипта його використовує)can_setupPlanned
GET/media/foldersПапки Vault авторкиcan_setupPlanned
POST/media/foldersСтворити папкуcan_setupPlanned
PATCH/media/folders/{id}Перейменувати або перемістити папкуcan_setupPlanned
DELETE/media/folders/{id}Видалити порожню папкуcan_setupPlanned

Об’єкт медіа #

{
  "id": "med_5521",
  "creator_id": "cr_lea",
  "type": "photo",
  "status": "ready",
  "folder_id": "vf_3",
  "access": "paid",
  "stars": 300,
  "description": "Beach, golden hour, white bikini",
  "preview_url": "https://cdn.lanachat.ai/w/7Hq2/cr_lea/med_5521/preview.jpg",
  "created_at": "2026-10-06T14:21:40Z"
}
ПолеТипОпис
idstringПочинається з med_
creator_idstringЧий Vault
typestringphoto, video або voice
statusstringprocessing, ready або failed (з причиною)
folder_idstring або nullПапка Vault
accessstringfree, teaser або paid
starsnumber або nullЦіна в Stars, обов’язково при access = paid (від 1 до 100000)
descriptionstring або nullДопомагає AI вибрати потрібне медіа; ніколи не показується фанам
preview_urlstring або nullПрев’ю, коли медіа ready
created_atstringISO 8601, UTC

Медіа #

Список медіа #

GET /media · can_setup

ПараметрТипОбов’язковийОпис
creator_idstringТакАвторка
folder_idstringНіТільки ця папка
typestringНіphoto, video або voice; кілька через кому
accessstringНіfree, teaser або paid; кілька через кому
limit, cursornumber, stringНіПагінація
curl "https://api.lanachat.ai/v1/media?creator_id=cr_lea&type=photo&access=paid" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "med_5522", "creator_id": "cr_lea", "type": "photo", "status": "ready", "folder_id": "vf_3", "access": "paid", "stars": 250, "description": "Mirror, black dress", "preview_url": "https://cdn.lanachat.ai/w/7Hq2/cr_lea/med_5522/preview.jpg", "created_at": "2026-10-06T14:25:10Z" },
    { "id": "med_5521", "creator_id": "cr_lea", "type": "photo", "status": "ready", "folder_id": "vf_3", "access": "paid", "stars": 300, "description": "Beach, golden hour, white bikini", "preview_url": "https://cdn.lanachat.ai/w/7Hq2/cr_lea/med_5521/preview.jpg", "created_at": "2026-10-06T14:21:40Z" }
  ],
  "next_cursor": null
}

Без creator_id API відповідає 400.

Завантаження файлу #

Три виклики: запитати підписаний URL, відправити файл туди, підтвердити.

Крок 1. POST /media/uploads · can_setup

ПараметрТипОбов’язковийОпис
creator_idstringТакЧий Vault приймає файл
file_namestringТакІм’я файлу, наприклад beach-01.jpg
content_typestringТакНаприклад image/jpeg або video/mp4
size_bytesnumberТакРозмір файлу, до 2 ГБ
folder_idstringНіПапка Vault для розміщення
curl -X POST https://api.lanachat.ai/v1/media/uploads \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "file_name": "beach-01.jpg", "content_type": "image/jpeg", "size_bytes": 2483201, "folder_id": "vf_3"}'
{
  "upload_id": "up_7781",
  "url": "https://uploads.lanachat.ai/w/7Hq2/up_7781?X-Signature=…&X-Expires=1759760100",
  "method": "PUT",
  "headers": { "Content-Type": "image/jpeg" },
  "expires_at": "2026-10-06T14:35:00Z"
}

URL дійсний 15 хвилин.

Крок 2. Відправте файл з PUT на url, з точно заданими headers (без заголовка Authorization).

curl -X PUT "https://uploads.lanachat.ai/w/7Hq2/up_7781?X-Signature=…&X-Expires=1759760100" \
  -H "Content-Type: image/jpeg" --data-binary @beach-01.jpg

Крок 3. POST /media/uploads/{upload_id}/complete · can_setup

curl -X POST https://api.lanachat.ai/v1/media/uploads/up_7781/complete \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{
  "id": "med_5521",
  "creator_id": "cr_lea",
  "type": "photo",
  "status": "processing",
  "folder_id": "vf_3",
  "access": "paid",
  "stars": null,
  "description": null,
  "preview_url": null,
  "created_at": "2026-10-06T14:21:40Z"
}

status змінюється з processing на ready (створюються прев’ю та копія для Telegram) або failed з причиною. Вебхук media.ready повідомляє про готовність, див. Webhooks. Підтримуються формати: JPEG, PNG, HEIC, MP4, MOV, OGG та M4A, до 2 ГБ.

Отримати медіа #

GET /media/{id} · can_setup

curl https://api.lanachat.ai/v1/media/med_5521 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Відповідь, об’єкт медіа з прев’ю та інформацією про використання. Невідомий id відповідає 404.

Встановити ціну та опис #

PATCH /media/{id} · can_setup

ПараметрТипОбов’язковийОпис
accessstringНіfree, teaser або paid
starsnumberПри access = paidВід 1 до 100000
descriptionstringНіЩо показує, для AI
folder_idstring або nullНіПеремістити в іншу папку
curl -X PATCH https://api.lanachat.ai/v1/media/med_5521 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"access": "paid", "stars": 300, "description": "Beach, golden hour, white bikini"}'

Відповідь, оновлене медіа. stars обов’язковий при access = paid (від 1 до 100000), інакше API відповідає 400. Опис допомагає AI вибрати потрібне медіа; ніколи не показується фанам.

Видалити медіа #

DELETE /media/{id} · can_setup

curl -X DELETE https://api.lanachat.ai/v1/media/med_5521 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Медіа, яке ще використовується в кроці скрипта, не видаляється (409): спочатку видаліть його зі скрипта.

Папки #

Список папок #

GET /media/folders · can_setup

ПараметрТипОбов’язковийОпис
creator_idstringТакЧий Vault
curl "https://api.lanachat.ai/v1/media/folders?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Створити папку #

POST /media/folders · can_setup

ПараметрТипОбов’язковийОпис
creator_idstringТакЧий Vault
namestringТакНазва папки
curl -X POST https://api.lanachat.ai/v1/media/folders \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Beach"}'

Перейменувати або перемістити папку #

PATCH /media/folders/{id} · can_setup

curl -X PATCH https://api.lanachat.ai/v1/media/folders/vf_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Beach, summer"}'

Видалити папку #

DELETE /media/folders/{id} · can_setup

curl -X DELETE https://api.lanachat.ai/v1/media/folders/vf_3 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Видалити можна лише порожню папку; інакше API відповідає 409.

Останні новини про Lana в Telegram

Нові релізи та запрошення в бету, першими в каналі.