Skip to content

Content

The content resource is the workhorse of the API. See Content model for a full field reference; this page covers the endpoints.

GET /api/v1/content

Query parameters:

NameTypeNotes
statusstringFilter by status. Repeat for OR.
content_typestringFilter by content type.
platformstringReturns items targeting this platform.
campaign_idstringRestricts to items in a campaign.
limitinteger1 to 100, default 50.
cursorstringSee Pagination.
Terminal window
curl "https://app.nativpost.com/api/v1/content?status=scheduled&limit=20" \
-H "Authorization: Bearer $NATIVPOST_API_KEY"
GET /api/v1/content/{id}
Terminal window
curl https://app.nativpost.com/api/v1/content/cnt_9f2c8e7b1a3d4f60 \
-H "Authorization: Bearer $NATIVPOST_API_KEY"
POST /api/v1/content

Body:

{
"content_type": "photo",
"platforms": ["instagram", "facebook"],
"body_text": "Our new home office setup.",
"media_asset_ids": ["med_1e7b8a2c9d3f"]
}

Optional fields: hook_text, slide_copy, platform_overrides, campaign_id, metadata, scheduled_at (creates directly in scheduled state), auto_generate (boolean, has the AI fill missing copy).

PATCH /api/v1/content/{id}

Send only the fields you want to change. Common patterns:

Terminal window
# Approve and schedule
curl -X PATCH https://app.nativpost.com/api/v1/content/cnt_9f2c8e7b1a3d4f60 \
-H "Authorization: Bearer $NATIVPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"scheduled","scheduled_at":"2026-07-19T13:00:00Z"}'

Illegal status transitions return 409 conflict.

POST /api/v1/content/{id}/publish

Immediately runs the publish pipeline for an approved or scheduled item. Returns the updated content with per-platform results:

{
"object": "content",
"id": "cnt_9f2c8e7b1a3d4f60",
"status": "published",
"platform_results": [
{ "platform": "x", "success": true, "platform_post_id": "1948273..." },
{ "platform": "linkedin", "success": true, "platform_post_id": "urn:li:share:..." }
]
}
DELETE /api/v1/content/{id}

Soft-deletes. Fires the content.deleted webhook. The record can still be retrieved with ?include_deleted=true on the list endpoint for 30 days, after which it is purged.