Get one delivery
curl -X GET 'https://business.kiloapp.org/api/v1/deliveries/{deliveryId}' \
-H 'Authorization: Bearer sk_live_...'curl -X GET 'https://business.kiloapp.org/api/v1/deliveries/{deliveryId}' \
-H 'Authorization: Bearer sk_live_...'const response = await fetch("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}", {
method: "GET",
headers: {
"Authorization": "Bearer sk_live_..."
},
});
const data = await response.json();
console.log(data);const response = await fetch("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}", {
method: "GET",
headers: {
"Authorization": "Bearer sk_live_..."
},
});
const data = await response.json();
console.log(data);import requests
url = "https://business.kiloapp.org/api/v1/deliveries/{deliveryId}"
headers = {
"Authorization": "Bearer sk_live_..."
}
response = requests.request("GET", url, headers=headers)
print(response.json())import requests
url = "https://business.kiloapp.org/api/v1/deliveries/{deliveryId}"
headers = {
"Authorization": "Bearer sk_live_..."
}
response = requests.request("GET", url, headers=headers)
print(response.json())<?php
$ch = curl_init("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer sk_live_...",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;<?php
$ch = curl_init("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer sk_live_...",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Returns the same delivery object shape as create. If a rider is on the job, rider_assigned is true and rider has the roster id / name.
List deliveries
curl -X GET 'https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending' \ -H 'Authorization: Bearer sk_live_...'
curl -X GET 'https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending' \
-H 'Authorization: Bearer sk_live_...'const response = await fetch("https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending", {
method: "GET",
headers: {
"Authorization": "Bearer sk_live_..."
},
});
const data = await response.json();
console.log(data);const response = await fetch("https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending", {
method: "GET",
headers: {
"Authorization": "Bearer sk_live_..."
},
});
const data = await response.json();
console.log(data);import requests
url = "https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending"
headers = {
"Authorization": "Bearer sk_live_..."
}
response = requests.request("GET", url, headers=headers)
print(response.json())import requests
url = "https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending"
headers = {
"Authorization": "Bearer sk_live_..."
}
response = requests.request("GET", url, headers=headers)
print(response.json())<?php
$ch = curl_init("https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer sk_live_...",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;<?php
$ch = curl_init("https://business.kiloapp.org/api/v1/deliveries?limit=20&status=pending");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer sk_live_...",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Query params:
| Param | Meaning |
|---|---|
limit |
1–50 (default 20) |
status |
Optional filter, e.g. pending |
cursor |
Pass the previous page's next_cursor |
Response includes deliveries and next_cursor (or null when finished).
Cancel a delivery
curl -X POST 'https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_...' \
-d '{
"reason": "Customer changed their mind"
}'curl -X POST 'https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_...' \
-d '{
"reason": "Customer changed their mind"
}'const response = await fetch("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk_live_..."
},
body: JSON.stringify({
"reason": "Customer changed their mind"
}),
});
const data = await response.json();
console.log(data);const response = await fetch("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk_live_..."
},
body: JSON.stringify({
"reason": "Customer changed their mind"
}),
});
const data = await response.json();
console.log(data);import requests
url = "https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer sk_live_..."
}
payload = {
"reason": "Customer changed their mind"
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.json())import requests
url = "https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer sk_live_..."
}
payload = {
"reason": "Customer changed their mind"
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.json())<?php
$ch = curl_init("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer sk_live_...",
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n \"reason\": \"Customer changed their mind\"\n}");
$response = curl_exec($ch);
curl_close($ch);
echo $response;<?php
$ch = curl_init("https://business.kiloapp.org/api/v1/deliveries/{deliveryId}/cancel");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer sk_live_...",
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n \"reason\": \"Customer changed their mind\"\n}");
$response = curl_exec($ch);
curl_close($ch);
echo $response;Cancel is only allowed in certain statuses (same policy as the dashboard). If the rider already has the package, cancel will fail — tell the customer honestly.
Need exact request or response shapes?
- Get one delivery: API reference → GET /deliveries/{deliveryId}
- List deliveries: API reference → GET /deliveries
- Cancel request/response: API reference → POST /deliveries/{deliveryId}/cancel
- Shared delivery object: API reference → Delivery object
- Error shape: API reference → Error envelope
Assign a rider
Listing the roster and assigning is a separate page: Assign riders.