Response objects
Use the definition linked by each operation: different operations can return different fields for the same business object. Examples are excerpts, so omission from a sample does not mean a field is absent from the actual response. Monetary units, timestamp timezone and unlisted business enums are unspecified unless the definition says otherwise.
Access decision
Use allow to decide whether to serve the requested content. HTTP 200 means the decision was returned; it can still deny access. These fields are at the top level, with no items wrapper.
| Field path | Type / presence | Meaning and conditions |
|---|---|---|
allow | boolean; decision | Permission for this request. Handle both true and false. |
is_payable_content | boolean; decision | Whether the content’s stored price is greater than zero. It does not establish this user’s access or the amount to charge. |
access_level | string or null; decision | Stored content access-level label. Allowed labels and semantics are not enumerated here; use allow for the decision. |
reason | string or null; decision | Rule explaining allow/deny. Examples include full_access, content_viewed, user_access and guest_access; this is not a closed enum. |
message | string or null; decision | Human explanation of the chosen rule. Do not depend on one exact message for application logic. |
signature | string; decision | Server HMAC-SHA256 digest bound to content and resource keys. Not a token or resource secret; no client verification protocol is defined here. |
session_signature | string; decision | Server HMAC-SHA256 digest also incorporating resolved session token when present. Not an authentication credential to reuse. |
req_guid | string; decision | Request reference for discussing this result with support. |
content | object; decision | Identifies the requested content; not its full metadata. |
content.key | string | Resource-scoped content key, also used in the request path. |
content.title | string or null | Stored display title. |
content.link | string or null | Stored content URL/link; permission does not itself deliver that URL’s content. |
guest_access | false or object; decision | Applied guest-plan information when available. False means no guest-plan details were attached, not necessarily that access was denied. |
guest_access.plan_id | integer; object branch | Plan used for guest access. |
guest_access.ip_access | false or object; object branch | Optional configured IP-access information; details below. |
data | array; only when return_content is true | One richer content object, using content with term arrays. Not a second access decision. |
When ip_access is an object, it contains source_ip (string/null request IP), granted_access_plan and granted_access_subscription (id/title/slug objects or empty arrays), granted_access_user_id (integer/null configured user) and granted_access_ip_rule (configuration-defined rule array or null). These describe the selected IP rule; do not infer a universal IP policy or authentication guarantee.
Content with term arrays
Used by linked-user content lists and access decisions’ optional data. Public metadata detail has a different projection; its operation explains that distinction.
| Field path | Type / presence | Meaning and conditions |
|---|---|---|
id | integer | Content record ID; path lookup uses key, not this ID. |
key | string | Content identifier within a resource. |
title, description | string or null | Display text; entities are decoded in this projection. |
price | integer | Stored price normalized to integer when fetched or saved, including newly registered content. Sync creation does not assign a price; do not infer its numeric/database default from type normalization. Currency units are unspecified. |
currency | string | Stored currency code; no conversion is performed by this read. |
extra | decoded value; empty object fallback | Content-defined JSON decoded into an array-object when fetched or saved. Empty input becomes an empty object. No closed property schema; malformed stored JSON has no usable-schema guarantee. |
link | string or null | Stored content link. |
created_at, updated_at | timestamp strings | Record creation/update times. Format examples use YYYY-MM-DD HH:MM:SS; timezone unspecified. |
published_at | timestamp string or null | Stored publication time, when defined; not an access grant. |
images | array | Image records, described below. Empty when none are attached. |
is_payable_content | boolean | True when stored price exceeds zero. |
is_applied_vat | stored flag / nullable | VAT applicability value. This serializer does not normalize its source annotation into a guaranteed boolean. |
vat_percent | number or null | Stored VAT percentage; this read does not calculate taxes. |
content_type | string; only when defined | Content-type key. |
taxonomies | array | Taxonomy groups; empty if none. |
taxonomies[].key, .title | string / string or null | Classification identifier/display title. |
taxonomies[].terms | array | Term objects with key (string) and title (string/null). |
Image objects contain url (string/null stored image address), width and height (integer/null stored dimensions; pixel units are not explicitly declared by this projection), and created_at (creation timestamp string, timezone unspecified). No image title/hash is included in this projection.
Public content detail
Returned under item. This smaller projection differs from content with term arrays: no description, extra, images or VAT fields.
| Field | Type / presence | Meaning and conditions |
|---|---|---|
id | integer (model annotation) | Content record identifier. |
key, title, link | string / nullable stored text | Resource-scoped identifier, display title and stored link. |
price | integer | Stored price normalized when fetched or saved; currency units unspecified. |
currency | string | Stored currency code. |
created_at, updated_at | timestamp strings | Record times. |
published_at | timestamp string / null | Publication time, if set. |
is_payable_content | boolean | Stored price exceeds zero; not a user permission. |
content_type | string / null | Content-type key, or null when undefined. |
taxonomies | map / empty array | Keyed by taxonomy key; empty [] if none. Each group has key, title and terms. |
taxonomies.<key>.key, .title | string / nullable text | Taxonomy identifier and display name. |
taxonomies.<key>.terms | object / empty array | A single term object with key and title, not an array of terms. With multiple linked terms, only the last assigned term is represented; do not use this projection to enumerate all terms. |
Access details
Explains limits; it is not an allow/deny decision. Both details calls use this shape, with the per-content addition below.
| Field | Type / presence | Meaning and conditions |
|---|---|---|
guest_access | false / object | Same guest-plan/IP projection as access decision. |
plan_title | string | Selected plan display name; empty string without a title. |
is_full_access | boolean | Selected plan grants full access; full-access results can have empty limit groups. |
content_types, content_terms | object | Limit groups with items, accessLimit, usedLimitInPeriod, accessLimitPeriod and exclude. |
content_types.items | array | Type rules, each with key (string), accessLimit (number), usedLimitInPeriod (number), accessLimitPeriod (configured value / nullable) and exclude (boolean). |
content_terms.items | array | Taxonomy rules with the same rule fields plus title (string) and terms (array of term-key strings). |
accessLimit | number; each group/rule | Configured allowed count. Group uses the last included rule’s limit, not the sum of limits. |
usedLimitInPeriod | number; each group/rule | Count already used in the applicable period; group sums included usage. |
accessLimitPeriod | configured value / nullable; each group/rule | Configured counting-period label; empty for an empty group, no complete enum here. |
exclude | boolean; each group/rule | Configured exclusion flag; group reflects the last included rule. Empty group false. |
is_content_viewed | boolean; per-content only | Whether this content has a prior allowed-view record for this identity. Absent from resource-wide details; does not record a new view. |