Skip to main content
Pure Python, no third-party dependencies, Python 3.9+. Uses urllib from the standard library, so there is nothing to compile.

Install

Initialize

The key is sent as the x-api-key header on every request. There is no header parameter, by design.

Make a request

Resource methods are named after the route. Read operations that take filters pass them as a single query dict:
res.data is the endpoint’s response model — a generated dataclass, so fields are attributes rather than string keys:
Method names follow the route segments as generated, including the ones that read as verbs and methods together — idReactionPOST, engagementSettingsPUT. The API reference lists every operation under its route.

Write operations

Only mainTitle, content and category are required to create; author defaults to the authenticated user. update takes the whole document in its body, so id is a field of that body rather than a separate argument. The document comes back under a key of its own, so a single entity is res.data.article / res.data.author / res.data.form, never the model directly.

Error handling

By default a failed call comes back as a return value:
To raise instead, opt in at construction:
throw_on_error=True raises ApiError on any non-2xx response. Leaving it off and inspecting res.ok is the safer default for batch work.

Timeouts

timeout_ms applies to every request. There is no separate connect/read split, and no per-request override — set it on the client:

Escaping the resource wrapper

cms.raw is the underlying client, so an endpoint the resources do not cover is still reachable. request returns the decoded envelope as-is; request_typed hydrates data into the model you name:

Resources

article, author, category, subcategory, form, formSubmission, language, report, ai, raw.
The client also exposes these as cms.raw.<name> (plural: articles, authors, categories, subcategories, forms, form_submissions, languages, reports, ai). Use the CMS facade unless you need a method the facade does not wrap.

All operations

Browse the API reference for the full endpoint list.