API reference
Nine endpoints. What each one needs, what it refuses, and which of them can move money.
Three doors, and only one of them is open
Which endpoints anyone may call, and which ones commit money.
No credentials
Reading campaigns, submitting a clip, checking a submission, previewing whether a link can be handled. A creator needs no account to be paid — the wallet address is the counterparty.
x-operator-secret
Opening a campaign. This is the one that publishes a budget, so it is gated on a shared secret rather than a session — and it is the reason a brand cannot yet self-serve.
x-tick-secret
Running a pass. Separate from the operator secret on purpose: the scheduler needs to run passes forever and should never hold the ability to open a campaign.
Every write is rate limited per address. A refusal always names its reason and, where a field caused it, that field — so a caller can fix the request rather than guess at it.
All nine
Generated from the OpenAPI document, so this page cannot drift from it.
GET/api/verify/preview
Free. Can this link be handled, and when will a real answer exist?
Costs nothing and returns no counts. Use it to decide whether a paid call is worth making: it reports whether the URL is supported, whether the post is already under observation, and the timestamp at which a surviving-view figure will first be available.
Open · responds 200, 400
POST/api/views
Latest and surviving view counts. No verdict.
Price: 0.005 USDC per call — a tenth of `/api/verify`, because no model runs. A `brief` sent here is not judged; the response says so rather than dropping it silently.
Open · responds 200, 400, 402
POST/api/verify
Verify a clip against a brief and report surviving views
Price: 0.05 USDC per call, settled over x402.
Open · responds 200, 400, 402
GET/api/campaign
Public view of active campaigns and remaining pools
Returns campaign configurations, total pool allocations, remaining funds, dwell requirements, and tick status.
Open · responds 200
POST/api/campaigns
Open a new creator marketing campaign (Operator-gated)
Requires `x-operator-secret` header matching `OPERATOR_SECRET`.
Operator · x-operator-secret · responds 201, 401, 503
POST/api/submissions
Submit a creator clip for a campaign
Public door for creators. Accepts post URL, payout wallet address, and campaignId. Freezes accepted terms.
Open · responds 201, 400
GET/api/submissions/{id}
Check status of a submitted clip
Returns current disposition (auto_pay, held, blocked, no_op), verdict status, confirmed views, and earned USDC.
Open · responds 200, 404
POST/api/tick
Execute one agent tick pass (Cloud Scheduler-gated)
Requires `x-tick-secret` header matching `TICK_SECRET`. Refreshes views, evaluates payout gate, and triggers settlement.
Scheduler · x-tick-secret · responds 200, 401, 503
POST/api/job
Execute an autonomous research job (x402-gated)
Requires x402 payment header `X-PAYMENT`. Agent researches, prices, buys data, and answers.
x402 · payment · responds 200, 402