API
Base domain
The API description is intended for use with subdomains under *.cloud.zoopit.no.
Authentication
Access to API is granted through Bearer tokens issued in the Zoopit dashboard.
Authorization
All entinties in Zoopit belong to an entity called project which is also used interchangably with owners.
Projects have scopes which provide some fine grained permissions. However you could also create and use course grained permissions through roles. roles simply put, are just groupings of scopes.
API Response
All end-points have the responses grouped into resource and related. The resource field carries the data of the entity referenced in the path. On the other hand, the related field holds some data referenced in the resource body for easier lookup.
Exmaple
// response body for GET: /orders/559ade03-cb22-41b9-8987-567c192d9d08
{
"resource": {
"id": "559ade03-cb22-41b9-8987-567c192d9d08",
"attributes": {},
"group": null,
"status": "RESERVED",
"reference_id": "70000000000000001",
"amounts": {
"kg": 17
},
"vehicle_skills": {
"allOf": [
"777"
],
"oneOf": [],
"noneOf": []
},
"compatibility": null,
"route_id": null,
"activities": [],
"consignment_id": "2a08cd97-eac7-4d61-844e-df769046644a",
"tasks": [
"e8baf13a-9245-4bc6-9ee6-9cce9ccf74d6"
],
"created_at": "2025-09-22 06:44:17.003989+00",
"modified_at": null,
"deleted_at": null,
"created_by": "e381e243-35cf-4516-95ff-46bf0dcd0be2",
"modified_by": null,
"deleted_by": null,
"tags": []
},
"related": {
"locations": {
"f9247b22-6af1-4aee-9c4e-592c39d44339": {
"id": "f9247b22-6af1-4aee-9c4e-592c39d44339",
"created_at": "2024-12-10 13:57:20.241575+00",
"modified_at": "2025-09-22 06:44:16.735626+00",
"created_by": "e381e243-35cf-4516-95ff-46bf0dcd0be2",
"modified_by": null,
"address_hash": "8f90f34b6819129281d5ce58859ab18073f27314f9f3ef8cd1f85ba167e0c31a",
"name": "Frognerparken",
"email": null,
"phone_number": null,
"street_address": "Kirkeveien",
"zip_code": "0268",
"country_code": "no",
"coordinates": {
"lat": 59.926585,
"lon": 10.704113
},
"city": "OSLO"
}
},
"comments": {},
"order_actions": {},
"users": {},
"routes": {},
"activities": {},
"service_actors": {},
"consignments": {
"2a08cd97-eac7-4d61-844e-df769046644a": {
"tracking_number": "70000000000000001",
"barcode_linear": "70000000000000001",
"barcode_2d": "70000000000000001",
"cargo": [
{
"contents": [],
"weight": {
"kg": 17
}
}
],
"id": "2a08cd97-eac7-4d61-844e-df769046644a",
"created_at": "2025-09-22 06:44:16.634983+00",
"modified_at": null,
"deleted_at": null,
"created_by": "e381e243-35cf-4516-95ff-46bf0dcd0be2",
"modified_by": null,
"deleted_by": null,
"owners": [
"00000000-0000-0000-0000-00000000000a",
"2d01172c-0d20-4830-b132-17773013e678",
"9d23417f-35a6-4f63-bbe5-1f80d06bb6da"
],
"tags": [],
"attributes": {},
"sender": {},
"recipient": {},
"carrier": {},
"delivery": {}
}
},
"tasks": {
"e8baf13a-9245-4bc6-9ee6-9cce9ccf74d6": {
"order_id": "559ade03-cb22-41b9-8987-567c192d9d08",
"type": "delivery",
"type_alias": null,
"id": "e8baf13a-9245-4bc6-9ee6-9cce9ccf74d6",
"created_at": "2025-09-22 06:44:17.003989+00",
"modified_at": null,
"deleted_at": null,
"created_by": "e381e243-35cf-4516-95ff-46bf0dcd0be2",
"modified_by": null,
"deleted_by": null,
"owners": [
"00000000-0000-0000-0000-00000000000a",
"2d01172c-0d20-4830-b132-17773013e678",
"9d23417f-35a6-4f63-bbe5-1f80d06bb6da"
],
"tags": [],
"attributes": {},
"places": [
{
"location_id": "f9247b22-6af1-4aee-9c4e-592c39d44339",
"duration": 7,
"time_windows": [
{
"start": "2025-09-25T09:00:00.000Z",
"end": "2025-09-25T11:00:00.000Z"
}
]
}
],
"amounts": {
"kg": 17
}
}
},
"logs": {}
}
}