HttpClient, so it fits
into an existing DI container, Polly pipeline, or test harness without extra work.
Install
Initialize
CMSOptions is init-only, so it can only be set at construction. The key is sent as
the x-api-key header on every request; there is no header option, by design.
Inject your own HttpClient
Make a request
Read operations that take filters take a single dictionary:res.Data is a JsonElement, not a POCO. Call .GetProperty("title").GetString()
to read a field, or res.Data.Deserialize<T>() to bind a whole object.Write operations
Error handling
Errors are return values, not exceptions, unless you opt in:ApiError instead:
Cancellation
Escaping the resource wrapper
cms.Raw is the underlying HTTP client. To add headers per request, do it through a
DelegatingHandler you control rather than per call:
Resources
Article, Author, Category, Subcategory, Form, FormSubmission, Language,
Tag, Report, AI, AIConversation, Raw.
All operations
Browse the API reference for the full endpoint list.

