Connect an email platform (ESP)
9 min
mailfloss can verify and clean the contacts in your email platform automatically the integrations api connects, configures, and manages those connections across 18 supported platforms — klaviyo, mailchimp, brevo, activecampaign, convertkit, mailerlite, getresponse, and more — through one uniform surface every endpoint takes an esp type slug (e g klaviyo , mailchimp , activecampaign ) and addresses a specific connection by its id one account can hold multiple connections of the same type naming the slug for brevo is brevo (not the old sendinblue ) 1\ see what's connected list every integration (connected and available) curl https //api mailfloss com/v1/integrations \\ h "authorization bearer your api key" or drill into one platform and all of its connections curl https //api mailfloss com/v1/integrations/klaviyo \\ h "authorization bearer your api key" 2\ connect post /v1/integrations/{type}/connections with the platform's credentials mailfloss validates them live (it fetches your lists during the connect call), so a 201 means the credentials actually work — not just that they were stored credentials are encrypted at rest and never returned by any endpoint the credential fields depend on the platform single key platforms (klaviyo, mailerlite, brevo, getresponse, …) take just an api key curl x post https //api mailfloss com/v1/integrations/klaviyo/connections \\ h "authorization bearer your api key" \\ h "content type application/json" \\ d '{ "name" "marketing klaviyo", "credentials" { "api key" "pk xxxxxxxx" } }' others need more than one field — activecampaign needs your account url plus a key; convertkit needs a key plus a secret \# activecampaign curl x post https //api mailfloss com/v1/integrations/activecampaign/connections \\ h "authorization bearer your api key" \\ h "content type application/json" \\ d '{ "credentials" { "api url" "https //youraccount api us1 com", "api key" "your activecampaign key" } }' \# convertkit curl x post https //api mailfloss com/v1/integrations/convertkit/connections \\ h "authorization bearer your api key" \\ h "content type application/json" \\ d '{ "credentials" { "api key" " ", "api secret" " " } }' name is optional and defaults to the platform's display name the api reference lists the exact credential fields for every supported platform — check it for the one you're connecting a successful connect returns 201 with the new connection (see its shape below) other outcomes status meaning 400 missing or malformed credentials 402 out of verification credits 422 that type isn't connectable via the api post accepts an optional idempotency key header so a retried connect won't create a duplicate 3\ the connection object { "id" "cnx 8f3a", "name" "marketing klaviyo", "status" "active", "auto floss enabled" true, "created at" "2026 06 02t09 00 00z", "last synced at" null, "settings" { "aggressiveness" "normal", "verify first" true, "checks" { "disposable" true, "nonexistent" true } } } id — use this to address the connection in every other call status — active or disconnected auto floss enabled — whether automatic cleaning is on for this connection settings — how aggressively mailfloss cleans (below) 4\ configure cleaning patch /v1/integrations/{type}/connections/{id} — a partial update; omitted fields are left unchanged three things you can set verify first (boolean) — verify new contacts before their first send aggressiveness — normal (recommended preset), aggressive (all checks on), or custom (per check control) checks — a map of individual check gates editing any gate switches aggressiveness to custom aggressiveness and checks are mutually exclusive in a single request (send one or the other), and at least one field is required curl x patch https //api mailfloss com/v1/integrations/klaviyo/connections/cnx 8f3a \\ h "authorization bearer your api key" \\ h "content type application/json" \\ d '{ "verify first" true, "aggressiveness" "aggressive" }' keyword rules each connection has whitelist/blacklist keyword rules under /connections/{id}/whitelist and /blacklist (list, add, bulk add, delete) see the api reference for the rule shape 5\ disconnect and reconnect \# disconnect (stops automatic cleaning; keeps the connection record) curl x delete https //api mailfloss com/v1/integrations/klaviyo/connections/cnx 8f3a \\ h "authorization bearer your api key" \# reconnect a previously disconnected connection curl x post https //api mailfloss com/v1/integrations/klaviyo/connections/cnx 8f3a/reconnect \\ h "authorization bearer your api key" next steps errors — connect specific codes and how to handle them api reference — exact credential fields per platform, the full checks gate list, and keyword rule shapes
