Skip to content

Templates

Templates are reusable rendering recipes. Every campaign and Blitz-generated post starts from a template. The API is read-only for templates: they are curated in the dashboard and by the platform’s ingestion pipelines.

GET /api/v1/templates

Query parameters:

NameTypeNotes
content_typestringFilter by content type.
platformstringFilter to templates that support the given platform.
curation_statusstringapproved (default) or pending_review.
is_activebooleanDefaults to true.
limit, cursor-Standard pagination.
Terminal window
curl "https://app.nativpost.com/api/v1/templates?content_type=video_hook&limit=10" \
-H "Authorization: Bearer $NATIVPOST_API_KEY"
GET /api/v1/templates/{id}
{
"object": "template",
"id": "tpl_5b1a9c3e7f204d68",
"name": "Founder story hook",
"content_type": "video_hook",
"aspect_ratio": "9:16",
"supported_platforms": ["instagram", "tiktok", "youtube"],
"preview_url": "https://res.cloudinary.com/nativpost/video/upload/.../preview.mp4",
"structure": {
"caption": "Three years ago I quit my job to build this.",
"slide_captions": null
},
"curation_status": "approved",
"is_active": true,
"created_at": "2026-06-08T09:00:00Z"
}

To generate a content item from a template, create a campaign or a Blitz session in the dashboard. The API accepts a template_id on POST /content when combined with auto_generate: true:

Terminal window
curl -X POST https://app.nativpost.com/api/v1/content \
-H "Authorization: Bearer $NATIVPOST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_id": "tpl_5b1a9c3e7f204d68",
"platforms": ["instagram"],
"auto_generate": true,
"brief": "Focus on the moment I decided to leave."
}'

The generator uses the template’s structure and the workspace brand profile to draft copy, then returns a content object in draft state.