API reference
Reservations
A spot held for one vehicle in one staging area. It is held until the vehicle arrives or the hold runs out; then the vehicle checks in, and later checks out.
A reservation moves through these statuses, and never back: held to checked_in to checked_out. A held reservation can instead end as expired (the vehicle did not arrive in time) or cancelled (by you, or by the staging area closing).
The reservation object
Unique, starting res_.
Your own name for the vehicle. We only use it to tell your vehicles apart.
The staging area's id.
The spot held, as it is marked in the staging area.
locationpointrequiredWhere the spot is.
Where the spot is.
Latitude, WGS 84.
Longitude, WGS 84.
held: a spot is kept for the vehicle. checked_in: the vehicle is in its spot. checked_out: it has left. expired: it did not arrive before held_until. cancelled: given up before it arrived.
One of held, checked_in, checked_out, expired, cancelled.
When you said the vehicle would arrive.
When the hold runs out: arrive_by plus the staging area's hold_minutes.
Set at check-in: when the vehicle has to leave. Null while it may stay as long as it likes. Moved to the moment it closes if the staging area closes suddenly.
Why it was cancelled: you asked, or the staging area closed.
One of requested, staging_area_closed.
Your own key-value pairs: up to 20, keys up to 40 characters, values up to 500. We store them and return them; we never read them.
{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "held", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:07:00Z", "checked_in_at": null, "leave_by": null, "checked_out_at": null, "cancellation_reason": null, "metadata": {}, "created_at": "2026-11-02T13:51:12Z"}Reserve a spot
POST/v1/reservations
Holds a spot in the staging area you name, for one vehicle, until held_until. The vehicle should check in before then, or the hold runs out and the spot goes to whoever is next.
If the staging area is full or closed, nothing is held and the error offers others nearby with room. A planned closure counts: a spot in one of its closures is not held for a time inside it. Send an Idempotency-Key, so a request sent twice reserves once.
Body
Your own name for the vehicle, up to 64 characters.
The staging area's id.
When the vehicle will arrive.
Your own key-value pairs: up to 20, keys up to 40 characters, values up to 500.
The vehicle's length in metres. Checked against the staging area's max_vehicle_length_m, if it has one.
Headers
A unique key, such as a UUID, for this request. Send the same key when you retry: the request takes effect once, and the retry gets the first answer back. Kept for 24 hours. The same key with a different body is refused with idempotency_key_reused (422).
Responses
The reservation, held.
no_spot_availableThe staging area is full at that time. alternatives lists others nearby with room.
staging_area_closedThe staging area is closed at that time. alternatives lists others nearby with room.
not_foundNo staging area with this id is open to your fleet.
vehicle_already_reservedThe vehicle already has a reservation that is held or checked in.
arrive_by_out_of_rangearrive_by is in the past, or more than the staging area's book_ahead_minutes ahead.
vehicle_too_largevehicle_length_m is longer than the staging area's max_vehicle_length_m.
POST https://api.golanoo.com/v1/reservations
curl -X POST https://api.golanoo.com/v1/reservations \ -H "Authorization: Bearer lk_test_..." \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "arrive_by": "2026-11-02T14:02:00Z" }'{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "held", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:07:00Z", "checked_in_at": null, "leave_by": null, "checked_out_at": null, "cancellation_reason": null, "metadata": {}, "created_at": "2026-11-02T13:51:12Z"}List reservations
GET/v1/reservations
Your fleet's reservations, newest first. You only ever see your own.
Parameters
Only reservations with this status.
Only this vehicle's reservations.
Only reservations in this staging area.
How many to return, 1 to 100. Defaults to 20.
For the next page, the id of the last item on this one.
Responses
A page of reservations.
GET https://api.golanoo.com/v1/reservations
curl https://api.golanoo.com/v1/reservations \ -H "Authorization: Bearer lk_test_..."{ "object": "list", "data": [ { "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "held", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:02:00Z", "checked_in_at": "2026-11-02T14:02:00Z", "leave_by": "2026-11-02T14:02:00Z", "checked_out_at": "2026-11-02T14:02:00Z", "cancellation_reason": "requested", "metadata": {}, "created_at": "2026-11-02T14:02:00Z" } ], "has_more": true}Get a reservation
GET/v1/reservations/{id}
Parameters
The reservation's id.
Responses
The reservation.
not_foundNo reservation with this id belongs to your fleet.
GET https://api.golanoo.com/v1/reservations/{id}
curl https://api.golanoo.com/v1/reservations/res_8f2c41 \ -H "Authorization: Bearer lk_test_..."{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "held", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:02:00Z", "checked_in_at": "2026-11-02T14:02:00Z", "leave_by": "2026-11-02T14:02:00Z", "checked_out_at": "2026-11-02T14:02:00Z", "cancellation_reason": "requested", "metadata": {}, "created_at": "2026-11-02T14:02:00Z"}Change the arrival time
PATCH/v1/reservations/{id}
For a vehicle running late or early. Only a held reservation can be changed. The spot stays the same if it is free at the new time; otherwise nothing changes and the error says so.
Parameters
The reservation's id.
Body
The new arrival time.
Headers
A unique key, such as a UUID, for this request. Send the same key when you retry: the request takes effect once, and the retry gets the first answer back. Kept for 24 hours. The same key with a different body is refused with idempotency_key_reused (422).
Responses
The reservation, with its new arrive_by and held_until.
not_foundNo reservation with this id belongs to your fleet.
no_spot_availableNo spot is free at the new time. The reservation is unchanged; alternatives lists others nearby with room.
staging_area_closedThe staging area is closed at the new time. The reservation is unchanged; alternatives lists others nearby with room.
reservation_not_heldThe reservation is no longer held.
arrive_by_out_of_rangearrive_by is in the past, or more than the staging area's book_ahead_minutes ahead.
PATCH https://api.golanoo.com/v1/reservations/{id}
curl -X PATCH https://api.golanoo.com/v1/reservations/res_8f2c41 \ -H "Authorization: Bearer lk_test_..." \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "arrive_by": "2026-11-02T14:10:00Z" }'{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "held", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:02:00Z", "checked_in_at": "2026-11-02T14:02:00Z", "leave_by": "2026-11-02T14:02:00Z", "checked_out_at": "2026-11-02T14:02:00Z", "cancellation_reason": "requested", "metadata": {}, "created_at": "2026-11-02T14:02:00Z"}Check in
POST/v1/reservations/{id}/check_in
The vehicle is in its spot. It can check in any time while the reservation is held, early too. From now it may stay until leave_by: the staging area's max_stay_minutes from now, or the start of a planned closure of its spot, if that comes first. With no limit and no closure planned, leave_by is null and the vehicle may stay as long as it likes.
Parameters
The reservation's id.
Headers
A unique key, such as a UUID, for this request. Send the same key when you retry: the request takes effect once, and the retry gets the first answer back. Kept for 24 hours. The same key with a different body is refused with idempotency_key_reused (422).
Responses
The reservation, checked in.
not_foundNo reservation with this id belongs to your fleet.
hold_expiredThe hold ran out before the vehicle checked in: the reservation is expired. Reserve again.
reservation_not_heldThe reservation is already checked in, checked out or cancelled.
POST https://api.golanoo.com/v1/reservations/{id}/check_in
curl -X POST https://api.golanoo.com/v1/reservations/res_8f2c41/check_in \ -H "Authorization: Bearer lk_test_..." \ -H "Idempotency-Key: $(uuidgen)"{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "checked_in", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:07:00Z", "checked_in_at": "2026-11-02T14:01:37Z", "leave_by": "2026-11-02T14:46:37Z", "checked_out_at": null, "cancellation_reason": null, "metadata": {}, "created_at": "2026-11-02T13:51:12Z"}Check out
POST/v1/reservations/{id}/check_out
The vehicle has left its spot. The spot frees up for whoever is next. A vehicle past leave_by checks out the same way.
Parameters
The reservation's id.
Headers
A unique key, such as a UUID, for this request. Send the same key when you retry: the request takes effect once, and the retry gets the first answer back. Kept for 24 hours. The same key with a different body is refused with idempotency_key_reused (422).
Responses
The reservation, checked out.
not_foundNo reservation with this id belongs to your fleet.
reservation_not_checked_inThe reservation is not checked in: it is still held (cancel it instead), or it has already ended.
POST https://api.golanoo.com/v1/reservations/{id}/check_out
curl -X POST https://api.golanoo.com/v1/reservations/res_8f2c41/check_out \ -H "Authorization: Bearer lk_test_..." \ -H "Idempotency-Key: $(uuidgen)"{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "checked_out", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:07:00Z", "checked_in_at": "2026-11-02T14:01:37Z", "leave_by": "2026-11-02T14:46:37Z", "checked_out_at": "2026-11-02T14:23:05Z", "cancellation_reason": null, "metadata": {}, "created_at": "2026-11-02T13:51:12Z"}Cancel a reservation
POST/v1/reservations/{id}/cancel
Gives up a held spot before the vehicle arrives.
Parameters
The reservation's id.
Headers
A unique key, such as a UUID, for this request. Send the same key when you retry: the request takes effect once, and the retry gets the first answer back. Kept for 24 hours. The same key with a different body is refused with idempotency_key_reused (422).
Responses
The reservation, cancelled.
not_foundNo reservation with this id belongs to your fleet.
reservation_not_heldOnly a held reservation can be cancelled. A checked-in vehicle checks out.
POST https://api.golanoo.com/v1/reservations/{id}/cancel
curl -X POST https://api.golanoo.com/v1/reservations/res_8f2c41/cancel \ -H "Authorization: Bearer lk_test_..." \ -H "Idempotency-Key: $(uuidgen)"{ "id": "res_8f2c41", "object": "reservation", "vehicle_id": "rt-0417", "staging_area": "sa_norreport", "spot": "2", "location": { "lat": 55.6838, "lng": 12.5721 }, "status": "cancelled", "arrive_by": "2026-11-02T14:02:00Z", "held_until": "2026-11-02T14:07:00Z", "checked_in_at": null, "leave_by": null, "checked_out_at": null, "cancellation_reason": "requested", "metadata": {}, "created_at": "2026-11-02T13:51:12Z"}