{"openapi":"3.0.0","info":{"description":"Email marketing platform API for triggering transactional campaign emails, adding contacts to lists, starting/aborting journeys, and exporting campaign reports (mmApiKey header auth).","version":null},"servers":[{"description":"Email marketing platform API for triggering transactional campaign emails, adding contacts to lists, starting/aborting journeys, and exporting campaign reports (mmApiKey header auth).","url":"https://api.apirails.com/mailmodo"}],"paths":{"/api/v1/triggerCampaign/{campaignId}":{"post":{"tags":["Schemas"],"parameters":[{"name":"campaignId","in":"path","description":"campaignId (path parameter)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/triggerCampaign/{campaignId}"},"summary":"Send email with repeatable block","description":"Send data for the repeatable blocks of a campaign: each block receives an array of row objects whose keys depend on the personalizations used in the block.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"addToList":{"type":"string","description":"addToList (body parameter)","required":true},"blocks":{"type":"array","description":"blocks (body parameter)","items":{"type":"object","properties":{"blockId":{"type":"string","description":"blockId (body parameter)"},"data":{"type":"array","description":"data (body parameter)"}}}},"email":{"type":"string","description":"email (body parameter)","required":true},"subject":{"type":"string","description":"subject (body parameter)"}}},"example":{"addToList":"addToList_value","blocks":[],"email":"customer@example.com","subject":"subject_value"}}}}}},"/api/v1/bulktriggerCampaign/{campaignId}":{"post":{"tags":["Sending Emails"],"parameters":[{"name":"campaignId","in":"path","description":"campaignId (path parameter)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/208eaa34df072-broadcast-campaign-to-a-list","api_endpoint":"https://api.mailmodo.com/api/v1/bulktriggerCampaign/{campaignId}"},"summary":"Broadcast campaign to a list","description":"Trigger a campaign to the entire contact list using a single API request, with personalisation parameters common to all users in the list. Requires the campaign id.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"campaign_data":{"type":"object","description":"campaign_data (body parameter)","properties":{"personalisation_parameter":{"type":"string","description":"personalisation_parameter (body parameter)"}}},"idempotencyKey":{"type":"string","description":"idempotencyKey (body parameter)"},"listId":{"type":"string","description":"listId (body parameter)","required":true},"subject":{"type":"string","description":"subject (body parameter)"}}},"example":{"campaign_data":"campaign_data_value","idempotencyKey":"idempotencyKey_value","listId":"listId_value","subject":"subject_value"}}}}}},"/hooks/start/{journeyId}":{"post":{"tags":["User Journeys"],"parameters":[{"name":"journeyId","in":"path","description":"journeyId (path parameter)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/hooks/start/{journeyId}"},"summary":"Add a new user to the journey","description":"Add a new user to a journey via its trigger hook, passing contact attributes used by the journey's personalization and enrollment logic.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"allowDuplicateEmail":{"type":"boolean","description":"allowDuplicateEmail (body parameter)","enum":[true,false]},"data":{"type":"object","description":"data (body parameter)","properties":{"firstName":{"type":"string","description":"firstName (body parameter)"}}},"email":{"type":"string","description":"email (body parameter)","required":true}}},"example":{"allowDuplicateEmail":"","data":"data_value","email":"customer@example.com"}}}}}},"/hooks/abort/{journeyId}":{"post":{"tags":["User Journeys"],"parameters":[{"name":"journeyId","in":"path","description":"journeyId (path parameter)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/hooks/abort/{journeyId}"},"summary":"Abort the journey for a user","description":"Abort an in-progress journey instance for a user via the journey's abort hook.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)"},"instanceId":{"type":"string","description":"instanceId (body parameter)"},"reason":{"type":"string","description":"reason (body parameter)"}}},"example":{"email":"customer@example.com","instanceId":"instanceId_value","reason":"reason_value"}}}}}},"/api/v1/addToList":{"post":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/addToList"},"summary":"Add contact to a list","description":"Add a contact to a list without sending an email; the list becomes available in the Mailmodo portal for ad-hoc sends. Updates contact properties if the contact already exists. Numbers, Booleans, Strings and Dates (UNIX or ISO 8601) are supported inside the data object.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"data":{"type":"object","description":"data (body parameter)","properties":{"address1":{"type":"string","description":"address1 (body parameter)"},"address2":{"type":"string","description":"address2 (body parameter)"},"age":{"type":"number","description":"age (body parameter)"},"anniversary_date":{"type":"string","description":"anniversary_date (body parameter)"},"birthday":{"type":"string","description":"birthday (body parameter)"},"city":{"type":"string","description":"city (body parameter)"},"company":{"type":"string","description":"company (body parameter)"},"country":{"type":"string","description":"country (body parameter)"},"description":{"type":"string","description":"description (body parameter)"},"designation":{"type":"string","description":"designation (body parameter)"},"first_name":{"type":"string","description":"first_name (body parameter)"},"gender":{"type":"string","description":"gender (body parameter)"},"industry":{"type":"string","description":"industry (body parameter)"},"last_name":{"type":"string","description":"last_name (body parameter)"},"name":{"type":"string","description":"name (body parameter)"},"phone":{"type":"string","description":"phone (body parameter)"},"postal_code":{"type":"string","description":"postal_code (body parameter)"},"state":{"type":"string","description":"state (body parameter)"}}},"email":{"type":"string","description":"email (body parameter)","required":true},"listName":{"type":"string","description":"listName (body parameter)","required":true}}},"example":{"data":"data_value","email":"customer@example.com","listName":"listName_value"}}}}}},"/api/v1/addToList/batch":{"post":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/6661e4fb7833e-bulk-add-contact-to-a-list","api_endpoint":"https://api.mailmodo.com/api/v1/addToList/batch"},"summary":"Bulk add contact to a list","description":"Add multiple contacts to a list in one API call (limit: 100 contacts per call). If a contact already exists, its properties are updated; otherwise a new contact is created.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"listName":{"type":"string","description":"listName (body parameter)","required":true},"values":{"type":"array","description":"values (body parameter)","items":{"type":"object","properties":{"data":{"type":"object","description":"data (body parameter)"},"email":{"type":"string","description":"email (body parameter)","required":true}}}}}},"example":{"listName":"listName_value","values":[]}}}}}},"/api/v1/getAllContactLists":{"get":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/b96e0fec94c2b-get-all-contact-lists","api_endpoint":"https://api.mailmodo.com/api/v1/getAllContactLists"},"summary":"Get all contact lists","description":"Retrieve the list ID, list name, creation date and contacts count for all lists in your Mailmodo account.","security":[{"bearerAuth":[]}]}},"/api/v1/contacts/unsubscribe":{"post":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/f098cadaf4247-suppress-unsubscribe-a-contact","api_endpoint":"https://api.mailmodo.com/api/v1/contacts/unsubscribe"},"summary":"Suppress/unsubscribe a contact","description":"Add a contact to the suppression list — they will not receive any further communication from you.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)","required":true}}},"example":{"email":"customer@example.com"}}}}}},"/api/v1/contacts/updateSubscription":{"post":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/contacts/updateSubscription"},"summary":"Update Subscription","description":"Resubscribe or unsubscribe a contact from specific email type(s). Not applicable when the contact is completely unsubscribed (from all email types) — use the Resubscribe API to revert complete unsubscription.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)","required":true},"reSubscribeTo":{"type":"array","description":"reSubscribeTo (body parameter)","required":true,"items":{"type":"string"}},"unsubscribeFrom":{"type":"array","description":"unsubscribeFrom (body parameter)","required":true,"items":{"type":"string"}}}},"example":{"email":"customer@example.com","reSubscribeTo":[],"unsubscribeFrom":[]}}}}}},"/api/v1/getContactDetails":{"get":{"tags":["Contact Management"],"parameters":[{"name":"email","in":"query","description":"email (query parameter)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/getContactDetails"},"summary":"Get contact details","description":"Retrieve a contact's email address, unique identifier, data object with contact properties, blocked status/block reason and unsubscribed status/unsubscribe reason.","security":[{"bearerAuth":[]}]}},"/api/v1/contacts/resubscribe":{"post":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/contacts/resubscribe"},"summary":"Resubscribe contact","description":"Resubscribe a suppressed (unsubscribed) contact.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)","required":true}}},"example":{"email":"customer@example.com"}}}}}},"/api/v1/removeFromList":{"post":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/d94a0f6ecb9f8-remove-contact-from-a-list","api_endpoint":"https://api.mailmodo.com/api/v1/removeFromList"},"summary":"Remove contact from a list","description":"Remove a contact from a list.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)","required":true},"listName":{"type":"string","description":"listName (body parameter)","required":true}}},"example":{"email":"customer@example.com","listName":"listName_value"}}}}}},"/api/v1/contacts":{"delete":{"tags":["Contact Management"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/contacts"},"summary":"Archive an exising contact (delete contact)","description":"Archive a contact by email ID (soft-delete). See 'how to archive contacts in Mailmodo' in the support docs.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)","required":true}}},"example":{"email":"example@mailmodo.com"}}}}}},"/api/v1/addEvent":{"post":{"tags":["Custom Events"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/aad439500fde9-custom-events","api_endpoint":"https://api.mailmodo.com/api/v1/addEvent"},"summary":"Add Event","description":"Add a custom event for a contact using email as the identifier. Event names must be strings; event property values support string, number and boolean types only.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"email":{"type":"string","description":"email (body parameter)","required":true},"event_name":{"type":"string","description":"event_name (body parameter)","required":true},"event_properties":{"type":"object","description":"event_properties (body parameter)","properties":{"testBooleanProperty1":{"type":"boolean","description":"testBooleanProperty1 (body parameter)","enum":[true,false]},"testIntegerProperty1":{"type":"number","description":"testIntegerProperty1 (body parameter)"},"testStringProperty1":{"type":"string","description":"testStringProperty1 (body parameter)"}}},"ts":{"type":"number","description":"ts (body parameter)"}}},"example":{"email":"customer@example.com","event_name":"event_name_value","event_properties":"event_properties_value","ts":"ts_value"}}}}}},"/api/v1/campaigns":{"get":{"tags":["Campaign Data"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/144b57e52b0cb-api-to-get-list-of-campaigns","api_endpoint":"https://api.mailmodo.com/api/v1/campaigns"},"summary":"API to get list of campaigns","description":"Returns the list of all campaigns and their metadata — campaign name, subject line, campaign type, etc. — for all campaigns in the account.","security":[{"bearerAuth":[]}]}},"/api/v1/campaignReports/{campaignId}":{"post":{"tags":["Campaign Data"],"parameters":[{"name":"campaignId","in":"path","description":"campaignId (path parameter)","required":true,"schema":{"type":"string","example":""}}],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs","api_endpoint":"https://api.mailmodo.com/api/v1/campaignReports/{campaignId}"},"summary":"API to get summary data for an individual campaign","description":"Summary data for an individual campaign. Date range is supported for Triggered and Journey campaigns only; for Bulk campaigns full data is always returned regardless of date range.","security":[{"bearerAuth":[]}],"requestBody":{"description":"","required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"fromDate":{"type":"string","description":"fromDate (body parameter)"},"toDate":{"type":"string","description":"toDate (body parameter)"}}},"example":{"fromDate":"2021-01-30","toDate":"2024-01-30"}}}}}},"/api/v1/getAllTemplates":{"get":{"tags":["Templates"],"parameters":[],"responses":{"401":{"description":"Bearer token required (Authorization header)","content":{"application/json":{}}}},"externalDocs":{"api_ref":"https://developers.mailmodo.com/docs/api-docs/bb30da6d78f04-get-all-templates","api_endpoint":"https://api.mailmodo.com/api/v1/getAllTemplates"},"summary":"Get All Templates","description":"Returns the list of all templates and their metadata (template name, category, etc.) for all active templates in the account.","security":[{"bearerAuth":[]}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}},"security":[{"bearerAuth":[]}]}