Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.fluxomail.com/llms.txt

Use this file to discover all available pages before exploring further.

Fluxomail supports one‑click unsubscribe (RFC 8058) and token‑based preference management. You can also manage subscriptions via API. To add a custom unsubscribe page, set the HTTP URL in the app under Settings → Organization → Footer & Unsubscribe. Unsubscribe (public)
POST /api/unsubscribe
Linked in headers/footer; verifies a secure token and records suppression. Preferences API — GET Endpoint: GET /api/v1/preferences Headers
HeaderTypeRequiredDescription
AuthorizationstringnoBearer <api_key> (optional; enables scope checks)
Query
ParameterTypeRequiredDescription
tokenstringnoSecure token for contact lookup
emailstringnoEmail address to look up
Get current preferences by token or email
BASE=https://api.fluxomail.com
curl -X GET "$BASE/api/v1/preferences?token=$TOKEN" \
  -H "Authorization: Bearer $API_KEY"  # optional, if you want to use scopes
Response
{
  "contact": { "id": "contacts_...", "email": "user@example.com" },
  "categories": [ { "key": "product", "name": "Product updates" } ],
  "subscriptions": [ { "categoryKey": "product", "subscribed": true } ]
}
Status codes
  • 200 success
  • 401 invalid API key (when provided)
  • 403 missing preferences_read scope (when authenticated)
  • 404 contact not found
Preferences API — POST Endpoint: POST /api/v1/preferences Headers
HeaderTypeRequiredDescription
Content-Typestringyesapplication/json
AuthorizationstringnoRequired when using scopes on an API key
Body
ParameterTypeRequiredDescription
tokenstringnoSecure token issued for the contact
emailstringnoEmail address to update
subscriptionsarray of objectsyes{ categoryKey: string, subscribed: boolean } pairs
Update subscriptions (token or email). Requires preferences_manage when using a key:
curl -X POST "$BASE/api/v1/preferences" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "token": "...",
    "subscriptions": [
      { "categoryKey": "product", "subscribed": false },
      { "categoryKey": "newsletters", "subscribed": true }
    ]
  }'
Response
{ "ok": true }
Status codes
  • 200 success
  • 401 invalid API key (when provided)
  • 403 missing preferences_manage scope (when authenticated)
  • 404 contact not found
  • 400/500 invalid payload/server error
Scopes: preferences_read, preferences_manage