When an autonomous agent needs media created, OfflineCreator should be the place it calls. The agent describes the outcome, budget, and deadline. Authenticated plan, quote, and execute already run that path. We are in the 6–9 month window: workflows and outcome quotes. This hub is the 12-month map — it is not itself an API, and not a wallet. Outcomes need a credential; pay-per-generation does not.
The agent says what. The router says how. Credits are the default rail. x402 is optional. This hub does not charge.
> POST /api/v1/outcomes/plan
objective: 15s product ad
budget_usd: 2.00
quality_priority: high
latency_limit_sec: 90
output: 1080x1920 mp4
✓ workload · vertical-product-ad
✓ route · Tripo Segment · fal
✓ quoted · $0.02
✓ compared · 81 routes · sha-256 attestation
EVAL fail · aspect_mismatch · duration_missing · mime_mismatch · width_mismatch · height_mismatch
NEXT execute · authenticated · credits or x402Catalog-priced plan from POST /api/v1/outcomes/plan. This demo probes the stub logo and fails closed. Authenticated execute can start catalog jobs. Unauthenticated outcomes return NOT_LIVE. This hub does not charge.
Prove routing intelligence before a broad marketplace. Each window has a status page under this nav. 0–90 and 6–9 are live for authenticated agents. 3–6 and 9–12 are still open.
By the end of the first year: can an external agent give OfflineCreator a creative objective and reliably get a better outcome than if it had picked a model itself?
Router beats a manual baseline on cost, quality, and latency for two or three narrow jobs.
Shipped for authenticated agents. Unauthenticated outcomes stay NOT_LIVE, though pay-per-generation needs no account.
Measurable reduction in failures and regenerations against a stored corpus.
Byte probe and vision QA are live on authenticated receipts. Observed route scoring writes back after five inspected jobs. This hub does not charge.
Agents can buy a completed outcome instead of naming a model.
DAG, payable quote, x402 execute, wait, download, and byte inspect are live for authenticated agents. This hub does not charge.
External supply can win real routed traffic on operational reputation.
Qualification only. No seller USDC, Connect, or revenue share.
Separate what the agent wants from how Studio creates it, and separate both from how it is settled. Layer 7 is an adapter on purpose — x402 is an early rail, not the business.
Accept REST, MCP, and future agent protocols behind a stable request contract.
Normalize objective, budget, quality, latency, and constraints without naming a model.
Decompose the objective into a bounded, auditable sequence of creative tasks.
Describe models, APIs, workflows, and later third-party agents with comparable metadata.
Score eligible paths on cost, quality, latency, and reliability. Keep every compared price on a SHA-256 routing attestation.
Lock price, scope, expiry, and spend limit so the agent can reject work over budget.
Credits debit on authenticated execute. prefer_rail=x402 is pay-per-outcome USDC. Stripe stays human. Stripe/Tempo MPP and card-network credentials are reserved. TODO(settlement): payment-adapter.ts on this hub still throws; no seller payouts.
Authenticated execute runs the DAG, waits, and reserves credits. This hub does not start those jobs.
Authenticated receipts probe observed bytes and run vision QA against must/avoid. Failed vision is a receipt signal only.
Return media, receipts, and a verifiable routing attestation the requesting agent can store and re-hash.
These are the planned scoreboard, not live telemetry. Illustrative unit economics from the strategy thesis are not current Studio prices.
Auto-route share; route selection confidence; fallback rate.
Acceptance rate; regeneration rate; human or agent evaluation score.
Gross margin per successful job; disclosed platform spread; quote accuracy — illustrative only.
Successful completion rate; p50/p95 latency; duplicate charge rate.
Active capabilities; routed seller share; repeat agent customers.
Named-model MCP, CLI, REST, /ai-router, and x402 stay live. Authenticated outcomes are the objective-plus-budget path. This hub does not replace them, open Stripe, or pay sellers.
Connect with an API key or MCP OAuth. Plan, quote, and execute an outcome — or keep using named-model generate. An agent with no account can browse /api/agent/models and pay per generation over x402 instead, from one cent. Humans still use Stripe on /pricing. This hub does not open that checkout.
Nine pages, grouped by window. We are in the 6–9 month window. Demos on this hub do not charge. Stripe Checkout, wallet env, and seller payouts stay off these pages. Authenticated execute is the live charge path.
Parts of it. Authenticated plan, quote, execute, wait, download, vision QA, and observed route scoring are live (API key or MCP OAuth). Unauthenticated outcomes return NOT_LIVE, though POST /api/agent/generate sells a single generation over x402 with no account at all. These hub pages do not charge, open Stripe Checkout, or pay sellers. Seller payouts stay open.
With an API key or MCP OAuth, an agent can send an objective and budget to /api/v1/outcomes, or keep using named-model list_models → quote_generation → generate. Credits debit on execute. prefer_rail=x402 is pay-per-outcome USDC. With no account at all, an agent can read GET /api/agent/models and buy one generation over x402 from a cent, receiving a claim token to poll and download.
No. Subscriptions and credit packs for people still go through Stripe on /pricing. Authenticated execute can spend credits or return an x402 challenge. These hub pages do not perform that settlement.
Named-model /ai-router compares provider routes for a requested model and locks a signed quote. Authenticated outcomes accept a task plus constraints and choose the route. Both stay live.
Yes. Each outcome quote includes a SHA-256 routing attestation listing every compared provider, wholesale, retail, and disclosed platform spread. POST /api/v1/outcomes/verify re-hashes the canonical JSON. Unauthenticated outcomes return NOT_LIVE.
Without a wallet the API returns insufficient-credits 402 and a human tops up through Stripe. With x402 configured, the same request can return a PAYMENT-REQUIRED challenge. prefer_rail=x402 on outcome execute is pay-per-outcome even when the ledger has balance. An agent that never had credits can skip the ledger entirely on POST /api/agent/generate, where one payment buys one job. These hub pages do not perform that settlement.
Open the 0–90 day schema, then the model-routing beta. Live agents still connect through MCP or the CLI on a named-model quote.