Перейти до змісту

Вступ

REST API Dropslate — той самий контракт, який використовують дашборд і MCP — apps/api/openapi.json, також віддається наживо на GET /v1/openapi.json. Ця сторінка — практичний шлях: отримати ключ, прогнати сценарій завантаження → пост → стан від початку до кінця, потім користуватися згенерованим довідником OpenAPI для кожного поля.

Налаштування → Ключі API → Новий ключ. Назвіть його за призначенням і надайте write, якщо він має публікувати — без цього ключ лише читає акаунти, медіа й пости. Повний ключ (ds_live_...) показується один раз, одразу після створення — скопіюйте його тоді, бо далі сервер зберігає лише його хеш і префікс.

Ключ — не для промпту. Він належить середовищу клієнта або сховищу credential інструмента робочих процесів (credential n8n, підключення Make, файл .env), ніколи тексту, який читає AI-агент: агент, що може прочитати власні інструкції, так само легко прочитає й вставлений у них ключ.

Завантаження → пост → стан

Section titled “Завантаження → пост → стан”

Приймальний сценарій цього API — він має проходити від початку до кінця проти живого сервера.

Terminal window
export KEY="ds_live_..."
export API="https://api.dropslate.top/v1"
# 1) Who we are, and which account publishes
ACCOUNT_ID=$(curl -s "$API/accounts" -H "Authorization: Bearer $KEY" | jq -r '.accounts[0].id')
# 2) Start an upload
TICKET=$(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 status
curl -s "$API/posts/$POST_ID" -H "Authorization: Bearer $KEY" | jq .status

Далі: Автентифікація, Обмеження частоти, Помилки або довідник OpenAPI поле за полем.