Skip to content

Errors and status codes

The Developer API (/api/dev/*) returns errors as JSON, not as browser header errors used by the main web app.

{
"success": true,
"id": "aB3xYz",
"remaining": 499
}

Fields vary by endpoint (id, data, remaining, etc.). See each resource page for details.

{
"success": false,
"reason": "Human-readable message"
}

Always read reason for the failure explanation.

StatusMeaning
200Success (body still has success: true)
400Invalid input — check reason
401Missing or invalid API key
403Forbidden — tier may not allow this endpoint
404Paste, file, or paste-lite not found
429Monthly quota exceeded and no credits available
500Server error — retry later
StatusTypical reason
401API key required
401Invalid API key

See Authentication.

When you exceed your plan’s monthly free quota and have no credits:

  • Status: 429
  • reason describes the limit

Monthly counters reset on a billing-cycle schedule. Buy credits for overage, or upgrade on pricing.

Full quotas: Rate limits.

Endpoints such as short links, themes, and paste creation from the website use a header-based contract (Err, Reason) for the logged-in browser client. Those are not documented here and are not callable with the same JSON shape as /api/dev/*.

Use the SDK or raw HTTP against /api/dev/ only for integrations.