API reference
Errors and rate limits
Every failure in the Preflight API is a JSON body with a stable code, a message written for a person and, when a field is at fault, its name. The status says what kind of failure it is: 4xx for a request the API will not take as sent, 402 for the plan's allowance, 422 for a post a network would refuse, 424 for a refusal passed on from a network, 429 for a rate limit. Requests are limited per address and, for the costlier calls, per key.
Errors and limits
Failures return a stable code and a message meant to be read by a person.
{ "error": { "code": "invalid_request", "message": "targets[] is required.", "field": "targets" } }A 402 carries limit: { used, allowed } and the plan that would allow it in upgradeTo. Requests are limited to 600 a minute per address, with tighter limits on creating files (60), on AI (20), on account lookups such as boards and playlists (60), on creating webhooks (20) and on MCP (120). The tighter limits count per key.
Questions: info@preflight.social. The same API as a schema: openapi.json (OpenAPI 3.1).
Write it once. Let the rules be our problem.
Preflight checks every post against each network's rules before it leaves, then publishes it to twelve networks. Free plan, no card.