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 response
Section titled “Success response”{ "success": true, "id": "aB3xYz", "remaining": 499}Fields vary by endpoint (id, data, remaining, etc.). See each resource page for details.
Error response
Section titled “Error response”{ "success": false, "reason": "Human-readable message"}Always read reason for the failure explanation.
Common HTTP status codes
Section titled “Common HTTP status codes”| Status | Meaning |
|---|---|
200 | Success (body still has success: true) |
400 | Invalid input — check reason |
401 | Missing or invalid API key |
403 | Forbidden — tier may not allow this endpoint |
404 | Paste, file, or paste-lite not found |
429 | Monthly quota exceeded and no credits available |
500 | Server error — retry later |
Authentication errors
Section titled “Authentication errors”| Status | Typical reason |
|---|---|
401 | API key required |
401 | Invalid API key |
See Authentication.
Rate limits
Section titled “Rate limits”When you exceed your plan’s monthly free quota and have no credits:
- Status: 429
reasondescribes the limit
Monthly counters reset on a billing-cycle schedule. Buy credits for overage, or upgrade on pricing.
Full quotas: Rate limits.
Browser API vs Developer API
Section titled “Browser API vs Developer API”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.