Skip to main content

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": {}
}
}