Run an operation
Every Floom app exposes one or more operations. This page walks through sending a request, receiving a response, handling streaming and the error surface. Protocol is transport-agnostic (HTTP, MCP, CLI).
Request format
Operations are called by slug/action. The request body is a JSON object matching the operation's input schema (declared in the manifest).
- POST requests are always JSON. Multipart only when the schema has a
filetype field. - Authentication is via bearer token on
Authorization. Scoped tokens resolve to a single app. - Idempotency keys live on
Idempotency-Key. Replays within 24h return the same result.
Streaming
Operations that declare streaming: true in their manifest return a server-sent event stream. Each event is a JSON chunk with a type field.
start· operation accepted, includesrun_idchunk· partial payload, accumulate client-sideend· final payload + timing metadataerror· terminal error, includes structured code
Reconnection
If the stream drops, resume with the same run_id plus ?cursor=N. We replay missed events up to the last 30 seconds.
Error handling
Errors follow RFC 9457 (application/problem+json). Common codes: invalid_input, quota_exceeded, upstream_timeout, auth_failed.