Help Center

How Inbox Penny works, and what to do when it doesn’t

⌘K

Errors and status codes

What each response means, and whether retrying will help.

Errors always come back in the same shape, so one handler covers all of them:

The shape

{
  "error": {
    "code": "validation_failed",
    "message": "email must be a valid address",
    "details": { "field": "email" }
  }
}

message is written to be shown to a person. code is stable and safe to branch on; details is present when there’s something specific to point at.

The codes

StatusMeansDo
200 / 201Updated / createdNothing
204DeletedNothing — there’s no body
401Key missing, wrong or revokedFix the key. Never retry
404Not found, or not in your accountCheck the id. Never retry
409Conflicts with something that existsUsually update instead of create
422Body failed validationRead details. Never retry unchanged
429Rate limitedWait Retry-After, then retry
5xxOur faultRetry with backoff

The rule of thumb: 4xx means change something before you try again; 429 and 5xx are the only ones worth retrying unchanged.

Why you get 404 rather than 403

An id belonging to another account returns 404, not 403. That’s deliberate: distinguishing “this doesn’t exist” from “this exists but isn’t yours” would let anyone probe for valid ids.

So a 404 on something you’re sure exists usually means you’re using a key from a different account.

Common issues

422 on an address that looks fine

Check for whitespace or a trailing comma from a CSV. The details object names the field.

409 creating a contact

You shouldn’t see it on POST /contacts — that upserts. If you do, it’s a list name colliding.

Intermittent 5xx

Retry with backoff. If it persists, note the time and get in touch — a persistent 5xx is a bug on our side, not something to work around.

FAQs

Are error codes stable?+

Yes — branch on code rather than matching on message, which is prose and may be reworded.

Is there a request id for support?+

Not yet. Send the endpoint, the time and the body you posted — minus anything sensitive — and that’s enough to find it.

Where to go next