Pages
Create a page
POST
tenantKeybearerAuthheader
X-Tenant-Key<token>The public store key (pk_live_…). Required on every call.
header
AuthorizationBearer <token>A customer token from POST /v1/auth/login, or a merchant API key, on routes that need one.
X-Client-IP?stringOptional. IP address of the shopper (one IPv4/IPv6, no port, no list). Honoured only together with a valid X-Tenant-Secret; ignored otherwise. Used for rate limits and recorded with form submissions.
X-Tenant-Secret?stringOptional here. Server secret of the store: server-to-server only, never from a browser. Enables X-Client-IP.
application/json- body
handle*stringMatch
^[a-z0-9\-]+$Length
length <= 64slug*stringMatch
^[a-z0-9]+(?:-[a-z0-9]+)*$Length
length <= 191title*stringLength
length <= 255kind?stringValue in
"page""post"excerpt?|Length
length <= 500seo?note?|Length
length <= 500blocks?array<string>Success.
application/json- response
data*curl -X POST 'https://api.elaraone.app/api/v1/merchant/pages' \ -H 'X-Tenant-Key: pk_live_…' \ -H 'X-Tenant-Secret: your-server-secret' \ -H 'Content-Type: application/json' \ -d '{ "handle": "string", "slug": "string", "title": "string"}'Example Response
{ "data": { "id": 0, "handle": "string", "slug": "string", "title": "string", "kind": "string", "excerpt": "string", "status": "string", "seo": {}, "published_at": "string", "current_revision": [ null ], "published_revision": [ null ], "revisions": [ { "id": 0, "number": 0, "note": "string", "author": { "type": "string", "id": 0 }, "created_at": "string", "blocks": [ { "type": "string", "data": { "property1": null, "property2": null } } ] } ], "created_at": "string", "updated_at": "string" }}