Core concepts

Tenancy & environments

ReadyCMS is multi-tenant: each request resolves a tenant to select the right data. You choose the tenant with the namespace parameter.

The namespace parameter

Send namespace=<tenantSlug> on every request. It selects which tenant's data you are reading or writing.

curl -s "https://api.readycms.io/products/?namespace=acme" \
  -H "Authorization: Bearer <app_id>:<app_secret>"

namespace is an alias for the internal sub_domain; you only ever need to send namespace.

Writes must send an explicit tenant

Watch out
For writes (POST, PUT, PATCH, DELETE) you must send an explicit namespace - a missing namespace on a write is rejected. This is the single most common integration mistake.

Reads are more forgiving, but the safe rule is simple: always send namespace, on every request.

Base URL

All requests go to a single production host: https://api.readycms.io. The api. host itself is not a tenant - that is why the tenant is carried in namespace rather than the hostname.

Environments

ReadyCMS supports non-production environments (dev, test, stage) internally. As an external integrator you work against the production host and select your tenant with namespace; environment routing is handled server-side and is not something you configure per request.