Keystone Developers
Open Keystone
Guides

Conventions

Identifiers and versions

UUIDs everywhere, slugs for public URLs, and record versions for safe writes.

Ids

Every record has a UUID id. Businesses, locations, services, service items, packages, offers, team members, FAQs, job postings, contacts, conversations, posts, campaigns: all UUIDs, all stable for the life of the record.

Path parameters named business_id, service_id, and so on take these. The reference shows them as string (uuid).

Slugs

Public, URL-facing records (services, packages, blog posts) also carry a slug. The Public API offers by_slug lookups so a site can resolve a URL without knowing the id. Slugs are unique within a business and may be changed by the business; treat the id as the identity and the slug as a label.

Versions

Records that can be edited through the Edits API carry a version string. Send it back, or the expected values you read, when proposing a change; a write against a stale version is refused with 409 rather than silently overwriting. The MCP server does this for you when the model includes expected or version on a change item.

Time

Timestamps are ISO 8601 in UTC. Hours of operation and scheduling use the business's scheduling_timezone from its profile.