Paginated list of your posts with the per-account delivery results, filterable by
status, platform and free text. Uses keyset pagination (cursor / next_cursor).
/v1/postsPaginated history of posts with per-account delivery results.
AuthorizationstringheaderrequiredBearer token. Use a Dravo API key (`dra_…`) or a dashboard JWT.
statusstringqueryFilter: queued, processing, published, partial, failed, canceled, scheduled.
platformstringqueryFilter by platform.
qstringqueryFull-text search on post text.
limitintqueryPage size, 1 to 100 (default 50).
cursorstringqueryKeyset pagination cursor from next_cursor.
itemsobject[]Posts on this page; each has the fields below.
idstringDravo post id.
statusstringOverall post status: queued, processing, published, partial, failed, canceled or scheduled.
textstringPost body.
media_urlsstring[]Media URLs attached to the post.
platform_optionsobjectPer-platform publish options that were applied, keyed by platform.
platformsobject[]One entry per target account — the platform, the account, and the delivery result together. Accounts not yet delivered inherit the post status with null result fields. Each entry is an object with these fields:
platformstringPlatform this delivery targeted: instagram, facebook, x, linkedin or tiktok.
accountobjectoptionalThe target account. null if the account was deleted after publishing (the delivery is still kept). Object with these fields:
idstringConnected account id.
handlestringoptionalAccount handle / username.
avatar_urlstringoptionalAccount avatar URL.
platformstringPlatform of this account.
statusstringPer-account delivery status: queued, processing, published, partial, failed or canceled.
platform_post_idstringoptionalNative id of the post on the platform.
platform_post_urlstringoptionalDirect link to the published post.
error_codestringoptionalMachine-readable error code when the delivery failed.
error_messagestringoptionalHuman-readable error detail when the delivery failed.
warningsstring[]Non-fatal notices (e.g. a first comment could not be created).
delivered_atstring (ISO 8601)optionalWhen this delivery was recorded. null if the account has not been delivered yet.
error_messagestringoptionalAggregated failure detail when the post failed or partially failed.
scheduled_atstring (ISO 8601)optionalWhen the post is scheduled to publish, if scheduled.
queued_atstring (ISO 8601)optionalWhen the post entered the queue.
processing_atstring (ISO 8601)optionalWhen the worker started processing the post.
published_atstring (ISO 8601)optionalWhen the post finished publishing.
canceled_atstring (ISO 8601)optionalWhen the post was canceled, if canceled.
created_atstring (ISO 8601)When the post was created.
next_cursorstringoptionalPass as cursor to fetch the next page; null on the last page.
totalintegerTotal posts matching the query.
const response = await fetch("https://api.dravo.dev/v1/posts", { method: "GET", headers: { "Authorization": "Bearer " + process.env.DRAVO_API_KEY,}});const data = await response.json();console.log(data);{ "items": [ { "id": "post_2a7f93", "status": "published", "text": "Shipping Dravo…", "media_urls": [], "platform_options": {}, "platforms": [ { "platform": "x", "account": { "id": "acc_8f2c1d", "handle": "@dravo", "avatar_url": "https://cdn.dravo.dev/avatars/acc_8f2c1d.jpg", "platform": "x" }, "status": "published", "platform_post_id": "1890…", "platform_post_url": "https://x.com/i/status/1890…", "error_code": null, "error_message": null, "warnings": [], "delivered_at": "2026-06-23T10:15:31Z" } ], "error_message": null, "scheduled_at": null, "queued_at": "2026-06-23T10:15:30Z", "processing_at": "2026-06-23T10:15:30Z", "published_at": "2026-06-23T10:15:31Z", "canceled_at": null, "created_at": "2026-06-23T10:15:30Z" } ], "next_cursor": null, "total": 1}