Get started

Quickstart

Make your first authenticated request in a few minutes. You will need a tenant and a pair of app credentials.

1. Get your credentials

App credentials are created in the ReadyCMS admin under Settings → API Access. You need three things:

Watch out
Treat app_secret like a password. Send it in the Authorization header - never in a URL, where it can leak into logs and caches.

2. Make your first request

List the first five products in your catalog. Substitute your <tenant>, <app_id>, and <app_secret>:

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

The same call in JavaScript:

const res = await fetch(
  "https://api.readycms.io/products/?namespace=<tenant>&limit=5",
  { headers: { Authorization: "Bearer <app_id>:<app_secret>" } }
);
const json = await res.json();
console.log(json.data);

And in PHP:

$ch = curl_init("https://api.readycms.io/products/?namespace=<tenant>&limit=5");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <app_id>:<app_secret>"]);
$json = json_decode(curl_exec($ch), true);

3. Read the response

A successful response is a JSON envelope. The data holds your result, and every response carries a request_id:

{
  "success": true,
  "request_id": "9f2c8b1e…",
  "data": [
    { "id": 123, "title": "Sample product", "price": 19.90 }
  ]
}
Tip
Log the request_id from every response. If you ever need support, quoting it lets us trace your exact request.

4. Try a write

Writes use the same shape with a normal HTTP method. Always include an explicit namespace on writes. This creates a product with a plain POST:

curl -s -X POST "https://api.readycms.io/products/?namespace=<tenant>&lang=en" \
  -H "Authorization: Bearer <app_id>:<app_secret>" \
  -H "Content-Type: application/json" \
  -d '{ "title": "My first API product", "price": 29.90 }'
Watch out
This is a real write to your tenant - it creates data. Use a test tenant while you are exploring.

Testing your requests

The cURL / JavaScript / PHP samples run from anywhere - copy one, drop in your credentials, and run it in your terminal or app. In the API Reference, each endpoint also has a live Try it console.

Note
The console makes real calls from your browser, so live in-browser requests only work when the docs origin is on the API’s CORS allowlist. If it is not, the console hands you the exact cURL to run in your terminal - which always works.

Next steps