Вступ
REST API Dropslate — той самий контракт, який використовують дашборд і MCP — apps/api/openapi.json, також віддається наживо на GET /v1/openapi.json. Ця сторінка — практичний шлях: отримати ключ, прогнати сценарій завантаження → пост → стан від початку до кінця, потім користуватися згенерованим довідником OpenAPI для кожного поля.
Отримати ключ
Section titled “Отримати ключ”Налаштування → Ключі API → Новий ключ. Назвіть його за призначенням і надайте write, якщо він має публікувати — без цього ключ лише читає акаунти, медіа й пости. Повний ключ (ds_live_...) показується один раз, одразу після створення — скопіюйте його тоді, бо далі сервер зберігає лише його хеш і префікс.
Ключ — не для промпту. Він належить середовищу клієнта або сховищу credential інструмента робочих процесів (credential n8n, підключення Make, файл .env), ніколи тексту, який читає AI-агент: агент, що може прочитати власні інструкції, так само легко прочитає й вставлений у них ключ.
Завантаження → пост → стан
Section titled “Завантаження → пост → стан”Приймальний сценарій цього API — він має проходити від початку до кінця проти живого сервера.
export KEY="ds_live_..."export API="https://api.dropslate.top/v1"
# 1) Who we are, and which account publishesACCOUNT_ID=$(curl -s "$API/accounts" -H "Authorization: Bearer $KEY" | jq -r '.accounts[0].id')
# 2) Start an uploadTICKET=$(curl -s -X POST "$API/media/uploads" \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d '{"filename":"launch.mp4","mime":"video/mp4","size":18874368}')MEDIA_ID=$(echo "$TICKET" | jq -r '.mediaId')UPLOAD_URL=$(echo "$TICKET" | jq -r '.uploadUrl')
# 3) PUT the file's bytes to uploadUrl (not through /v1 - the URL is signed on its own)curl -s -X PUT "$UPLOAD_URL" --data-binary @launch.mp4 -H "Content-Type: video/mp4"
# 4) Create the post (needs the write scope)POST=$(curl -s -X POST "$API/posts" \ -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \ -d "{ \"targets\": {\"accountIds\": [\"$ACCOUNT_ID\"]}, \"mediaIds\": [\"$MEDIA_ID\"], \"text\": \"Launch day.\", \"when\": \"now\", \"confirm\": true }")POST_ID=$(echo "$POST" | jq -r '.posts[0].id')
# 5) Check its statuscurl -s "$API/posts/$POST_ID" -H "Authorization: Bearer $KEY" | jq .statusДалі: Автентифікація, Обмеження частоти, Помилки або довідник OpenAPI поле за полем.