Queek docs
Merchant endpoint reference

Content

GET
/posts

Requires scope merchant-posts-read.

Lists the store’s posts.

Authorization

merchantKey
X-Client-Key<token>

The store's private API key (sk_live_…, sk_test_… on a dev store) from Dashboard → Settings → API keys. It is bound to one store and carries the scopes the merchant granted; each operation names the scope it needs. Server-side only — never ship it to a browser or an app bundle.

In: header

Query Parameters

limit?|
Range1 <= value <= 100
starting_after?string|null
type?|

Value in

  • "page"
  • "post"
  • "gallery"
  • null
status?|

Value in

  • "draft"
  • "published"
  • null

Header Parameters

X-Client-Key*string

A private API key (sk_live_…, sk_test_… on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or vendor_id is sent; its scopes decide which operations it may call. pk_ public keys never reach this API. Keep it on your server.

X-Request-Id?string

Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/posts?limit=2&status=published" \  -H "X-Client-Key: {{merchantKey}}"
{  "data": [    {      "id": "019a2d11-5a6b-7c7d-8e9f-0a1b2c3d4e01",      "parent_id": null,      "blog_category_ids": [],      "type": "post",      "template": null,      "slug": "how-we-smoke-our-party-jollof",      "title": "How we smoke our party jollof",      "content": [        {          "type": "content",          "data": {            "markdown": "Every tray starts over firewood at 5am in our Lekki kitchen."          }        }      ],      "excerpt": "Firewood, patience and a lot of tomatoes.",      "cover_image_url": "https://media.usequeek.com/uploads/stores/1095/posts/party-jollof.jpg",      "status": "published",      "tags": [        "jollof",        "kitchen"      ],      "seo": {        "title": "How we smoke our party jollof | Adeyemi Foods",        "description": "Inside the Adeyemi Foods kitchen."      },      "position": 1,      "is_home": false,      "chrome": "full",      "show_page_title": true,      "published_at": "2026-09-12T08:00:00+01:00",      "created_at": "2026-09-10T16:20:00+01:00",      "updated_at": "2026-09-12T08:00:00+01:00"    },    {      "id": "019a2d11-5a6b-7c7d-8e9f-0a1b2c3d4e02",      "parent_id": null,      "blog_category_ids": [],      "type": "page",      "template": null,      "slug": "catering",      "title": "Catering",      "content": [        {          "type": "content",          "data": {            "markdown": "We cater events of 50 to 2,000 guests across Lagos."          }        }      ],      "excerpt": "Owambe, office and wedding catering across Lagos.",      "cover_image_url": "https://media.usequeek.com/uploads/stores/1095/posts/catering.jpg",      "status": "published",      "tags": [],      "seo": {        "title": "Event catering in Lagos | Adeyemi Foods",        "description": "Owambe, office and wedding catering for 50 to 2,000 guests."      },      "position": 2,      "is_home": false,      "chrome": "full",      "show_page_title": true,      "published_at": "2026-07-20T10:00:00+01:00",      "created_at": "2026-07-19T18:00:00+01:00",      "updated_at": "2026-08-30T12:10:00+01:00"    }  ],  "has_more": true,  "next_cursor": "eyJpZCI6IjAxOWEyZDExLTVhNmItN2M3ZC04ZTlmLTBhMWIyYzNkNGUwMiIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0"}