How OPS25 fits together
The pieces you can integrate with, and the one concept everything hangs off.
Organisations
Every account in OPS25 belongs to one or more organisations. An organisation is a waste business: their bins, their service areas, their drivers, their customers. All data is scoped to a single organisation. Public booking routes name it in the URL with its booking slug, the same word that appears in its booking page address.
https://book.ops25.com/harbour
^^^^^^^ the slug
The public booking routes name the organisation by its slug. The key-authenticated API does not
need it: an API key belongs to one organisation, and GET /api/v1/organisation returns its public
id (org_a1b2c3d4e5f6a7b8), which webhook payloads also carry.
The surfaces
| Surface | What it is | Integrate by |
|---|---|---|
| Booking page | The customer-facing flow that turns an enquiry into a confirmed order | Embedding it or linking to it |
| Public catalogue | Branding, areas, products, variants, add-ons and booking rules for one organisation | GET /catalog |
| API | Orders and jobs for one organisation, read and created from your server | API keys |
| Webhooks | Order and job events pushed to your server as they happen | Webhooks |
| Office workspace | Where the organisation runs dispatch, jobs and invoicing | Not publicly integrable |
| Driver app | What crews use on the road | Not publicly integrable |
Environments
There is one production environment. There is no sandbox yet — if you are building something that creates real orders, ask us to set up a test organisation rather than booking against a live organisation.
Running the monorepo locally, the API is at http://localhost:4400 and the booking app at
http://localhost:4420.
A note on stability
Everything documented here is declared in a manifest in the codebase, and a test asserts that each
documented route still exists. If a page says an endpoint is stable, breaking it requires a
deprecation window and a changelog entry. Endpoints not listed on this hub
carry no promise at all, however reachable they look.