action posthog_messaging_suppressions_suppressions_retrieve { label: "List suppressed email addresses for the team" description: "List suppressed recipients for the team, most recently updated first." provider: posthog method: GET path: "/api/projects/{project_id}/messaging_suppressions/suppressions/" encoding: json input: { type: "object" properties: { page: { type: "integer" } page_size: { type: "integer" } } additionalProperties: false } output: { type: "object" description: "OpenAPI shape for the paginated suppressions response. Declared so drf-spectacular emits\nthe {count, next, previous, results} envelope on the generated client, rather than a bare\narray — which the frontend actually receives at runtime." required: ["count", "next", "previous", "results"] properties: { count: { type: "integer" description: "Total number of suppressed recipients for the team." } 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: ["created_at", "id", "identifier", "last_bounce_at", "last_bounce_diagnostic", "reason", "source", "suppressed", "suppressed_at", "transient_bounce_count", "updated_at"] properties: { created_at: { type: "string" format: "date-time" description: "When the row was first created (first bounce or manual add)." } id: { type: "string" format: "uuid" description: "Server-assigned UUID for this suppression entry." } identifier: { type: "string" description: "Normalized recipient email address. Suppression is keyed on this value, per team." } last_bounce_at: { type: ["string", "null"] format: "date-time" description: "Timestamp of the most recent bounce, if any." } last_bounce_diagnostic: { type: ["string", "null"] description: "SMTP diagnostic string from the most recent bounce (e.g. '550 5.1.1 user unknown'), kept for visibility." } reason: { type: ["string", "null"] description: "Human-readable reason for the suppression (e.g. 'Auto-suppressed after 5 consecutive soft bounces')." } source: { description: "How the entry landed on the list: `BOUNCE` for automatic (bounce-driven), `MANUAL` for user-added via the UI/API.\n\n* `BOUNCE` - Bounce\n* `MANUAL` - Manual" type: "object" } suppressed: { type: "boolean" description: "Whether the address is actively suppressed. A BOUNCE row can exist while still only counting bounces (suppressed=false) before it crosses the threshold." } suppressed_at: { type: ["string", "null"] format: "date-time" description: "Timestamp when the address was first suppressed." } transient_bounce_count: { type: "integer" description: "Rolling count of consecutive soft bounces with no successful delivery in between. Reset to 0 on any successful delivery. Ignored for MANUAL entries." } updated_at: { type: "string" format: "date-time" description: "When the row was last touched by any write." } } } } } } }