Admin API
Platform administration, operations, compliance and finance.
Frontend integration guideUse the endpoint cards below as the source of truth for request methods, authentication and test payloads. Keep credentials in secure storage and send bearer tokens only over HTTPS.
Mutating requests should include a unique Idempotency-Key. Render API status and error codes explicitly, and refetch state after reconnecting.
REST response contractEvery response is JSON: { success, data, error }. When success is true, read data. When it is false, use error.code for app logic and error.message for safe UI text.
| HTTP | Meaning | Frontend action |
|---|
200 | Request succeeded. | Render data. |
201 | Resource created. | Persist its returned ID/state. |
202 | Accepted for asynchronous work. | Show pending; it is not authentication. |
400 | Invalid request or business rule. | Show error.message and field details. |
401 | Token missing, expired or invalid. | Refresh session or sign in. |
403 | Access denied. | Do not retry. |
404 | Unavailable or hidden resource. | Return safely and refresh state. |
409 | State conflict/duplicate/expired resource. | Refetch; do not blindly retry. |
422 | Semantically invalid input. | Highlight the field. |
429 | Rate limited. | Back off, respecting Retry-After. |
500 | Unexpected server failure. | Offer a safe retry. |
Stable codes: VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, NOT_FOUND, TRIP_ACCESS_DENIED, RIDER_ACTION_RATE_LIMITED and OTP_RATE_LIMITED. Each endpoint guide adds any relevant business codes.
GET/api/v1/admin/operational-documents
Bearer token
List vehicle documents awaiting Admin review
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/operational-documents', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({})
});
const result = await response.json();Python
payload = json.loads(r'''{}''')
response = requests.get(BASE_URL + '/api/v1/admin/operational-documents',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/operational-documents');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X GET '<base-url>/api/v1/admin/operational-documents' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{}'
Response —
Run the request to see the response.
PATCH/api/v1/admin/operational-documents/:id/review
Bearer token
Approve or reject a vehicle document
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/operational-documents/:id/review', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({"decision":"APPROVED","note":"Verified"})
});
const result = await response.json();Python
payload = json.loads(r'''{"decision":"APPROVED","note":"Verified"}''')
response = requests.patch(BASE_URL + '/api/v1/admin/operational-documents/:id/review',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{"decision":"APPROVED","note":"Verified"}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/operational-documents/:id/review');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X PATCH '<base-url>/api/v1/admin/operational-documents/:id/review' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{"decision":"APPROVED","note":"Verified"}'
Response —
Run the request to see the response.
GET/api/v1/admin/dashboard
Bearer token
Platform dashboard
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/dashboard', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({})
});
const result = await response.json();Python
payload = json.loads(r'''{}''')
response = requests.get(BASE_URL + '/api/v1/admin/dashboard',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/dashboard');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X GET '<base-url>/api/v1/admin/dashboard' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{}'
Response —
Run the request to see the response.
GET/api/v1/admin/fleets
Bearer token
Fleet list
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/fleets', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({})
});
const result = await response.json();Python
payload = json.loads(r'''{}''')
response = requests.get(BASE_URL + '/api/v1/admin/fleets',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/fleets');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X GET '<base-url>/api/v1/admin/fleets' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{}'
Response —
Run the request to see the response.
PATCH/api/v1/admin/fleets/:id/status
Bearer token
Change fleet status
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/fleets/:id/status', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({"status":"ACTIVE"})
});
const result = await response.json();Python
payload = json.loads(r'''{"status":"ACTIVE"}''')
response = requests.patch(BASE_URL + '/api/v1/admin/fleets/:id/status',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{"status":"ACTIVE"}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/fleets/:id/status');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X PATCH '<base-url>/api/v1/admin/fleets/:id/status' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{"status":"ACTIVE"}'
Response —
Run the request to see the response.
PATCH/api/v1/admin/fleets/:id/remittance-policy
Bearer token
Set a fleet cash-remittance threshold and online enforcement
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/fleets/:id/remittance-policy', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({"enabled":true,"thresholdMinor":500000,"blockOnline":true})
});
const result = await response.json();Python
payload = json.loads(r'''{"enabled":true,"thresholdMinor":500000,"blockOnline":true}''')
response = requests.patch(BASE_URL + '/api/v1/admin/fleets/:id/remittance-policy',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{"enabled":true,"thresholdMinor":500000,"blockOnline":true}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/fleets/:id/remittance-policy');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X PATCH '<base-url>/api/v1/admin/fleets/:id/remittance-policy' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{"enabled":true,"thresholdMinor":500000,"blockOnline":true}'
Response —
Run the request to see the response.
GET/api/v1/admin/incidents
Bearer token
Safety incidents
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/incidents', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({})
});
const result = await response.json();Python
payload = json.loads(r'''{}''')
response = requests.get(BASE_URL + '/api/v1/admin/incidents',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/incidents');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X GET '<base-url>/api/v1/admin/incidents' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{}'
Response —
Run the request to see the response.
GET/api/v1/admin/audit
Bearer token
Audit events
Endpoint guide What to send, parse and expect
Why it exists
Use this endpoint to perform the action described above.
Before you call
Use the method and authentication badge shown above. Replace every placeholder with a value returned by an earlier API call.
Request fields
The JSON editor contains a runnable example. Required field rules are returned as error.details.fieldErrors when validation fails.
What to parse
Check success first. On success, read data; on failure, render error.code and error.message.
Request structure and code samples Node.js · Python · PHP · cURL
Replace angle-bracket values with returned values. Use the raw access token only in the Authorization header.
Node.js
const response = await fetch(BASE_URL + '/api/v1/admin/audit', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer <access-token>',
'Idempotency-Key': crypto.randomUUID()
},
body: JSON.stringify({})
});
const result = await response.json();Python
payload = json.loads(r'''{}''')
response = requests.get(BASE_URL + '/api/v1/admin/audit',
headers={'Idempotency-Key': str(uuid.uuid4())},
json=payload)
result = response.json()PHP
$payload = <<<'JSON'
{}
JSON;
$ch = curl_init($baseUrl . '/api/v1/admin/audit');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Idempotency-Key: <uuid>'],
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
]);cURL
curl -X GET '<base-url>/api/v1/admin/audit' \
+ -H 'Authorization: Bearer <access-token>' \
+ -H 'Content-Type: application/json' \
+ -H 'Idempotency-Key: <uuid>' \
+ --data '{}'
Response —
Run the request to see the response.
Errors and safetyResponses use JSON with a stable error code. Mutating requests receive an automatic idempotency key in the test console. Never paste production credentials here.