AI Router · CLI · MCPCheapest eligible quotes before you create

0–90 days · live (authenticated)

Ask for the outcome.

An external agent sends the creative objective, inputs, channel, budget, quality priority, and deadline — not a model id. Authenticated plan, quote, and execute use that schema today. Named-model MCP remains available when the agent already knows the catalog. This page is a walkthrough, not a charge path.

Customer asks
Outcome + constraints
Studio decides
How to fulfill
Status
Live · authenticated

Illustrative intent · live schema is POST /api/v1/outcomes

{
  "objective": "Create a direct-response ad for this shoe",
  "inputs": [
    "product_photo.jpg",
    "brand_guide.pdf"
  ],
  "channels": [
    "tiktok",
    "instagram_reels"
  ],
  "duration_sec": 15,
  "budget_usd": 2,
  "quality": "high",
  "deadline_sec": 90,
  "must": [
    "9:16",
    "no logo distortion"
  ],
  "avoid": [
    "text over product"
  ],
  "output": "1080x1920 mp4"
}
  • Media outcome15s vertical product ad
  • Workloadvertical-product-ad
  • Budget ceiling$2.00 USD
  • Quality priorityhigh
  • Latency limit90 seconds
  • Output9:16

Normalize the request before routing

The intent schema is live on authenticated POST /api/v1/outcomes. This page does not execute or charge.

  1. 01

    Capture the objective

    The agent states what media must exist when the job is done — a 15-second vertical product ad, an ecommerce hero set, an image-to-video clip — not which catalog id to call.

  2. 02

    Lock hard constraints

    Budget, latency ceiling, output shape, and must/avoid rules become the eligibility envelope. A route that cannot meet them is not scored.

  3. 03

    Keep the request model-agnostic

    Intent is a separate contract from execution. The planner, router, and payment adapter should be able to change underneath without rewriting the agent’s request.

  4. 04

    Preserve the raw fields

    Store the original objective and constraints with the job identity so later evaluation can judge the output against what was asked, not against a generic quality score.

Preview plan · POST /api/v1/outcomes/plan · this page does not execute

  • Customer asksOutcome + constraints

    Objective, budget, quality, latency, and policy — not a model id.

  • Studio decidesHow to fulfill

    Planning, routing, quoting, and evaluation sit behind the schema.

  • StatusLive · authenticated

    API key or MCP OAuth. Unauthenticated outcomes return NOT_LIVE.

This page does not charge.

Stripe Checkout, wallet env, and seller payouts stay off this page. Authenticated outcomes execute is the live charge path. Named-model MCP and /ai-router remain available.

  • TODO(generation)

    Do not call FAL or other provider credentials. Candidate scores and outputs on these pages are illustrative.

  • TODO(stripe)

    Do not wire Stripe Checkout, card forms, or human top-up URLs on these plan pages. Settlement stays a later integration.

  • TODO(x402-env)

    Do not read X402_EVM_PRIVATE_KEY or OFFLINECREATOR_X402_MAX_USD here. Wallet settlement stays on the live /x402 runbooks.

Plan FAQ

Is this intent schema live on MCP, CLI, or REST?

Yes, for authenticated callers. POST /api/v1/outcomes/plan and MCP plan_outcome accept the schema. Unauthenticated outcomes return NOT_LIVE. Named-model quote_generation remains the model-id path.

Why not start from a model id?

Model ids force the agent to research the catalog. The plan is to let the agent describe the media outcome and let OfflineCreator choose the path, as long as the path stays inside budget, latency, and policy.

The agent says what. The router says how.

Intent is the contract. Routing, quoting, and payment stay replaceable underneath. Authenticated agents already send this schema.