RepairDock API (v1)
A token-authenticated REST API for connecting Zapier, accounting software, or your own scripts to your shop data. Sign in to request access.
Authentication
Send your token as a Bearer token in the Authorization header:
curl https://repairdock.online/api.php/me \ -H "Authorization: Bearer rd_live_xxxxxxxxxxxxxxxxxxxxxxxx"
If your host strips the Authorization header (common on some shared hosting), send the token as X-Api-Key: rd_live_... instead, or add this to your .htaccess:
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Base URL
https://repairdock.online/api.php
Every route below can also be called as api.php?resource=customers&id=5 if your setup doesn't support extra path segments.
Rate limits
The limit values come from your shop's plan; each token you create tracks its own usage against those same numbers independently, so multiple tokens don't share one counter.
| Plan | Requests / minute | Requests / day | Tokens | Price |
|---|---|---|---|---|
| Enterprise | 3,000 | 2,000,000 | 100 | Contact us |
Every response includes rate-limit headers: X-RateLimit-Limit-Minute, X-RateLimit-Remaining-Minute, X-RateLimit-Limit-Day, X-RateLimit-Remaining-Day. Going over a limit returns 429 with a Retry-After header.
Endpoints
Example: list customers
curl https://repairdock.online/api.php/customers?per_page=10 \ -H "Authorization: Bearer rd_live_xxxxxxxxxxxxxxxxxxxxxxxx"
{
"ok": true,
"data": [
{ "id": 12, "full_name": "Jane Doe", "phone": "555-0100", "email": null, "address": null, "notes": null, "created_at": "2026-07-20 11:55:31" }
],
"meta": { "page": 1, "per_page": 10, "total": 1 }
}
Example: create a repair ticket
curl -X POST https://repairdock.online/api.php/repairs \
-H "Authorization: Bearer rd_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"customer_id": 12,
"device_brand": "Samsung",
"device_model": "Galaxy A12",
"issue_description": "Cracked screen",
"quoted_price": 45
}'
{ "ok": true, "data": { "id": 88, "ticket_code": "RS-2026-A1B2C3" } }
Example: update a repair's status
curl -X PUT https://repairdock.online/api.php/repairs/88 \
-H "Authorization: Bearer rd_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "status": "completed", "final_price": 45 }'
Errors
Every error response looks like:
{ "ok": false, "error": "Human-readable message" }
| Code | Meaning |
|---|---|
| 401 | Missing, invalid, or revoked token |
| 404 | Resource not found (or belongs to a different shop) |
| 405 | That HTTP method isn't supported on this route |
| 422 | Missing/invalid fields in the request body |
| 429 | Rate limit exceeded -- see Retry-After |
| 503 | API not enabled on this installation |
Security notes
- Tokens are scoped to one shop -- there is no cross-shop access, ever.
- Tokens are stored as a one-way hash; if you lose a token, revoke it and create a new one rather than trying to recover it.
- Treat your token like a password. Anyone with it can read and write your shop's customer and repair data within your plan's rate limit.
- Inventory is currently read-only via the API.