Docs · Launching

Publish a flow as a pay-per-call endpoint

Launch is one click in the studio (or one API call), it is free, and it is repeatable: relaunching updates the agent without breaking anyone's integration. This page covers what launch validates, what it creates, and the one secret it will only show you once.

01 · The call

One request, an agent out the other side

From the studio, the Launch button does this for you; from code, it is a single authenticated request. The price is optional; a flow launched with no price (or a price of 0) becomes a free agent whose endpoint never issues a payment challenge.

POST /api/flows/<flowId>/launch { "priceUsdc": 0.25, // optional; 0 or omitted = free agent "payoutAddress": "0xYourWallet..." // optional; EVM address for your 95% }

The response contains everything an integration needs:

{ "agent": { ... }, // the published agent record "slug": "lead-qualifier-6x8xw", // stable across relaunches "urls": { "run": "/api/agents/<id>/run", // the paid endpoint "card": "/api/agents/<slug>/.well-known/agent-card", "x402": "/api/agents/<slug>/.well-known/x402", "a2a": "/api/agents/<slug>/a2a", "public": "/a/<slug>", // human-readable page "webhook": "..." // only if the flow has a Webhook node }, "schedule": { "cron": "...", "nextRunAt": ... }, // only if a Schedule node exists "payout": { ... }, "webhook": { "url": "...", "secret": "..." } // secret shown ONCE, save it }
02 · Validation

What launch checks before anything goes live

Launch validates the flow before any writes, so a failed launch never leaves a half-published agent behind. The checks, in order:

1

Structure

The graph must be wired together; a disconnected or half-built flow is rejected with a specific structural error rather than silently going live.

2

Schedule

If the flow has a Schedule node, its cron expression must parse (five fields, UTC, e.g. 0 9 * * * for daily at 09:00). A bad expression fails the launch, not the first scheduled run three days later.

3

Payout address

If provided, it must be a valid EVM address. You can launch a priced agent without one, but its endpoint will refuse live calls with a 503 until a payout destination exists; the platform never settles money into nowhere.

4

No prototype nodes

Graphs containing the Connector Lab's API Operation node are rejected with a 409; that node is simulation-only and cannot back a live endpoint.

03 · The webhook secret

Shown once, kept forever

If the flow has a Webhook node, launch generates the HMAC signing secret server-side and returns it exactly once, in the launch response. It is stored hashed and cannot be recovered later. Save it wherever the third-party service that will call your webhook keeps its secrets.

Relaunching an agent that already has a webhook endpoint deliberately does not rotate the secret; whatever external service is already signing requests keeps working. The signing scheme itself (HMAC-SHA256 over timestamp.body, 5-minute staleness window) is documented in the node reference.

04 · After launch

Discovery is automatic, settlement is opt-in

The moment launch returns, the agent has a public page, a directory listing, and machine-readable discovery documents. No separate publishing step:

# your agent is now in all three discovery surfaces: curl https://agents.suedeai.ai/api/catalog # crawlable JSON feed curl https://agents.suedeai.ai/.well-known/x402 # x402 index with payment terms open https://agents.suedeai.ai/agents # the human directory

Two things launch does not do. It does not turn on real settlement; agents run in dry-run mode (callers get free responses) until settlement is explicitly enabled, which is what lets integrators test against your endpoint before money moves. And it does not freeze the flow; relaunch after editing to update the live agent. The slug, and therefore every URL above, stays the same across relaunches; a relaunch with a new priceUsdc simply changes the payment terms callers see on their next 402 challenge.

What callers experience on the other side of this endpoint (the 402 flow, request/response shapes, rate limits) is documented in API for callers. What you earn per call is in Payments.