DUMA/ API

Sync changes

Returns what changed since a moment, for mirroring content into a static site without a full rebuild: entries published or republished, and what stopped being delivered.

GEThttps://api.duma-business.com/v1/cms/delivery/sync

content:readPublishable or secret key

Responses carry a weak ETag; send it back as If-None-Match to get 304 Not Modified. Cache-Control: private, max-age=30, stale-while-revalidate=120.

Apply deletions first, then upsert entries; store nextSince and pass it as since next time. When hasMore is true, call again at once.

Both lists are oldest first. A deletion is an unpublished or deleted entry (kind: "entry") or a deleted asset (kind: "asset").

Entries are the published versions only, without media or references resolved.

An unparseable since is a 400.

Request example

Example request
curl -X GET "https://api.duma-business.com/v1/cms/delivery/sync" \
  -H "Authorization: Bearer dk_pub_…"

Query parameters

sincestring
An ISO 8601 timestamp — the nextSince from your last call. Omit it for everything published.
limitnumberDefault 100
Entries per call, 1–200.

Response

Response · 200
{
  "entries": [
    {
      "id": "4a8c2e6f-1b3d-4f5a-9c7e-2d4f6a8b0c1e",
      "type": "blog-post",
      "locale": "en",
      "slug": "autumn-menu-is-here",
      "createdAt": "2026-10-01T09:15:00.000Z",
      "updatedAt": "2026-10-20T14:02:11.000Z",
      "publishedAt": "2026-10-20T14:05:00.000Z",
      "firstPublishedAt": "2026-10-02T08:00:00.000Z",
      "fields": {
        "title": "Our autumn menu is here",
        "slug": "autumn-menu-is-here",
        "hero": {
          "id": "7d1f3b5a-9c2e-4a6b-8d0f-1e3a5c7b9d2f",
          "url": "https://api.duma-business.com/v1/cms/delivery/assets/7d1f3b5a-9c2e-4a6b-8d0f-1e3a5c7b9d2f/file/pumpkin-latte.jpg",
          "fileName": "pumpkin-latte.jpg",
          "mimeType": "image/jpeg",
          "sizeBytes": 412883,
          "width": 1600,
          "height": 1067,
          "title": "Pumpkin spice latte",
          "altText": "A pumpkin spice latte on an oak table",
          "focalPoint": {
            "x": 0.5,
            "y": 0.45
          },
          "renditions": [],
          "srcset": null
        },
        "body": "## Back for autumn\n\nPumpkin spice is back, alongside a new **maple pecan bun**."
      }
    }
  ],
  "deletions": [
    {
      "kind": "entry",
      "id": "9e1a3c5b-7d2f-4b6a-8c0e-2f4a6b8d0c1e",
      "type": "blog-post",
      "locale": "en",
      "deletedAt": "2026-10-21T09:00:00.000Z"
    }
  ],
  "nextSince": "2026-10-28T10:00:00.000Z",
  "hasMore": false
}