Edit a post
const url = 'https://api.dropslate.top/v1/posts/example';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"text":"example","title":"example","tags":["example"],"mediaIds":["example"],"settings":{"youtube":{"visibility":"public","madeForKids":false,"useCoverAsThumbnail":true,"category":"27","language":"uk","audioLanguage":"en-US","recordingDate":"2026-09-01","license":"youtube","embeddable":true,"publicStatsViewable":true,"containsSyntheticMedia":false,"paidProductPlacement":false,"notifySubscribers":true,"playlistId":"PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf"},"tiktok":{},"instagram":{"contentType":"reels","collaborators":["example"],"shareToFeed":true,"altText":"example","coverMs":1},"facebook":{"contentType":"photo","link":"https://example.com"},"threads":{"topicTag":"example","linkAttachment":"https://example.com","altText":"example","replyControl":"everyone"}},"when":"now","status":"queued"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://api.dropslate.top/v1/posts/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "text": "example", "title": "example", "tags": [ "example" ], "mediaIds": [ "example" ], "settings": { "youtube": { "visibility": "public", "madeForKids": false, "useCoverAsThumbnail": true, "category": "27", "language": "uk", "audioLanguage": "en-US", "recordingDate": "2026-09-01", "license": "youtube", "embeddable": true, "publicStatsViewable": true, "containsSyntheticMedia": false, "paidProductPlacement": false, "notifySubscribers": true, "playlistId": "PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf" }, "tiktok": {}, "instagram": { "contentType": "reels", "collaborators": [ "example" ], "shareToFeed": true, "altText": "example", "coverMs": 1 }, "facebook": { "contentType": "photo", "link": "https://example.com" }, "threads": { "topicTag": "example", "linkAttachment": "https://example.com", "altText": "example", "replyControl": "everyone" } }, "when": "now", "status": "queued" }'Content fields (text/title/tags/mediaIds/settings) only on a draft. when reschedules a queued post or times a draft. status: "queued" sends a draft through the same checks and quota as POST /posts. settings replaces the stored block as a whole: send every field you want kept. Requires write.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Request Body
Section titled “Request Body”object
Per-network settings keyed by platform. Unknown keys are refused.
object
Everything videos.insert can write. Not settable through the YouTube API (set in YouTube Studio): Test & Compare, recording location, end screens, cards, monetization, comments.
object
The first image of the post becomes the thumbnail (the channel must be verified for custom thumbnails).
VideoCategories id; default 22 (People & Blogs).
Example
27BCP-47 language of the title and description.
Example
ukBCP-47 language spoken in the video.
Example
en-USExample
2026-09-01YouTube altered or synthetic content disclosure.
A playlist on the same channel; a refusal is reported on the post, the video still goes out.
Example
PLrAXtmErZgOeiKm4sgNOknGvNjby9efdfobject
object
Up to 3 usernames invited as collaborators (1.3.0: was 20).
Reels only.
The image of a feed post (1.3.0); not sent on carousels yet.
The Reel cover frame, milliseconds into the video (1.3.0).
object
Text posts only (1.3.0). A video takes the post title.
Base tags are not appended to a thread; it takes one topicTag. replyControl is accepted and ignored since 1.3.0.
object
A link preview on a thread with no files (1.3.0).
Images (1.3.0).
Responses
Section titled “ Responses ”The post as edited.
object
object
The post in one sentence, the same one the dashboard and an MCP agent show.
Example
{ "tz": "Europe/Kiev", "status": "draft", "createdVia": "ui", "statusLine": "Queued. YouTube · What We Made · 12 Sep, 18:00 (Kyiv)."}Monthly post quota exceeded queueing a draft.
object
Example
{ "code": "not_found", "message": "The post does not exist.", "hint": "Check the id and try again."}The key is missing the “write” scope, or this route needs a signed-in session instead of a key.
object
Example
{ "code": "not_found", "message": "The post does not exist.", "hint": "Check the id and try again."}Does not exist, or belongs to a different workspace - the two look identical from here.
object
Example
{ "code": "not_found", "message": "The post does not exist.", "hint": "Check the id and try again."}Content fields on a queued post, or reschedule/cancel while the worker holds it.
object
Example
{ "code": "not_found", "message": "The post does not exist.", "hint": "Check the id and try again."}More than 600 requests in ten minutes for this key, or the workspace hit 60 post requests in an hour.
object
Example
{ "code": "not_found", "message": "The post does not exist.", "hint": "Check the id and try again."}Headers
Section titled “Headers”Seconds to wait.