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

# Errors and rate limits

> Understand Kasiye API error responses and the 60-request rate limit.

The API always returns JSON on `api.kasiye.com`, including errors. You do not need to send `Accept: application/json`.

## Status codes

| Code  | When                                                                                                          |
| ----- | ------------------------------------------------------------------------------------------------------------- |
| `200` | Success for list, show, quote, update, and cancel                                                             |
| `201` | Shipment created                                                                                              |
| `401` | Missing or invalid API key                                                                                    |
| `404` | Shipment reference is unknown in this workspace                                                               |
| `422` | Validation failed, route not covered, PayChangu not connected, or the shipment cannot be updated or cancelled |
| `429` | More than 60 requests in a minute for this workspace                                                          |

## Validation errors

`422` responses include field-level messages:

```json theme={null}
{
  "message": "The pickup lat field is required.",
  "errors": {
    "pickup_lat": ["The pickup lat field is required."]
  }
}
```

Common create and update keys:

| Key         | Meaning                                                      |
| ----------- | ------------------------------------------------------------ |
| `coverage`  | Pickup or dropoff is outside coverage                        |
| `weight_kg` | Weight is invalid or outside pricing tiers                   |
| `paychangu` | Connect PayChangu on the workspace before creating shipments |
| `shipment`  | The shipment can no longer be updated or cancelled           |

## Not found vs unauthorized

* No key or a bad key: `401` with `Unauthenticated.`
* A valid key for a shipment that belongs to another workspace: `404`

## Rate limits

Kasiye allows **60 requests per minute** per workspace. Back off and retry when you receive `429`.
