> ## Documentation Index
> Fetch the complete documentation index at: https://docs.submito.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Response Codes

> All possible responses from the Submito submission endpoint.

## Success

| Status | Body | Meaning |
| - | - | - |
| `201` | `{ "ok": true, "submissionId": "..." }` | Submission received and queued for delivery |

## Client errors

| Status | Meaning |
| - | - |
| `400` | Bad request — missing or invalid fields |
| `401` | Unauthorized — missing or invalid API key |
| `403` | Forbidden — API key is revoked |
| `404` | Endpoint not found — check your slug |
| `409` | Conflict — duplicate request in progress |
| `413` | Payload too large — non-JSON body exceeds 64KB |
| `429` | Monthly quota exceeded — upgrade your plan |

## Server errors

| Status | Meaning |
| - | - |
| `500` | Internal server error — try again or contact support |

## Example error response

```json theme={null}
{
  "ok": false,
  "error": "Unauthorized"
}
```

## Handling quota exceeded (429)

When you hit your monthly submission limit, the endpoint returns `429`. You can handle this gracefully:

```javascript theme={null}
if (res.status === 429) {
  // Show upgrade prompt to the user
  console.error('Monthly quota exceeded.')
}
```

Quotas reset on the 1st of each month (or on your billing renewal date for paid plans). You can upgrade at any time from your [billing page](https://submito.dev/dashboard/billing).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.