action posthog_messaging_preferences_opt_outs_retrieve { label: "List recipients opted out of a message category" description: "Get opt-outs filtered by category or overall opt-outs if no category specified" provider: posthog method: GET path: "/api/projects/{project_id}/messaging_preferences/opt_outs/" encoding: json input: { type: "object" properties: { category_key: { type: "string" } page: { type: "integer" } page_size: { type: "integer" } } additionalProperties: false } output: { type: "object" description: "OpenAPI shape for the paginated opt-outs response, so the generated clients get the\n{count, next, previous, results} envelope instead of an untyped object." required: ["count", "next", "previous", "results"] properties: { count: { type: "integer" description: "Total number of opted-out recipients for the category." } next: { type: ["string", "null"] format: "uri" description: "URL for the next page, or null on the last page." } previous: { type: ["string", "null"] format: "uri" description: "URL for the previous page, or null on the first page." } results: { type: "array" items: { type: "object" required: ["id", "identifier", "preferences", "updated_at"] properties: { id: { type: "string" format: "uuid" description: "Server-assigned UUID for this recipient's preference record." } identifier: { type: "string" description: "The recipient identifier (e.g. email address)." } preferences: { description: "Map of category ID to preference status (`OPTED_IN`, `OPTED_OUT` or `NO_PREFERENCE`). The reserved `$all` key covers every marketing message." type: "object" } updated_at: { type: "string" format: "date-time" description: "When the preference was last updated." } } } } } } }