API & Integrations

Integrate with your stack

Connect Mally to your CRM, automation tools, and custom applications using the REST API and webhook events.

The Mally REST API

Mally exposes a full REST API for managing every aspect of the platform programmatically — subscribers, lists, segments, campaigns, automations, and more. The API follows standard REST conventions: JSON request and response bodies, HTTP verbs (GET, POST, PATCH, DELETE), and predictable resource URLs.

The base URL for all API requests is:

https://your-platform-domain.com/api/v1/

On Mally Cloud, replace your-platform-domain.com with app.mally.click. On Tenant, use your own platform domain.

Getting an API key

Go to Settings → API Keys → Create key. Give the key a descriptive name (e.g. "Zapier integration" or "CRM sync"). The key is shown once on creation — copy and store it securely, as you cannot view it again.

API keys are scoped to the account you create them in. A key created in a client sub-account can only access that client's data. Agency-level keys are created from the agency console and have broader access.

You can create multiple keys (useful for giving each integration its own key so you can revoke them independently) and revoke any key from the same settings page.

Authentication

All API requests must include your API key as a Bearer token in the Authorization header:

Authorization: Bearer your_api_key_here

Example request to list subscribers:

curl https://your-platform.com/api/v1/subscribers \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json"

Requests without a valid API key return HTTP 401. Requests to resources outside the key's scope return HTTP 403.

Common integration patterns

Add subscribers from your CRM or website

When a new contact is created in your CRM or a user signs up on your website, POST to the Mally subscribers endpoint to add them to a list:

POST /api/v1/subscribers
{
  "email": "alice@example.com",
  "first_name": "Alice",
  "list_id": "lst_01abc...",
  "tags": ["lead", "website-signup"],
  "custom_fields": {
    "company": "Acme Corp",
    "plan": "trial"
  }
}

Mally deduplicates by email. If the subscriber already exists, their record is updated. If they are on the target list, no duplicate is created.

Trigger a campaign via API

To send a campaign to a specific list from an external event (e.g. a product launch triggered by your release pipeline):

POST /api/v1/campaigns/{campaign_id}/send
{
  "send_at": "now"
}

The campaign must already exist and be in draft state. Build and review it in the UI, then trigger the send via API when the timing is right.

Zapier integration

Zapier does not have a native Mally integration, but you can connect via webhooks and the REST API:

  1. 1To trigger a Zap from Mally: use a Mally webhook (Settings → Webhooks) pointing to a Zapier Webhooks trigger URL
  2. 2To perform Mally actions from Zapier: use the Zapier "Webhooks by Zapier" action step with a POST to the Mally REST API endpoint you need
  3. 3Set the Authorization header in the Zapier webhook action: Bearer your_api_key_here

Make (Integromat) integration

Make's HTTP module works the same way as Zapier. For triggering Make from Mally:

  1. 1Create a Make scenario with the "Webhooks" module as the trigger
  2. 2Copy the webhook URL from Make and add it as a Mally webhook endpoint
  3. 3Select the event types you want to receive
  4. 4For sending data from Make to Mally, use the Make HTTP module with POST and your API key in the Authorization header

Rate limits

The Mally API is rate-limited to 1,000 requests per minute per API key. If you exceed this, the API returns HTTP 429 with a Retry-After header indicating when to retry.

For bulk subscriber imports (thousands of records), use the CSV import feature in the dashboard rather than making individual API calls per subscriber. The import endpoint handles bulk operations more efficiently and is not subject to the per-request rate limit.

Batch your writes

The POST /api/v1/subscribers/batch endpoint accepts up to 500 subscriber objects in a single request, counting as one request against the rate limit. Use this for bulk sync operations from your CRM.

Full API reference

The complete API reference — all endpoints, parameters, request/response schemas, and example calls — is available as an interactive ReDoc document:

Open API reference

The ReDoc reference opens in a new tab. It is interactive — you can explore all endpoints and try requests directly in the browser using your API key.