GET /suppressions/{id}
One suppression, by its id or by the address. A platform row is included and marked platform.
Parameters
idpath · string · required
Responses
200— Success400— The request is malformed or a field failed validation. Codes: validation_error, invalid_idempotency_key, invalid_cursor, plan_not_purchasable, stripe_signature_invalid, support_upload_rejected, sign_in_check_required.401— No usable credential was sent. Codes: missing_api_key, session_required, mfa_required.403— The credential may not do this, or the account or key is stopped. Codes: sending_domain_blocked, young_domain_held, domain_not_verified, onboarding_recipient_not_a_member, onboarding_sender_unavailable, account_suspended, account_sandboxed, human_action_required, csrf_origin_rejected, charge_not_this_account, invalid_api_key, restricted_api_key, insufficient_role, invite_email_mismatch, domain_scope_violation, dedicated_ip_assigned_by_us, approval_required, trust_paused, kill_switch_active.404— Nothing with this id exists on the account. Codes: billing_customer_missing, not_found, session_expired, support_ticket_not_found.409— The request conflicts with the current state. Codes: domain_already_exists, template_name_taken, template_in_use, segment_in_use, domain_verified_elsewhere, return_path_subdomain_in_use, overage_not_on_plan, term_not_on_sale, subscription_active, already_in_account, idempotency_in_flight, idempotency_payload_mismatch, approval_expired, support_closed, support_reopen_expired, support_merge_conflict.422— A field is well formed but was refused. Codes: missing_required_field, invalid_from_address, invalid_parameter, invalid_attachment, invalid_region, tracking_subdomain_unverified, tracking_subdomain_cannot_be_removed, domain_field_immutable, open_tracking_on_transactional, header_replaced, domain_blocklisted, mailbox_provider_domain, onboarding_shape_refused, dkim_key_mismatch, domain_check_window_expired, spf_conflict, spf_lookup_limit, review_sandbox_recipient_only, suppressed_recipient, content_refused, recipient_blocklisted, last_owner_required, seat_limit_reached, invite_not_valid, key_budget_exceeds_plan, domain_limit_reached, webhook_endpoint_limit_reached.429— A rate, quota or ramp ceiling was reached. Codes: onboarding_daily_cap_reached, trust_throttled, invite_limit_reached, rate_ceiling_exceeded, daily_quota_exceeded, monthly_quota_exceeded, rate_limit_exceeded, support_rate_limited.500— Something failed on our side. Codes: internal_server_error.503— A dependency is unavailable for a moment. Codes: dns_unreachable, service_unavailable, billing_not_configured, rate_limiter_unavailable, sending_paused_everywhere.
Response headers
ratelimit-limit— Messages this API key may spend in one 60-second window.ratelimit-remaining— Messages left in the current window.ratelimit-reset— Seconds until the current window resets and the budget refills.
200 body
| Field | Type | Required | Notes |
|---|---|---|---|
| created_at | string | yes | |
| string | yes | ||
| id | string | yes | |
| level | "address" | "domain" | "global" | yes | |
| origin | string | yes | |
| platform | boolean | yes | |
| source_id | string | null | yes | |
| stream | "transactional" | "marketing" | null | yes |
Errors
The codes this operation can answer with, and what to do about each. Every one arrives with its code, message, fix and docs_url.
internal_server_error(500) — Unexpected error. Fix: Retry ONCE after a short pause, with the same Idempotency-Key so the retry cannot double-send. If it fails again, stop retrying and report the x-request-id from the response — that id is what identifies this exact failure in support.rate_limit_exceeded(429) — Too many requests. Fix: Back off and retry honoring the Retry-After header.validation_error(400) — Error in one or more fields. Fix: Correct the fields listed in the error details and retry the request.