Campaigns API

Create, manage, and monitor campaigns via the REST API.

Create Campaign

POST /campaigns
Content-Type: application/json
Authorization: Bearer mcpf_live_xxxx

{
  "mcp": "sales-outreach",
  "target_url": "acme.com",
  "target_audience": "CTOs at SaaS companies, 50-200 employees",
  "budget": {
    "max_daily_usd": 10,
    "max_weekly_usd": 50,
    "max_monthly_usd": 200
  },
  "schedule": {
    "frequency": "daily",
    "trial_days": 5,
    "start_date": "2026-02-01"
  },
  "reporting": {
    "frequency": "daily",
    "email": "founder@acme.com",
    "webhook_url": "https://..."
  }
}

Response

{
  "id": "camp_abc123",
  "status": "starting",
  "mcp": "sales-outreach",
  "target_url": "acme.com",
  "created_at": "2026-01-30T10:00:00Z",
  "dashboard_url": "https://dashboard.mcpfactory.org/campaigns/camp_abc123"
}

List Campaigns

GET /campaigns
GET /campaigns?status=running
GET /campaigns?mcp=sales-outreach

Response

{
  "campaigns": [
    {
      "id": "camp_abc123",
      "status": "running",
      "mcp": "sales-outreach",
      "target_url": "acme.com",
      "created_at": "2026-01-30T10:00:00Z"
    }
  ],
  "pagination": {
    "total": 1,
    "page": 1,
    "per_page": 20
  }
}

Get Campaign

GET /campaigns/:id

Response

{
  "id": "camp_abc123",
  "status": "running",
  "mcp": "sales-outreach",
  "target_url": "acme.com",
  "target_audience": "CTOs at SaaS companies",
  "budget": {
    "max_daily_usd": 10,
    "spent_today_usd": 3.45
  },
  "schedule": {
    "frequency": "daily",
    "trial_days": 5,
    "days_remaining": 3
  },
  "stats": {
    "emails_sent": 127,
    "delivered": 119,
    "opened": 28,
    "replied": 6,
    "meetings_booked": 1
  },
  "created_at": "2026-01-30T10:00:00Z"
}

Pause Campaign

POST /campaigns/:id/pause

Response

{
  "id": "camp_abc123",
  "status": "paused",
  "paused_at": "2026-01-31T15:30:00Z"
}

Resume Campaign

POST /campaigns/:id/resume

Response

{
  "id": "camp_abc123",
  "status": "running",
  "resumed_at": "2026-02-01T09:00:00Z"
}

Campaign Statuses

StatusDescription
startingCampaign is being set up
runningCampaign is active
pausedManually paused
budget_pausedPaused due to budget limit
completedTrial period or schedule ended
failedError occurred (check logs)