API v1 · 4xx
payload_too_large
| HTTP | When |
|---|---|
| 413 | The request body exceeded the per-endpoint size cap. |
Each write endpoint enforces a hard cap on the size of the JSON body so a single client can't pin a server with a multi-megabyte payload. The caps are:
| Endpoint | Cap |
|---|---|
POST /v1/notes | 100 KB on content |
POST /v1/posts | 100 KB on content, 500 chars on title |
POST /v1/sources (text) | 1 MB on text |
Inline content_base64 | ~3 MB decoded (~4 MB as base64) |
The inline-bytes cap is shared by POST /v1/media and the MCP tools
that accept content_base64 — see
MCP tools §4 for
the contract. Note that a request body much over it never reaches the
API at all: the serving platform rejects it at ~4.5 MB on the wire with
a bare 413 FUNCTION_PAYLOAD_TOO_LARGE carrying no error envelope, so
size-check the file before sending rather than reading a missing
envelope as an outage.
When you send an Idempotency-Key we additionally cap the total
request body at 256 KB by default (sources push this to its own cap)
because we have to buffer the body in memory to hash it for replay.
Recovery
- Trim or chunk the offending field.
- For long-form transcripts that genuinely don't fit, split them into multiple sources and link them client-side.
- The 1 MB cap on
textsources is a hard product decision; if your workflow needs more, file a feature request — file-ingest sources (with S3 multipart uploads) are the long-term answer. - For file bytes over the inline cap, switch to the two-step
presigned upload and pass the
uploadId— do not retry inline.
The error envelope is the same uniform shape; the message field will
hint which field tripped the cap.