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

Read operations that take filters take a single dictionary:
Single-resource and search operations use the same shape:

Write operations

Error handling

Errors are return values, not exceptions, unless you opt in:
To raise a typed ApiError instead:
throw_on_error=True raises 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 HTTP client:

Resources

article, author, category, subcategory, form, form_submission, language, tags, report, ai, ai_conversation, raw.

All operations

Browse the API reference for the full endpoint list.