--- title: "plan_add_creator: Add a creator | distribution.tech" description: "Add a creator to a plan awaiting approval by its unit_id (a format's unit_id from creators_search or creator_get), at that format's current all-in price." canonical: https://distribution.tech/docs/mcp/tools/plan-add-creator generator: md-live-route generated: 2026-10-21T11:45:46.632Z --- # plan_add_creator: Add a creator | distribution.tech - [Getting started](https://distribution.tech/docs) - [API reference](https://distribution.tech/docs/api) - [MCP and agents](https://distribution.tech/docs/agents) - [Changelog](https://distribution.tech/docs/changelog) Search the docs Docs - Agents › - [Run a campaign with your agent](https://distribution.tech/docs/agents) - [MCP server](https://distribution.tech/docs/mcp) - MCP tools › - [inventory](https://distribution.tech/docs/mcp/tools/inventory) - [resolve\_audience](https://distribution.tech/docs/mcp/tools/resolve-audience) - [campaign\_status](https://distribution.tech/docs/mcp/tools/campaign-status) - [evidence](https://distribution.tech/docs/mcp/tools/evidence) - [results](https://distribution.tech/docs/mcp/tools/results) - [brain\_get](https://distribution.tech/docs/mcp/tools/brain-get) - [creators\_search](https://distribution.tech/docs/mcp/tools/creators-search) - [creator\_get](https://distribution.tech/docs/mcp/tools/creator-get) - [creator\_ask\_price](https://distribution.tech/docs/mcp/tools/creator-ask-price) - [plan\_quote](https://distribution.tech/docs/mcp/tools/plan-quote) - [create\_campaign](https://distribution.tech/docs/mcp/tools/create-campaign) - [plan\_add\_creator](https://distribution.tech/docs/mcp/tools/plan-add-creator) - [plan\_remove\_creator](https://distribution.tech/docs/mcp/tools/plan-remove-creator) - [plan\_move\_dates](https://distribution.tech/docs/mcp/tools/plan-move-dates) - [plan\_swap\_creator](https://distribution.tech/docs/mcp/tools/plan-swap-creator) - [set\_creator\_guidelines](https://distribution.tech/docs/mcp/tools/set-creator-guidelines) - [approve\_plan](https://distribution.tech/docs/mcp/tools/approve-plan) - [archive\_campaign](https://distribution.tech/docs/mcp/tools/archive-campaign) - [rename\_campaign](https://distribution.tech/docs/mcp/tools/rename-campaign) - [delete\_campaign](https://distribution.tech/docs/mcp/tools/delete-campaign) - [feedback\_send](https://distribution.tech/docs/mcp/tools/feedback-send) - [feedback\_list](https://distribution.tech/docs/mcp/tools/feedback-list) 1. [distribution](https://distribution.tech/) 2. / [Docs](https://distribution.tech/docs) 3. / [MCP tools](https://distribution.tech/docs#mcp) 4. / plan\_add\_creator MCP tool # Add a creator plan\_add\_creator Add a creator to a plan awaiting approval by its unit\_id (a format's unit\_id from creators\_search or creator\_get), at that format's current all-in price. Copy page as markdown [View .md](https://distribution.tech/docs/mcp/tools/plan-add-creator.md) ## Overview Add a creator to a plan awaiting approval by its unit\_id (a format's unit\_id from creators\_search or creator\_get), at that format's current all-in price, the same as the brand adding it in the workspace. Leave out plan\_id (REST: POST /api/v1/plans/current/lines) to add to the brand's newest plan awaiting approval, or to start a plan for this creator when none waits; that also needs the mandate to allow starting a campaign, and counts toward the brand's 3 new campaigns in 24 hours. Only approved creators on sale can be added (not\_approved otherwise). A creator who would take the plan's all-in total over the mandate's maximum plan total, or this month's signed spend plus that total over its monthly cap, is refused (mandate\_refused, over\_max\_plan\_total or over\_monthly\_cap) and the plan is left as it was. A creator who would take the plan's all-in total over its campaign's budget is refused for everyone (conflict, reason over\_budget, with budget\_cents and remaining\_cents, the room left before this creator) and the plan is left as it was; pick a creator priced within remaining\_cents or remove one first. Returns the new line\_id and the plan as plan\_quote returns it. Needs an idempotency\_key. Server `https://app.distribution.tech/api/mcp` Scope `campaigns:write` Changes data Yes, pass an idempotency\_key REST endpoint [POST /plans/{id}/lines](https://distribution.tech/docs/api/post-plans-id-lines) ## Arguments | Name | Type | Required | Description | | --- | --- | --- | --- | | `idempotency_key` | string | Yes | Your unique id for this request. Retry with the same id and the same arguments to get the same answer; it never runs twice. | | `unit_id` | string (uuid) | Yes | A format's unit\_id from creators\_search or creator\_get. | | `plan_id` | string (uuid) | No | The plan to add to. Leave out to add to the brand's newest plan awaiting approval, or to start one for this creator. | ## 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:write` 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": "plan_add_creator", "arguments": { "idempotency_key": "", "unit_id": "" } } }' ``` ## 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 | | --- | --- | --- | --- | | `line_id` | string (uuid) | Yes | | | `plan` | object | Yes | A plan as the person sees it and as an agent signs it (v1-product-spec 8.5 Quote). | structuredContent, every field with its type ``` { "line_id": "", "plan": { "plan_id": "", "campaign_id": "", "version": 0, "status": "awaiting_approval", "currency": "", "launch_window_start": "", "launch_window_end": "", "terms_fingerprint": "", "total_cents": 0, "totals": {}, "lines": [ { "id": "", "creator": { "id": "", "name": "", "handle": "", "profile_url": "", "avatar_url": "", "followers": 0 }, "creator_id": "", "unit_id": "", "stage_id": "planned", "stage": "", "channel": "", "channel_label": "", "format": "", "deliverable": "", "scheduled_date": "", "price_cents": 0, "vetting": "", "reason": "", "expected_views_low": 0, "expected_views_high": 0, "on_sale": false } ], "payment_options": [ { "rail": "checkout", "label": "", "clears": "" } ], "agent_payment": "checkout", "brand_terms": { "current_version": "", "current_number": 0, "url": "", "accepted_for_this_key": "", "accepted_number_for_this_key": 0 }, "mandate": { "key_id": "", "version": 0, "max_plan_cents": 0, "monthly_cap_cents": 0, "channels": [ "" ], "may_approve": false, "may_exceed_budget": false, "expires_at": "", "updated_at": "", "spent_this_month_cents": 0, "terms_version": "", "terms_accepted_at": "", "terms_accepted_email": "" }, "policy": { "allowed": false, "refusal": {} }, "blocked_lines": [ "" ], "over_budget": { "budget_cents": 0, "total_cents": 0, "over_by_cents": 0 }, "order": {}, "valid_while": "terms_fingerprint_unchanged" } } ``` ## Other tools - [`inventory`](https://distribution.tech/docs/mcp/tools/inventory): Network coverage - [`resolve_audience`](https://distribution.tech/docs/mcp/tools/resolve-audience): Resolve an audience - [`campaign_status`](https://distribution.tech/docs/mcp/tools/campaign-status): Campaign status - [`evidence`](https://distribution.tech/docs/mcp/tools/evidence): Proof of delivery - [`results`](https://distribution.tech/docs/mcp/tools/results): Results - [`brain_get`](https://distribution.tech/docs/mcp/tools/brain-get): Company context - [`creators_search`](https://distribution.tech/docs/mcp/tools/creators-search): Find creators - [`creator_get`](https://distribution.tech/docs/mcp/tools/creator-get): One creator - [`creator_ask_price`](https://distribution.tech/docs/mcp/tools/creator-ask-price): Ask for a price - [`plan_quote`](https://distribution.tech/docs/mcp/tools/plan-quote): Quote a plan - [`create_campaign`](https://distribution.tech/docs/mcp/tools/create-campaign): Start a campaign - [`plan_remove_creator`](https://distribution.tech/docs/mcp/tools/plan-remove-creator): Remove a creator - [`plan_move_dates`](https://distribution.tech/docs/mcp/tools/plan-move-dates): Move a plan's dates - [`plan_swap_creator`](https://distribution.tech/docs/mcp/tools/plan-swap-creator): Swap a creator - [`set_creator_guidelines`](https://distribution.tech/docs/mcp/tools/set-creator-guidelines): Set the creator guidelines - [`approve_plan`](https://distribution.tech/docs/mcp/tools/approve-plan): Approve and get the pay link - [`archive_campaign`](https://distribution.tech/docs/mcp/tools/archive-campaign): Archive a campaign - [`rename_campaign`](https://distribution.tech/docs/mcp/tools/rename-campaign): Rename a campaign - [`delete_campaign`](https://distribution.tech/docs/mcp/tools/delete-campaign): Delete a draft campaign - [`feedback_send`](https://distribution.tech/docs/mcp/tools/feedback-send): Send feedback - [`feedback_list`](https://distribution.tech/docs/mcp/tools/feedback-list): Your feedback ## Get access Keys are created in Developers once your brand is approved. [Connect an agent](https://distribution.tech/distribution#access) to ask for access, then read [the agent guide](https://distribution.tech/docs/agents) for the full flow. On this page - [Overview](#overview) - [Arguments](#arguments) - [Call with curl](#curl) - [Result](#result) - [Other tools](#related) - [Get access](#access) [![distribution.tech](https://distribution.tech/brand/wordmark-light.svg)![distribution.tech](https://distribution.tech/brand/wordmark.svg)](https://distribution.tech/) Your agent buys your distribution. Distribution we run for - ClickUp - Gushwork - Tab Platform - [How it works](https://distribution.tech/how-it-works) - [Network](https://distribution.tech/network) - [Workspace](https://app.distribution.tech/login) - [For your agents](https://distribution.tech/distribution) Solutions - [Product launch](https://distribution.tech/solutions/product-launch) - [Funding announcement](https://distribution.tech/solutions/funding-announcement) - [Feature release](https://distribution.tech/solutions/feature-release) - [For brands](https://distribution.tech/for-brands) - [For creators](https://distribution.tech/for-creators) Resources - [Blog](https://distribution.tech/blog) - [Launch playbook](https://distribution.tech/playbook) - [X creator rates](https://distribution.tech/rates/x-creators) Company - [Customers](https://distribution.tech/customers) - [Pricing](https://distribution.tech/pricing) - [Changelog](https://distribution.tech/changelog) - [Build a distribution plan](https://app.distribution.tech/login) - [Join the creator network](https://distribution.tech/for-creators#apply) - [Log in](https://app.distribution.tech/login) Legal - [Privacy](https://distribution.tech/privacy) - [Terms](https://distribution.tech/terms) © 2026 distribution.tech [Contact: team@distribution.tech](mailto:team@distribution.tech)Cookie settings Light Dark System