Skip to content

feat(send): document listUnsubscribe, the sender's own one-click unsubscribe endpoint - #8

Merged
BSalaeddin merged 1 commit into
mainfrom
feat/send-list-unsubscribe
Oct 22, 2026
Merged

BSalaeddin merged 1 commit into
mainfrom
feat/send-list-unsubscribe

Conversation

@BSalaeddin

Copy link
Copy Markdown
Contributor

This is the Python half of DevinoSolutions/sendly-js#17.

POST /api/v1/emails now takes listUnsubscribe (sendly#624, live once the platform deploys e35618c2). emails.send already forwards its body as given, so the field works today. This PR pins that with a test and documents it.

What changes

  • Re-synced tests/fixtures/openapi.json from the platform contract (sendly main, e35618c2). sync_spec.py --check is in sync.
  • Added test_send_forwards_the_senders_own_one_click_unsubscribe_endpoint.
  • Documented the field in the README Emails section and under Unreleased → Added in the CHANGELOG.

What the re-sync brought in that this SDK does not implement yet. The classification is the same as in sendly-js:

Operations Where Why
Mailbox conversations (list, read, reply), attachment download, domain logo (get, put, delete, readiness) NOT_YET_IMPLEMENTED Real gaps, tracked for a follow-up
GET /api/users/me/projects NOT_SDK_CALLABLE Session/OAuth only
Everything under /api/compat/ Excused by path (_is_compat_dialect) Called by those providers' own SDKs. A new test asserts the SDK implements none of them.

Checks: pytest (276), ruff check, ruff format --check and mypy src are all clean.

Not released.

…bscribe endpoint

Re-syncs the vendored spec from the platform contract (sendly main
e35618c2), where POST /api/v1/emails gained listUnsubscribe. send()
forwards its body as given, so the field already works; this pins that
with a test and documents it.

The re-sync also brings operations this SDK does not implement yet: the
mailbox conversation reads/reply/attachments and the domain logo, listed
in NOT_YET_IMPLEMENTED; GET /api/users/me/projects, session-only, in
NOT_SDK_CALLABLE; and the provider compat dialects under /api/compat/,
excused by path because they are called by those providers' own SDKs.
Kept in step with sendly-js#17.
@BSalaeddin
BSalaeddin merged commit 6621757 into main Oct 22, 2026
2 checks passed
@BSalaeddin
BSalaeddin deleted the feat/send-list-unsubscribe branch October 22, 2026 02:20
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.

1 participant