Drafts
List, approve, and reject AI-generated draft post variants in MisarSocial.
Overview
Drafts are post variants in draft or pending_review status. They are created by:
- AI generation via
/api/generate - GitHub webhook integrations (auto-generated release notes)
- TrendPulse pipeline
Drafts must be approved before they can be scheduled.
List Drafts
GET /api/draftsReturns up to 50 draft and pending-review post variants for the authenticated user, ordered by creation date descending.
Response
{
"drafts": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"platform": "twitter",
"caption": "Exciting news — our v2 API is live with 3x speed improvements! #API",
"hashtags": ["API", "Engineering", "DevTools"],
"tone": "professional",
"status": "draft",
"source": "ai_generated",
"source_ref": null,
"created_at": "2026-05-21T08:00:00+00:00"
}
]
}draftsarrayArray of post variant objects.
drafts[].platformstringPlatform this variant is optimized for: twitter, linkedin, instagram, threads, tiktok, bluesky.
drafts[].sourcestringOrigin of the draft: ai_generated, trendpulse, github_release, or manual.
Bulk Approve or Reject
POST /api/draftsApproves or rejects one or more drafts by ID in a single request.
Body
actionstringrequiredEither "approve" or "reject".
idsstring[]requiredArray of draft UUID strings to act on. Must have at least 1 item.
Example
{
"action": "approve",
"ids": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
]
}Response
{ "updated": 2 }updatednumberNumber of drafts successfully updated.
Error Responses
| Status | Error |
|---|---|
400 | Invalid body — missing action or ids |
401 | Unauthorized |
429 | Rate limit exceeded (20 bulk actions/minute) |
Approved drafts move to approved status. They are not automatically scheduled — use the Schedule endpoint to queue them for publishing.