Email platforms want to own your subscriber list. Keeping subscribers in your own contacts API means the list is portable: you can point it at any sender, or several.
Subscribe
POST from your signup form with a publishable key and tag the source:
POST /v1/contacts
{ "email": "reader@example.com", "list": "weekly", "subscribed": true }
Upsert-by-email means re-subscribing just updates the record.
Unsubscribe
Flip a field rather than deleting, so you keep a record of who opted out:
PATCH /v1/contacts/con_a1b2
{ "subscribed": false }
Export to your sender
Page through with your secret key and push the subscribed contacts to whatever email tool you use this month:
GET /v1/contacts?page=1&page_size=100
Your list lives with you, not inside one vendor. Switch senders without migrating subscribers.
Where ContactAPI fits
ContactAPI is an open-source REST API for saving and managing contacts. You POST an email plus any JSON fields, get simple CRUD back, and can reach the same data from an AI client over its MCP server. No CRM, no pipeline stages, no lock-in.