Skip to main content

Tours

Two read endpoints, both scoped to your client — they return tours across every organisation you own.

Authentication

Every request needs a bearer token from /auth/server/token. Send it as Authorization: Bearer <token>.

List tours​

GET /server/tours

Returns every tour for your client, newest first.

Query parameters​

ParameterTypeDescription
organisationIdstring (optional)Return only tours for this organisation. Omit to return all.

Example​

curl "https://api.noughtyreality.com/tours/v1/server/tours?organisationId=org_123" \
-H "Authorization: Bearer $TOKEN"
[
{
"id": "0191d8e0-7f3a-7c2b-9b1e-2f5a9c4d8e10",
"name": "3-bed flat, Shoreditch",
"thumbnailURL": "https://…",
"organisationId": "org_123",
"metadata": {}
}
]
FieldTypeDescription
idstringTour id (UUID).
namestringTour name.
thumbnailURLstring | nullPre-signed thumbnail URL, or null if the tour has no default scan.
organisationIdstringThe organisation the tour belongs to.
metadataobjectArbitrary key/value metadata attached to the tour.

Get a tour​

GET /server/tours/{id}

Returns one tour with its full floor → room → scan tree.

Example​

curl https://api.noughtyreality.com/tours/v1/server/tours/0191d8e0-7f3a-7c2b-9b1e-2f5a9c4d8e10 \
-H "Authorization: Bearer $TOKEN"
{
"id": "0191d8e0-7f3a-7c2b-9b1e-2f5a9c4d8e10",
"name": "3-bed flat, Shoreditch",
"description": null,
"defaultScanId": "0191d8e0-8a1b-7c2b-9b1e-2f5a9c4d8e11",
"thumbnailURL": "https://…",
"slug": null,
"organisationId": "org_123",
"metadata": {},
"floors": [
{
"id": "0191d8e0-9c2d-7c2b-9b1e-2f5a9c4d8e12",
"name": "Ground floor",
"number": 0,
"planURL": "https://…",
"rooms": [
{
"id": "0191d8e0-ad3e-7c2b-9b1e-2f5a9c4d8e13",
"localId": "kitchen-1",
"name": "Kitchen",
"type": "kitchen",
"date": "2026-01-01T00:00:00.000Z",
"scans": [
{
"id": "0191d8e0-be4f-7c2b-9b1e-2f5a9c4d8e14",
"status": "FINISHED",
"theta": 1.57,
"transform": [1, 0, 0, 0, 1, 0, 0, 0, 1],
"panoramaURL": "https://…",
"panoramaLowResURL": "https://…",
"thumbnailURL": "https://…",
"date": "2026-01-01T00:00:00.000Z"
}
]
}
]
}
]
}

Beyond the list fields, the single-tour response adds description, defaultScanId, slug, and the nested floors tree.

Asset URLs expire

Pre-signed URLs (thumbnailURL, planURL, panoramaURL, …) are time-limited — fetch them fresh from the API rather than storing them.

Errors​

StatusWhen
404 Tour not foundNo tour with that id belongs to your client.