distribution.techdistribution.tech

MCP tool

Campaign status

campaign_status

With campaign_id: where that campaign stands (its stage, as stage_id draft, sent, plan_ready, approved, paid, running, complete or cancelled, the current.

Overview

With campaign_id: where that campaign stands (its stage, as stage_id draft, sent, plan_ready, approved, paid, running, complete or cancelled, the current plan with its lines, dates, prices and each line's post stage, and the order once signed). Without it: every campaign of yours with its stage.

Server
https://app.distribution.tech/api/mcp
Scope
campaigns:read
Changes data
No, a read

Arguments

Arguments of campaign_status
NameTypeRequiredDescription
campaign_idstring (uuid)NoOne campaign. Leave out to list them all.
include_archivedbooleanNoThe list leaves archived campaigns out unless this is true.

Call with curl

The server speaks streamable HTTP, so one JSON-RPC tools/call request runs the tool. Set DISTRIBUTION_API_KEY to a key from Developers with the campaigns:read scope; the arguments shown are the required ones.

curl
curl -X POST "https://app.distribution.tech/api/mcp" \
  -H "Authorization: Bearer $DISTRIBUTION_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "campaign_status",
    "arguments": {}
  }
}'

Result

The answer's structuredContent follows the tool's output schema (the same JSON is in its text content). It has these fields:

Result fields of campaign_status
NameTypeRequiredDescription
idstring (uuid)Yes
campaignstringYes
created_atstring (date-time)Yes
refunded_atstring (date-time) or nullYesWhen the order was refunded; null unless it was.
archived_atstring (date-time) or nullYesWhen the brand archived the campaign; null for a live one. An archived campaign's stage reads Archived, and renaming it or setting its creator guidelines is refused (409 conflict, reason archived).
intent_statusone of "draft", "ready", nullYes
plan_statusone of "awaiting_approval", "approved", nullYes
open_changebooleanYes
stageone of "Draft", "Sent", "Plan ready", "Approved", "Paid", "Running", "Complete", "Cancelled", "Archived"Yes
stage_idone of "draft", "sent", "plan_ready", "approved", "paid", "running", "complete", "cancelled"Yesdraft (not sent), sent (no plan yet), plan_ready (a plan waits for approval), approved (signed, not paid), paid (the brand's payment cleared, no post started), running (a post is scheduled, live or delayed), complete (every post has its proof), cancelled (the order was cancelled or refunded).
plannull or objectYes
ordernull or objectYes
creator_guidelinesnull or objectYes
structuredContent, every field with its type
{
  "id": "<uuid>",
  "campaign": "<string>",
  "created_at": "<date-time>",
  "refunded_at": "<date-time>",
  "archived_at": "<date-time>",
  "intent_status": "draft",
  "plan_status": "awaiting_approval",
  "open_change": false,
  "stage": "Draft",
  "stage_id": "draft",
  "plan": {
    "id": "<uuid>",
    "version": 0,
    "status": "awaiting_approval",
    "launch_window_start": "<date>",
    "launch_window_end": "<date>",
    "currency": "<string>",
    "sent_at": "<date-time>",
    "approved_at": "<date-time>",
    "total_cents": 0,
    "lines": [
      {
        "id": "<uuid>",
        "channel": "<string>",
        "channel_label": "<string>",
        "slot": "<string>",
        "scheduled_date": "<date>",
        "price_cents": 0,
        "status": "planned",
        "stage_id": "planned",
        "stage": "Planned",
        "proposal": {
          "state": "sending",
          "creator_handle": "<string>",
          "replaced_handle": "<string>",
          "updated_at": "<date-time>"
        }
      }
    ],
    "lines_by_status": {},
    "lines_by_stage": {
      "planned": 0,
      "offered": 0,
      "creator_confirmed": 0,
      "scheduled": 0,
      "live": 0,
      "proof_attached": 0,
      "cancelled": 0
    }
  },
  "order": {
    "payment_state": "<string>",
    "total_cents": 0,
    "currency": "<string>",
    "signed_at": "<date-time>",
    "paid_at": "<date-time>"
  },
  "creator_guidelines": {
    "pitch": "<string>",
    "key_messages": [
      "<string>"
    ],
    "references": [
      "<uri>"
    ],
    "voice": "<string>",
    "dos": [
      "<string>"
    ],
    "donts": [
      "<string>"
    ]
  }
}

Get access

Keys are created in Developers once your brand is approved. Connect an agent to ask for access, then read the agent guide for the full flow.