API Reference
Build on the SaathiX platform.
A REST API for every module in SaathiX — plus GraphQL, webhooks, and OAuth apps. 99.99% uptime, 60ms P50 latency.
60ms P50 latency
REST + GraphQL
OAuth 2.0 & PAT
5 SDK languages
Get started
Authentication
All requests use a Bearer token. Create keys under Settings → API.
Authorization
Authorization: Bearer sk_live_xxxRotate keys any time. Test mode uses sk_test_.
Interactive
Try it — create invoice
Live in your sandbox. No charges.
curl https://api.saathix.in/v1/invoices \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"party_id": "pty_123",
"items": [{ "sku": "COKE-250", "qty": 12, "rate": 40 }]
}'Reference
Endpoints
8+ endpoints across billing, inventory, CRM, GST and more.
| Method | Path | Description |
|---|---|---|
| GET | /v1/invoices | List invoices with filters |
| POST | /v1/invoices | Create a new invoice with e-invoice IRN |
| GET | /v1/invoices/{id} | Fetch a specific invoice |
| POST | /v1/parties | Create a customer or supplier |
| GET | /v1/products | List products with stock |
| POST | /v1/payments | Record a payment against invoices |
| POST | /v1/webhooks | Subscribe to real-time events |
| GET | /v1/gstr1/{period} | Fetch GSTR-1 JSON for filing |
SDKs
Official SDKs
Type-safe clients maintained by the SaathiX team.
Errors
Error codes
| Code | Name | Meaning |
|---|---|---|
| 400 | Bad Request | Malformed request body or missing required fields. |
| 401 | Unauthorized | Missing or invalid API key. |
| 402 | Payment Required | Subscription paused or plan limit exceeded. |
| 403 | Forbidden | API key lacks scope for this endpoint. |
| 404 | Not Found | Resource ID does not exist. |
| 429 | Rate Limited | Too many requests — see rate limit headers. |
| 5xx | Server Error | Retry with exponential backoff. |
Rate limits
1,000 req/min · burst 200/s
Every response includes X-RateLimit-Remaining and X-RateLimit-Reset. Enterprise plans get 10× headroom.
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 992
X-RateLimit-Reset: 1719750620
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 992
X-RateLimit-Reset: 1719750620