MailKatana separates mailing-list discovery from opt-in source management.

Mailing lists

Use GET /v1/mailing-lists to retrieve the active mailing lists in the workspace.
curl https://api.mailkatana.com/v1/mailing-lists \
  -H "Authorization: Bearer YOUR_API_KEY"

Subscription sources

Subscription sources model where consent comes from. You can create, list, update, and delete them through /v1/subscription-sources. Example create request:
curl -X POST https://api.mailkatana.com/v1/subscription-sources \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Website signup form",
    "source_type": "form",
    "opt_in_mode": "double"
  }'

Opt-in requests

Use POST /v1/contact-subscriptions/opt-in to subscribe a contact through a specific source.
curl -X POST https://api.mailkatana.com/v1/contact-subscriptions/opt-in \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "avery@example.com",
    "subscription_source_id": "src_123",
    "ip_address": "203.0.113.10",
    "user_agent": "Docs Example"
  }'
The endpoint returns 201 for immediate activation and 202 when confirmation is required.

Resend confirmation

Use POST /v1/contact-subscriptions/resend-confirmation when you need to resend a double opt-in email for a specific address.