Overview
Ask our team for the price of an approved creator with nothing on sale (ask_price true and price_estimate on its row; the estimate is never a price). The team prices it, the price then shows on the creator (creator_get offerings) and as a priced answer on your plan, held for you for 48 hours; nothing is booked or charged until you add the creator to a plan and approve it. It reaches our team, never the creator. One open ask per creator: asking again answers already true and sends nothing. Opening the creator counts as one creator opened today (free when already opened). 3 asks for one creator and 20 in all in any 24 hours (rate_limited, reason daily_limit, with retry_after and resets_at saying when that limit reopens). A creator with a format on sale answers conflict, reason already_priced: add it with plan_add_creator. Optionally campaign_id: one of your campaigns the ask is for.
- Server
https://app.distribution.tech/api/mcp- Scope
creators:read- Changes data
- No, a read
- REST endpoint
- POST /creators/{id}/price-request
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
creator_id | string (uuid) | Yes | The creator's id from creators_search (a row with ask_price true). |
campaign_id | string (uuid) | No | One of your campaigns this ask is for; the priced answer then shows on that campaign's plan. |
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 creators: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": "creator_ask_price",
"arguments": {
"creator_id": "<uuid>"
}
}
}'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 |
|---|---|---|---|
creator_id | string (uuid) | Yes | |
requested | true | Yes | |
already | boolean | Yes | true: an ask for this creator is still open (an earlier call, or a teammate's click in the app); nothing new was sent. An ask is held for 48 hours: once it is answered or expires, the next call opens a new ask and answers already false. |
status | one of "requested", "priced" | Yes | requested: our team is pricing it. priced: a price is on the creator now (creator_get offerings) and held for you for 48 hours. |
requested_at | string (date-time) | Yes | |
next | string | Yes | What happens next, in one sentence. |
{
"creator_id": "<uuid>",
"requested": true,
"already": false,
"status": "requested",
"requested_at": "<date-time>",
"next": "<string>"
}Other tools
inventory: Network coverageresolve_audience: Resolve an audiencecampaign_status: Campaign statusevidence: Proof of deliveryresults: Resultsbrain_get: Company contextcreators_search: Find creatorscreator_get: One creatorplan_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.