Create Campaign

Create scheduled campaigns with templates

Create a campaign with multiple posts scheduled according to a template.

Create Campaign

POST /v1/workspaces/{id}/campaigns/

Request Body

{
  "name": "Product Launch 2025",
  "template": "2_week_blast",
  "platforms": ["twitter", "linkedin", "facebook"],
  "posts": [
    { "text": "🚀 Launching our new product next week! #ProductLaunch" },
    { "text": "📅 Only 3 days until launch! Get ready..." },
    { "text": "🎉 We're live! Check out our new product" },
    { "text": "💡 Did you know our product can help you..." }
  ],
  "link": "https://example.com/product",
  "start_date": "2025-01-20"
}

Parameters

  • name (required): Campaign name for your reference
  • template (required): Template ID (see templates endpoint)
  • platforms (required): Array of platform IDs to post to
  • posts (required): Array of post objects with text
  • link (optional): URL to include in all posts
  • start_date (optional): When to start (defaults to today)

Example

curl -X POST "https://api.missinglettr.com/v1/workspaces/1/campaigns/" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Blog Post Promotion",
    "template": "12_month_evergreen",
    "platforms": ["twitter", "linkedin"],
    "posts": [
      { "text": "Check out our latest blog post! 📝" },
      { "text": "In case you missed it: our guide to..." },
      { "text": "Still relevant: our post about..." }
    ],
    "link": "https://example.com/blog/post"
  }'

Response

{
  "id": 42,
  "name": "Blog Post Promotion",
  "template": "12_month_evergreen",
  "status": "active",
  "platforms": ["twitter", "linkedin"],
  "total_posts": 3,
  "scheduled_posts": 3,
  "published_posts": 0,
  "start_date": "2025-01-15",
  "created_at": "2025-01-15T10:00:00Z"
}

Tip: The number of posts you provide should match the template's expected post count. The system will distribute them according to the template's schedule.

Get Campaign Details

View a campaign with all its posts and their statuses:

GET /v1/workspaces/{id}/campaigns/{campaign_id}/

Response

{
  "id": 42,
  "name": "Blog Post Promotion",
  "template": "12_month_evergreen",
  "status": "active",
  "platforms": ["twitter", "linkedin"],
  "posts": [
    {
      "id": 501,
      "text": "Check out our latest blog post! 📝",
      "scheduled_at": "2025-01-20T14:00:00Z",
      "status": "scheduled"
    },
    {
      "id": 502,
      "text": "In case you missed it: our guide to...",
      "scheduled_at": "2025-02-15T14:00:00Z",
      "status": "scheduled"
    }
  ],
  "created_at": "2025-01-15T10:00:00Z"
}