# एरर कोड

> TBit API के एरर संभालने का रेफ़रेंस

- पेज: https://tbit.app/hi/docs/api/errors
- Base URL: `https://rest-api.tbit.app/v1`
- ऑथेंटिकेशन: हर request में आपकी key के साथ `X-API-Key` header (उदाहरण इसे `TBIT_API_KEY` environment variable से पढ़ते हैं)

जानना है कि WhatsApp मैसेज डिलीवर क्यों नहीं हुआ? देखें [WhatsApp डिलीवरी एरर](https://tbit.app/docs/whatsapp-delivery-errors).

## एरर response का फ़ॉर्मेट

सभी एरर एक जैसे JSON ढाँचे को फ़ॉलो करते हैं:

```json
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Activity not found"
  }
}
```

## एरर कोड

| स्टेटस | कोड | विवरण |
| --- | --- | --- |
| `400` | `VALIDATION_ERROR` | Invalid request body or query parameters |
| `401` | `UNAUTHORIZED` | Missing or invalid API key |
| `404` | `NOT_FOUND` | Resource not found or does not belong to your agent |
| `405` | `METHOD_NOT_ALLOWED` | HTTP method not supported for this endpoint |
| `409` | `CONFLICT` | Resource already exists (e.g., contact with this channel) |
| `422` | `SEND_FAILED` | Template send failed (e.g., no messaging window) |
| `429` | `RATE_LIMITED` | Rate limit exceeded (100 requests/minute) |
| `500` | `INTERNAL_ERROR` | Unexpected server error |

## Rate Limit Headers

Every response includes rate limit information in headers:

| Header | विवरण |
| --- | --- |
| `X-RateLimit-Remaining` | Requests remaining in current window |
| `X-RateLimit-Reset` | Timestamp (ms) when the window resets |

## एरर संभालना

API एरर संभालने के सबसे अच्छे तरीके:

- Response body पार्स करने से पहले हमेशा HTTP status code चेक करें
- 429 (rate limit) एरर के लिए exponential backoff लागू करें
- डीबगिंग के लिए एरर कोड और मैसेज लॉग करें
- 400 या 401 एरर पर retry न करें: पहले request ठीक करें
