Parties outside DawaTrack
The suppliers and buyers outside DawaTrack your events named, and the contact a recall reaches them by.
Endpoints
List your parties outside DawaTrack
https://api.dawatrack.com/partner-api/v1/parties/
The suppliers and buyers outside DawaTrack your events named, with the email and phone a recall reaches them by.
batches:read
Limit 5,000 per day
A party is listed once a RECEIVE named it as sender or a SHIP named it as recipient. Those a recall can't email (reachable: false) come first.
Only your own records: another partner's are never listed. Needs batches:read.
Example request
curl -X GET https://api.dawatrack.com/partner-api/v1/parties/ \
-H "Authorization: Bearer $DAWATRACK_TOKEN"
import requests
token = "..." # from POST /oauth/token/
response = requests.get(
"https://api.dawatrack.com/partner-api/v1/parties/",
headers={"Authorization": f"Bearer {token}"},
)
response.raise_for_status()
print(response.json())
const token = "..."; // from POST /oauth/token/
const response = await fetch("https://api.dawatrack.com/partner-api/v1/parties/", {
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
});
console.log(await response.json());
Response fields
-
idinteger Read-onlyThe record's id.
-
namestring Read-only -
ppb_licencestring Read-only -
emailstring Read-only -
phonestring Read-only -
reachableboolean Read-onlyTrue when a recall can email it.
-
first_seen_atdatetime Read-only -
last_seen_atdatetime Read-only
Example response
[
{
"id": 412,
"name": "Lakeside Wholesale",
"ppb_licence": "PPB/WH/0042",
"email": "",
"phone": "+254700000042",
"reachable": false,
"first_seen_at": "2026-10-20T08:15:00Z",
"last_seen_at": "2026-10-29T14:02:00Z"
}
]
Status codes
200 | OK |
401 | No valid access token |
403 | Your credential lacks the scope, partner type or environment this needs |
429 | Rate limit exceeded |
Set a party's contact
https://api.dawatrack.com/partner-api/v1/parties/{id}/
Set the email and phone of a party outside DawaTrack your events named.
events:write
Limit 5,000 per day
Send email and phone, both required (400 otherwise); the phone with its country code (+254…; a Kenyan 07… or 01… number works too), kept in E.164. It replaces what's on file, on your record of the party, off the ledger.
An email tells the open recalls already reaching the party straight away: it is emailed the recall notice with a link to answer it. Needs events:write.
Path parameters
-
idinteger Required
Request body
JSON. Send Content-Type: application/json.
-
emailstring Optional -
phonestring Optional
Example request
curl -X PATCH https://api.dawatrack.com/partner-api/v1/parties/42/ \
-H "Authorization: Bearer $DAWATRACK_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"email": "recalls@lakeside.example",
"phone": "+254700000042"
}'
import uuid
import requests
token = "..." # from POST /oauth/token/
response = requests.patch(
"https://api.dawatrack.com/partner-api/v1/parties/42/",
headers={"Authorization": f"Bearer {token}", "Idempotency-Key": str(uuid.uuid4())},
json={
"email": "recalls@lakeside.example",
"phone": "+254700000042"
},
)
response.raise_for_status()
print(response.json())
const token = "..."; // from POST /oauth/token/
const response = await fetch("https://api.dawatrack.com/partner-api/v1/parties/42/", {
method: "PATCH",
headers: {
Authorization: `Bearer ${token}`,
"Idempotency-Key": crypto.randomUUID(),
"Content-Type": "application/json",
},
body: JSON.stringify({
"email": "recalls@lakeside.example",
"phone": "+254700000042"
}),
});
console.log(await response.json());
Response fields
-
idinteger Read-onlyThe record's id.
-
namestring Read-only -
ppb_licencestring Read-only -
emailstring Read-only -
phonestring Read-only -
reachableboolean Read-onlyTrue when a recall can email it.
-
first_seen_atdatetime Read-only -
last_seen_atdatetime Read-only
Example response
{
"id": 412,
"name": "Lakeside Wholesale",
"ppb_licence": "PPB/WH/0042",
"email": "recalls@lakeside.example",
"phone": "+254700000042",
"reachable": true,
"first_seen_at": "2026-10-20T08:15:00Z",
"last_seen_at": "2026-10-29T14:02:00Z"
}
Status codes
200 | OK |
400 | The request is invalid, for example a malformed GTIN or a missing field |
401 | No valid access token |
403 | Your credential lacks the scope, partner type or environment this needs |
404 | Not found, or not visible to your credential |
409 | Conflict: a request with this Idempotency-Key is in progress, or the record already exists |
429 | Rate limit exceeded |
Partner API v1. The API reference is generated from the API's own code.