← All articles

WordPress Plugins

Mailster REST API Plugin Documentation

Documentation for automating Mailster email marketing with REST API endpoints for subscribers, campaigns, and lists.

Published March 5, 2024 · Updated October 14, 2025
mailsterrest-apiwordpressemail-marketingnewsletters

Mailster REST API Plugin Documentation

Overview

The Mailster REST API Plugin extends the Mailster email marketing plugin with powerful REST API endpoints for automating subscriber management, campaigns, and integrations.

Installation

  1. Ensure Mailster plugin is installed
  2. Purchase and install the REST API Plugin
  3. Activate the plugin
  4. Configure in Mailster > REST API Settings

Authentication

Use API keys for authentication:

Authorization: Bearer your-mailster-api-key

Generate keys in Mailster > REST API Settings > API Keys.

Endpoints

Subscribers

Get All Subscribers

GET /wp-json/mailster/v1/subscribers

Query parameters:

  • list_id: Filter by list ID
  • status: Filter by status (active, unsubscribed, pending)
  • per_page: Results per page
  • page: Page number

Get Subscriber

GET /wp-json/mailster/v1/subscribers/{id}

Or by email:

GET /wp-json/mailster/v1/subscribers?email=user@example.com

Create Subscriber

POST /wp-json/mailster/v1/subscribers
Content-Type: application/json

{
  "email": "newuser@example.com",
  "firstname": "John",
  "lastname": "Doe",
  "status": "subscribed",
  "lists": [1, 2]
}

Update Subscriber

PUT /wp-json/mailster/v1/subscribers/{id}
Content-Type: application/json

{
  "firstname": "Jane",
  "lists": [1, 2, 3]
}

Delete Subscriber

DELETE /wp-json/mailster/v1/subscribers/{id}

Lists

Get All Lists

GET /wp-json/mailster/v1/lists

Get List

GET /wp-json/mailster/v1/lists/{id}

Create List

POST /wp-json/mailster/v1/lists
Content-Type: application/json

{
  "name": "Newsletter Subscribers",
  "description": "Monthly newsletter list"
}

Campaigns

Get All Campaigns

GET /wp-json/mailster/v1/campaigns

Get Campaign

GET /wp-json/mailster/v1/campaigns/{id}

Get Campaign Statistics

GET /wp-json/mailster/v1/campaigns/{id}/stats

Returns:

{
  "sent": 1500,
  "opened": 450,
  "clicked": 120,
  "unsubscribed": 5,
  "bounced": 10
}

Custom Fields

Get Custom Fields

GET /wp-json/mailster/v1/custom-fields

Create Custom Field

POST /wp-json/mailster/v1/custom-fields
Content-Type: application/json

{
  "name": "Company",
  "type": "textfield"
}

Bulk Operations

Bulk Subscribe

POST /wp-json/mailster/v1/subscribers/bulk
Content-Type: application/json

{
  "subscribers": [
    {
      "email": "user1@example.com",
      "firstname": "User",
      "lastname": "One"
    },
    {
      "email": "user2@example.com",
      "firstname": "User",
      "lastname": "Two"
    }
  ],
  "list_id": 1
}

Automation Triggers

Trigger automated campaigns:

POST /wp-json/mailster/v1/automation/trigger
Content-Type: application/json

{
  "workflow_id": 5,
  "subscriber_email": "user@example.com"
}

Webhooks

Configure webhooks for events:

  • Subscriber added
  • Subscriber unsubscribed
  • Campaign sent
  • Email bounced
  • Link clicked

Integration Examples

Add Subscriber from Form

async function subscribeUser(email, name) {
  const response = await fetch('/wp-json/mailster/v1/subscribers', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer YOUR_API_KEY'
    },
    body: JSON.stringify({
      email: email,
      firstname: name,
      lists: [1]
    })
  });
  return response.json();
}

Error Handling

Standard HTTP status codes:

  • 200: Success
  • 201: Created
  • 400: Bad Request (validation error)
  • 401: Unauthorized
  • 404: Not Found
  • 409: Conflict (subscriber already exists)

Rate Limits

  • 120 requests per minute per API key
  • Bulk operations limited to 1000 items per request

Support

Need assistance?