Order a UGC campaign with an AI agent.
UGC Pocket exposes a commerce layer for agents: an agent can estimate and order a campaign. The order creates a draft; a human confirms and funds it in the app.
API base https://ugcpocket.com/api · MCP https://ugcpocket.com/mcp
status: "draft"
ordered_by_agent: true
An agent doesn't sign up on its own: access is bootstrapped by a human.
- Install the UGC Pocket app and create an organization account (brand side).
- Go to Profile → "API keys (agents)" and generate a
ugcp_live_…key. The key is shown only once: copy it immediately. - Paste the key into your agent or MCP client configuration, header
Authorization: Bearer ugcp_live_….
draft status, attached to the organization that owns the key. The brand must then confirm and fund the campaign in the app ("Publish" button). No payment is triggered by the agent.
Three surfaces: llms.txt, REST API + OpenAPI, and MCP.
MCP
Streamable HTTP MCP server: https://ugcpocket.com/mcp. 4 tools.
REST endpoints
| Method + path | Auth | Role |
|---|---|---|
GET /service-info | none | Product descriptor (categories, budget floor, links). |
POST /estimate | none | Free-text brief → suggested fields + indicative total. |
POST /campaigns | API key | Creates a campaign draft. |
GET /campaigns/{id} | API key | Status of an owned campaign. |
Connect in 10 seconds (Claude Code, Cursor…)
Discovery (initialize, tools/list, get_service_info) works without any key. Paste this into your MCP client config; add your key to order:
{
"mcpServers": {
"ugc-pocket": {
"type": "http",
"url": "https://ugcpocket.com/mcp",
"headers": { "Authorization": "Bearer ugcp_live_YOUR_KEY" }
}
}
}
MCP tools: https://ugcpocket.com/mcp
| Tool | Role |
|---|---|
get_service_info | Product descriptor. |
estimate_campaign | { brief } → suggested fields + indicative total. |
create_campaign_order | CampaignDraftInput schema → creates a draft. |
check_campaign_status | { campaign_id } → status. |
Order a draft (REST).
The key to the funnel: the order creates a draft. The response returns a confirm_url that opens the campaign in the app for confirmation and funding by a human.
curl -X POST https://ugcpocket.com/api/campaigns \
-H "Authorization: Bearer ugcp_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"title":"Bowl launch","brief":"TikTok video…","prestation":"video_post","target_categories":["dog"],"platforms":["TikTok"],"budget_per_creator_cents":12000,"creators_wanted":5}'
Response 201: { "campaign_id":"…","status":"draft","ordered_by_agent":true,"next_step":"…","confirm_url":"https://ugcpocket.com/c/…" }
CampaignDraftInput: the object sent to POST /campaigns.
| Field | Type | Detail |
|---|---|---|
title required | string ≤120 | Short campaign title. |
brief required | string ≤2000 | Creative instructions, tone, constraints. |
budget_per_creator_cents required | integer | Euro cents. Min 5000 (€50), max 200000 (€2000). |
creators_wanted required | integer | 1 to 50. |
prestation | enum | ugc_only (default), video_post, post_provided. |
target_categories | enum[] | dog, cat, car, cooking, couple, business, podcast. |
platforms | enum[] | TikTok, Instagram, YouTube, Snapchat, Facebook. |
payment_trigger | enum | publication or views. |
views_threshold | integer | Views threshold (if payment_trigger=views). |
deadline | ISO date | YYYY-MM-DD. |
Full reference schema: /openapi.json (CampaignDraftInput component, additionalProperties=false).
Budget, rate and idempotency.
Budget & quantity
Budget per creator ≥ 5000 (€50), ≤ 200000 (€2000). creators_wanted ∈ [1, 50]. EUR currency, amounts in cents. A value < 5000 is rejected (validation_error).
Rate
30 requests/minute per key; beyond that 429 + Retry-After: 60. Cap of 200 drafts/day per key.
Idempotency
Optional Idempotency-Key header on POST /campaigns to replay a request without creating a duplicate.
Error codes
invalid_api_key (401), rate_limited (429), validation_error (422), not_found (404), internal (500).
Frequently asked questions.
Can an AI agent pay for a campaign automatically?
No. An agent order always creates a campaign with draft status. The brand must confirm and fund the campaign in the app; no payment is triggered by the agent.
How do I get an API key?
A human installs the app, creates an organization account, then generates a ugcp_live_… key in Profile → "API keys (agents)". The key is shown only once.
What budget limits apply to an order via the API?
Budget per creator from €50 to €2000 (budget_per_creator_cents from 5000 to 200000) and 1 to 50 creators per campaign.
What are the rate limits?
30 requests/minute per key (429 + Retry-After: 60 beyond that), with a cap of 200 drafts/day per key.
Ready to plug in your agent?
Start with the OpenAPI schema and the llms.txt file, then create your first draft.
An integration question? support@ugcpocket.com