Швидкий старт
Пʼять запитів ведуть від свіжого ключа API до запланованого поста: дізнатися, хто ви, перелічити акаунти, спланувати пост, створити його, прочитати його стан. Кожен запит — https://api.dropslate.top/v1 плюс шлях, із ключем у заголовку Authorization і JSON-тілами. Завантаження файлу — єдиний додатковий крок, описаний у робочому прикладі; ця сторінка планує текстовий пост, щоб потік був коротким.
Перед початком
Section titled “Перед початком”- Платний тариф — API починається з Creator — і ключ API зі
write: Налаштування → Ключі API → Новий ключ, позначте Дозволити створювати й публікувати пости. Ключ показується раз. - Підключена Сторінка Facebook або профіль Threads: обидва беруть пост без файлу. YouTube і Instagram потребують медіа.
curlіjqабо будь-який HTTP-клієнт.
-
Задайте ключ. В оболонці, не у файлі, який ви комітите, і ніколи в промпті агенту:
Terminal window export KEY="ds_live_xxxxxxxxxxxxxxxxxxxx"export API="https://api.dropslate.top/v1" -
Хто я.
GET /whoamiвідповідає workspace, його часовим поясом і тарифом, тим, що може ключ, і використанням за цей місяць.Terminal window curl -s "$API/whoami" -H "Authorization: Bearer $KEY" | jq{"workspace": { "id": "ws_3k9d", "slug": "what-we-made", "name": "What We Made", "plan": "creator", "currency": "USD", "tz": "Europe/Kiev" },"user": { "id": "usr_a1", "name": "Dmytro", "email": null },"credential": { "kind": "api_key", "name": "n8n integration", "scopes": ["read", "write"] },"usage": { "plan": "creator", "period": "2026-09", "posts": { "used": 46, "limit": 200 }, "storage": { "usedBytes": 1288490188, "limitBytes": 16106127360 }, "accounts": { "used": 3, "limit": 6 } }}tz— пояс, у якому читається кожен час;scopesмає міститиwriteдля двох останніх кроків. -
Перелічіть акаунти. Id акаунтів беруться звідси й нізвідки більше.
Terminal window curl -s "$API/accounts" -H "Authorization: Bearer $KEY" | jq '.accounts[] | {id, platform, displayName, status}'{ "id": "acc_fb_7c2e", "platform": "facebook", "displayName": "What We Made", "status": "ok" }{ "id": "acc_th_91af", "platform": "threads", "displayName": "@whatwemade", "status": "ok" }Публікувати можна лише в акаунт зі
status: "ok";expiredабоrevokedпотребує, щоб людина перепідключила його в дашборді. -
Сплануйте.
POST /posts/planбере пост і відповідає по рядку на акаунт із перевіркою. Нічого не створює.Terminal window cat > post.json <<'EOF'{"targets": { "accountIds": ["acc_fb_7c2e", "acc_th_91af"] },"mediaIds": [],"text": "Office hours today at 18:00 Kyiv. Bring one question.","when": { "publishAt": "2026-09-29T17:00", "timezone": "Europe/Kiev" },"perPlatform": { "facebook": { "contentType": "text", "link": "https://dropslate.top/" }, "threads": { "topicTag": "OfficeHours" } }}EOFcurl -s -X POST "$API/posts/plan" -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d @post.json | jq{"ok": true,"status": "queued","rows": [{ "accountId": "acc_fb_7c2e", "platform": "facebook", "publishAt": "2026-09-29T14:00:00.000Z", "ok": true, "issues": [] },{ "accountId": "acc_th_91af", "platform": "threads", "publishAt": "2026-09-29T14:00:00.000Z", "ok": true, "issues": [] }],"quota": { "used": 46, "limit": 200, "requested": 2 },"table": "account network time check\nWhat We Made facebook 29 Sep, 17:00 (Kyiv) ok\n@whatwemade threads 29 Sep, 17:00 (Kyiv) ok"}Рядок з
ok: falseперелічуєissues— кожен{code, message, hint}— іokзгори стаєfalse.table— той самий текст, який MCP-агент показує людині. -
Створіть. Те саме тіло з
confirm: true. Без нього відповідь —409 confirm_required, і нічого не створюється.Terminal window jq '. + {confirm: true}' post.json | curl -s -X POST "$API/posts" -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d @- | jq '.posts[] | {id, status, statusLine}'{ "id": "pst_5e1b", "status": "queued", "statusLine": "Queued. Facebook · What We Made · 29 Sep, 17:00 (Kyiv)." }{ "id": "pst_5e1c", "status": "queued", "statusLine": "Queued. Threads · @whatwemade · 29 Sep, 17:00 (Kyiv)." }По посту на акаунт; кожен
queued.when: "now"надсилає одразу;when: "draft"зберігає без часу. -
Прочитайте стан. Після часу —
GET /posts/{id}:Terminal window curl -s "$API/posts/pst_5e1b" -H "Authorization: Bearer $KEY" | jq '{status, externalUrl, error, statusLine}'liveприходить зexternalUrl;failed— зerror.code,error.messageсловами самої мережі йerror.hint. Це єдині стани післяqueued.
Що ви побачите далі
Section titled “Що ви побачите далі”Два пости є в Черзі й Календарі дашборда, як і будь-які інші, з createdVia: "api" у панелі. Повторити, Скасувати і Перепланувати працюють на них там, і ті самі дії існують як POST /posts/{id}/retry, POST /posts/{id}/cancel і PATCH /posts/{id}.
Типові помилки
Section titled “Типові помилки”| Помилка | Причина | Що робити |
|---|---|---|
401 unauthenticated |
Ключ відсутній, з помилкою або відкликаний. | Перевірте Authorization: Bearer ds_live_…; створіть новий ключ, якщо його відкликано. |
403 insufficient_scope на POST /posts |
У ключа лише read. |
Створіть ключ із Дозволити створювати й публікувати пости. |
409 confirm_required |
Бракує confirm: true. |
Додайте; нічого не створено. |
402 quota_exceeded |
Пости місяця або доступ тарифу до API. | Тіло несе limit, used і upgradeUrl. |
404 not_found на id акаунта |
Id не в цьому workspace. | Беріть id з GET /accounts. |
429 rate_limited |
600 запитів за 10 хвилин з цієї адреси або 60 POST /posts за годину. |
Зачекайте секунди з Retry-After. |
Повʼязане
Section titled “Повʼязане”- Робочий приклад — той самий потік із завантаженням файлу й опитуванням, у curl, Node і Python.
- Автентифікація, Помилки, Обмеження частоти
- Довідник OpenAPI — кожне поле кожного маршруту.