Overview
For each post a paid campaign put live: the latest observed numbers with their source and date, and, once complete, the outcome against what the plan predicted. Optionally for one campaign_id. Each item carries previous: the reading before the newest one, for the change since it.
- Server
https://app.distribution.tech/api/mcp- Scope
results:read- Changes data
- No, a read
- REST endpoint
- GET /results
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
campaign_id | string (uuid) | No | One campaign. Leave out for every paid campaign. |
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 results:read scope; the arguments shown are the required ones.
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": "results",
"arguments": {}
}
}'Result
The answer's structuredContent follows the tool's output schema (the same JSON is in its text content). It has these fields:
| Name | Type | Required | Description |
|---|---|---|---|
items | array of object | Yes |
{
"items": [
{
"id": "<uuid>",
"campaign_id": "<uuid>",
"brief_id": "<uuid>",
"campaign": "<string>",
"slot": "<string>",
"scheduled_date": "<date>",
"date": "<string>",
"status": "live",
"status_label": "<string>",
"proof_url": "<string>",
"published_at": "<date-time>",
"disclosure": "<string>",
"latest": {
"line": "<string>",
"as_of": "<string>",
"views": 0,
"clicks": 0,
"likes": 0,
"comments": 0,
"shares": 0,
"more": [
{
"line": "<string>",
"as_of": "<string>"
}
]
},
"snapshots": 0,
"still_up": {
"checked_at": "<date-time>",
"views": 0,
"line": "<string>"
},
"previous": {
"views": 0,
"likes": 0,
"comments": 0,
"shares": 0,
"captured_at": "<date-time>"
},
"versus": "<string>",
"schedule": "<string>",
"channel_label": "<string>",
"spend_cents": 0,
"currency": "<string>"
}
]
}Other tools
inventory: Network coverageresolve_audience: Resolve an audiencecampaign_status: Campaign statusevidence: Proof of deliverybrain_get: Company contextcreators_search: Find creatorscreator_get: One creatorcreator_ask_price: Ask for a priceplan_quote: Quote a plancreate_campaign: Start a campaignplan_add_creator: Add a creatorplan_remove_creator: Remove a creatorplan_move_dates: Move a plan's datesplan_swap_creator: Swap a creatorset_creator_guidelines: Set the creator guidelinesapprove_plan: Approve and get the pay linkarchive_campaign: Archive a campaignrename_campaign: Rename a campaigndelete_campaign: Delete a draft campaignfeedback_send: Send feedbackfeedback_list: Your feedback
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.