Skip to content

feat: add App API deliverability methods — ESP suppressions & reporting webhooks#243

Merged
mike-engel merged 2 commits into
cdp-6275from
cdp-6276
Jul 15, 2026
Merged

feat: add App API deliverability methods — ESP suppressions & reporting webhooks#243
mike-engel merged 2 commits into
cdp-6275from
cdp-6276

Conversation

@mike-engel

@mike-engel mike-engel commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Yet another set of the App API backfill following #242 which adds 5 ESP email-suppression methods and 5 reporting-webhook methods to APIClient:

Method Endpoint
searchSuppression GET /v1/esp/search_suppression/{email}
getSuppressions GET /v1/esp/suppression/{type}
getDomainSuppressions GET /v1/esp/domains/{domain}/suppression/{type}
createSuppression POST /v1/esp/suppression/{type}/{email}
deleteSuppression DELETE /v1/esp/suppression/{type}/{email} (204)
listReportingWebhooks GET /v1/reporting_webhooks
createReportingWebhook POST /v1/reporting_webhooks
getReportingWebhook GET /v1/reporting_webhooks/{id}
updateReportingWebhook PUT /v1/reporting_webhooks/{id}
deleteReportingWebhook DELETE /v1/reporting_webhooks/{id} (204)

Notes

  • There is also a GET /v1/reporting_webhooks/{id}/errors endpoint (JS-webhook debugging) that the issue didn't scope; happy to add a getReportingWebhookErrors in a follow-up if useful.

Assisted by AI 🤖


Note

Medium Risk
Large additive surface area with write paths (suppressions, webhooks, snippets, imports, metadata) that can affect deliverability and workspace data; behavior is thin HTTP wrappers with consistent validation.

Overview
Continues the App API client backfill on APIClient with a large set of new typed methods, matching the existing request/validation style (MissingParamError, buildQueryString, URL encoding).

Deliverability: ESP suppression search/list (global offset and per-domain cursor pagination), create/delete suppressions; full CRUD for reporting webhooks.

Content & operations: Snippet list/create/upsert/delete; sender identity list/get/used-by; workspace-wide message list/get/archived content with rich filters.

Data & account: CSV import create/status; batch attribute/event metadata updates; listWorkspaces and getIpAddresses.

docs/app.md documents all of the above. Unit tests in test/api.ts assert paths, query strings, and validation; test/integration/live.ts adds optional live coverage (including CIO_TEST_IMPORT_CSV_URL for imports).

Reviewed by Cursor Bugbot for commit d4b9893. Bugbot is set up for automated code reviews on this repo. Configure here.

…ng webhooks (CDP-6276)

Batch 12 (stacked on Batch 11). Adds 5 ESP email-suppression methods and 5
reporting-webhook methods to APIClient.

Contracts verified against the backend, not the OpenAPI spec:
- Suppression categories are blocks/bounces/spam_reports/invalid_emails;
  email is a path segment (URL-encoded). getSuppressions is offset-based;
  getDomainSuppressions is cursor-based (start). create returns a body,
  delete returns 204.
- Reporting webhooks use integer ids; the create body's URL field is
  'endpoint'; DELETE returns 204. Models the standard webhook type.

Includes unit tests (100% coverage), live round-trip coverage, and docs.
@mike-engel mike-engel changed the title feat: add App API deliverability methods — ESP suppressions & reporting webhooks (CDP-6276) feat: add App API deliverability methods — ESP suppressions & reporting webhooks Jul 15, 2026
@mike-engel mike-engel self-assigned this Jul 15, 2026
@mike-engel
mike-engel merged commit 385c6cd into cdp-6275 Jul 15, 2026
11 checks passed
@mike-engel
mike-engel deleted the cdp-6276 branch July 15, 2026 13:09
@mike-engel mike-engel mentioned this pull request Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants