distribution.techdistribution.tech

Quickstart

Quickstart: your first API call

Create an API key, read how well the network reaches your audience with one curl call, then start a campaign and quote its plan.

Last updated

View .md

1. Create a key

Sign in to your workspace at app.distribution.tech and open Developers. Create a key and pick its scopes: inventory:read for step 2, campaigns:write for step 3 and campaigns:read for step 4. Copy the key when it is shown; it is shown once.

A key that writes (campaigns:write or plans:approve) also needs a mandate: the most a plan may total, a monthly cap, the channels, whether it may sign, an expiry, and the brand terms a person accepted for it. See Authentication and Scopes.

2. Read your network coverage

curl https://app.distribution.tech/api/v1/inventory \
  -H "Authorization: Bearer $DISTRIBUTION_API_KEY"

The answer lists each channel on sale with how many approved creators reach your audience, how many are bookable now, and how strong coverage is. The full response is on GET /inventory.

3. Start a campaign

curl https://app.distribution.tech/api/v1/campaigns \
  -X POST \
  -H "Authorization: Bearer $DISTRIBUTION_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: first-launch-2026-10-19" \
  -d '{
    "goal": "launch",
    "product": "Your product in one line",
    "moment": "Version 2 goes live on November 12",
    "window_start": "2026-11-10",
    "window_end": "2026-11-20",
    "budget_usd": 2000
  }'

This needs campaigns:write. goal is one of launch, funding, feature or program, and budget_usd is the most to spend, held to your key's mandate. The answer carries campaign_id and plan, a priced plan whose plan.plan_id is the PLAN_ID for step 4, or plan is null with a plan_note when nothing on sale fits yet. A retry with the same Idempotency-Key returns the first answer and never starts a second campaign. Every field is on POST /campaigns.

4. Quote the plan

curl https://app.distribution.tech/api/v1/plans/PLAN_ID/quote \
  -H "Authorization: Bearer $DISTRIBUTION_API_KEY"

This needs campaigns:read. The quote is the plan as it would be signed: each creator, format, date and all-in price, the total, and whether your key's mandate allows signing it now. Approving it (POST /plans/{id}/approve) needs plans:approve and returns the payment link.

Next

A key comes from Developers once your brand is approved. Connect an agent to ask for access, then follow the agent guide.