Captions
Captions are saved snippets — opening hooks, CTA blocks, hashtag bundles, footers — that you can drop into the composer textarea instead of retyping.
Endpoints
All under /api/v1/captions:
GET /captions— list withsearch,typequery params.POST /captions— create with{ type?, name?, content? }.PUT /captions/:id— update any field.DELETE /captions/:id— delete.
Caption model
typescript
{
user: ObjectId,
team_id: ObjectId,
type: number, // numeric category
name: string, // label shown in the picker
content: string, // the snippet body
}The type field is a numeric category — there is no enum in the model, the frontend picks values when grouping snippets in the picker.
Frontend integration
Open the composer, click Insert caption, and pick a saved template. The frontend appends the caption's content to the current post body. There is no server-side merging — captions are pure text.