{
  "service": "mailerlite",
  "displayName": "MailerLite",
  "categories": [
    "Communication",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "ml_...",
      "description": "MailerLite API key used with the Authorization Bearer header. Generate it in Integrations > MailerLite API."
    }
  ],
  "homepageUrl": "https://www.mailerlite.com",
  "actions": [
    {
      "id": "mailerlite.add_subscriber_to_group",
      "service": "mailerlite",
      "name": "add_subscriber_to_group",
      "description": "Assign an existing MailerLite subscriber to a MailerLite group.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriber_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite subscriber identifier."
          },
          "group_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite group identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for changing MailerLite group membership."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Group object returned after assigning a MailerLite subscriber to a group."
          }
        },
        "additionalProperties": false,
        "description": "Single resource response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.create_group",
      "service": "mailerlite",
      "name": "create_group",
      "description": "Create a new MailerLite group.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "MailerLite group name."
          }
        },
        "additionalProperties": false,
        "description": "Request payload accepted by MailerLite group write endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Group object returned after a MailerLite create-group request."
          }
        },
        "additionalProperties": false,
        "description": "Single resource response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.delete_group",
      "service": "mailerlite",
      "name": "delete_group",
      "description": "Delete a MailerLite group by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite group identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters accepted by MailerLite group endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether MailerLite accepted the operation."
          }
        },
        "additionalProperties": false,
        "description": "Success marker returned after a MailerLite no-content response."
      }
    },
    {
      "id": "mailerlite.delete_subscriber",
      "service": "mailerlite",
      "name": "delete_subscriber",
      "description": "Delete a subscriber from the current MailerLite account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriber_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite subscriber identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for deleting a MailerLite subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether MailerLite accepted the operation."
          }
        },
        "additionalProperties": false,
        "description": "Success marker returned after a MailerLite no-content response."
      }
    },
    {
      "id": "mailerlite.get_subscriber",
      "service": "mailerlite",
      "name": "get_subscriber",
      "description": "Fetch a single MailerLite subscriber by ID or email.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriber_id_or_email": {
            "type": "string",
            "minLength": 1,
            "description": "Subscriber ID or email accepted by the MailerLite fetch endpoint."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for fetching a MailerLite subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Subscriber object returned by MailerLite."
          }
        },
        "additionalProperties": false,
        "description": "Single resource response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.list_fields",
      "service": "mailerlite",
      "name": "list_fields",
      "description": "List fields available to the current MailerLite API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of fields to return."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from MailerLite."
          },
          "keyword": {
            "type": "string",
            "minLength": 1,
            "description": "Partial field keyword filter."
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "number",
              "date"
            ],
            "description": "Field type accepted by the MailerLite fields API."
          },
          "sort": {
            "type": "string",
            "enum": [
              "name",
              "type",
              "-name",
              "-type"
            ],
            "description": "Sort order accepted by the MailerLite fields API."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing MailerLite fields."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Field object returned by MailerLite."
            },
            "description": "Items returned by the MailerLite API."
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination links returned by the MailerLite API."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by the MailerLite API."
          }
        },
        "additionalProperties": false,
        "description": "Paginated list response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.list_group_subscribers",
      "service": "mailerlite",
      "name": "list_group_subscribers",
      "description": "List subscribers that belong to a MailerLite group.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite group identifier."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "unsubscribed",
              "unconfirmed",
              "bounced",
              "junk"
            ],
            "description": "Subscriber status accepted by the MailerLite API."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of subscribers to return per page."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor returned by a previous MailerLite group-subscriber response."
          },
          "include_groups": {
            "type": "boolean",
            "description": "Whether to include subscriber groups in the response."
          }
        },
        "additionalProperties": false,
        "required": [
          "group_id"
        ],
        "description": "Path and query parameters for listing subscribers in a MailerLite group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Subscriber object returned by the MailerLite group subscriber endpoint."
            },
            "description": "Items returned by the MailerLite API."
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination links returned by the MailerLite API."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by the MailerLite API."
          }
        },
        "additionalProperties": false,
        "description": "Paginated list response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.list_groups",
      "service": "mailerlite",
      "name": "list_groups",
      "description": "List groups available to the current MailerLite API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of groups to return."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from MailerLite."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Partial group name filter."
          },
          "sort": {
            "type": "string",
            "enum": [
              "name",
              "total",
              "open_rate",
              "click_rate",
              "created_at",
              "-name",
              "-total",
              "-open_rate",
              "-click_rate",
              "-created_at"
            ],
            "description": "Sort order accepted by the MailerLite groups API."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing MailerLite groups."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Group object returned by MailerLite."
            },
            "description": "Items returned by the MailerLite API."
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination links returned by the MailerLite API."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by the MailerLite API."
          }
        },
        "additionalProperties": false,
        "description": "Paginated list response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.list_subscribers",
      "service": "mailerlite",
      "name": "list_subscribers",
      "description": "List subscribers available to the current MailerLite API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "active",
              "unsubscribed",
              "unconfirmed",
              "bounced",
              "junk"
            ],
            "description": "Subscriber status accepted by the MailerLite API."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of subscribers to return."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor returned by a previous MailerLite list response."
          },
          "include_groups": {
            "type": "boolean",
            "description": "Whether to include subscriber groups in the response."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing MailerLite subscribers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Subscriber object returned by MailerLite."
            },
            "description": "Items returned by the MailerLite API."
          },
          "links": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination links returned by the MailerLite API."
          },
          "meta": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pagination metadata returned by the MailerLite API."
          }
        },
        "additionalProperties": false,
        "description": "Paginated list response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.remove_subscriber_from_group",
      "service": "mailerlite",
      "name": "remove_subscriber_from_group",
      "description": "Unassign an existing MailerLite subscriber from a MailerLite group.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriber_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite subscriber identifier."
          },
          "group_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite group identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for changing MailerLite group membership."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether MailerLite accepted the operation."
          }
        },
        "additionalProperties": false,
        "description": "Success marker returned after a MailerLite no-content response."
      }
    },
    {
      "id": "mailerlite.update_group",
      "service": "mailerlite",
      "name": "update_group",
      "description": "Update an existing MailerLite group by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite group identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "MailerLite group name."
          }
        },
        "additionalProperties": false,
        "description": "Request payload for updating a MailerLite group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Group object returned after a MailerLite update-group request."
          }
        },
        "additionalProperties": false,
        "description": "Single resource response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.update_subscriber",
      "service": "mailerlite",
      "name": "update_subscriber",
      "description": "Update an existing MailerLite subscriber by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriber_id": {
            "type": "string",
            "minLength": 1,
            "description": "MailerLite subscriber identifier."
          },
          "fields": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Subscriber custom fields accepted by the MailerLite API."
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Existing MailerLite group identifier."
            },
            "description": "MailerLite group identifiers attached to the subscriber.",
            "minItems": 1
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "unsubscribed",
              "unconfirmed",
              "bounced",
              "junk"
            ],
            "description": "Subscriber status accepted by the MailerLite API."
          },
          "subscribed_at": {
            "type": "string",
            "description": "Timestamp in yyyy-MM-dd HH:mm:ss format."
          },
          "ip_address": {
            "type": "string",
            "description": "IP address associated with the subscriber."
          },
          "opted_in_at": {
            "type": "string",
            "description": "Timestamp in yyyy-MM-dd HH:mm:ss format."
          },
          "optin_ip": {
            "type": "string",
            "description": "Opt-in IP address associated with the subscriber."
          },
          "unsubscribed_at": {
            "type": "string",
            "description": "Timestamp in yyyy-MM-dd HH:mm:ss format."
          }
        },
        "additionalProperties": false,
        "required": [
          "subscriber_id"
        ],
        "description": "Request payload for updating a MailerLite subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Subscriber object returned after a MailerLite update request."
          }
        },
        "additionalProperties": false,
        "description": "Single resource response returned by the MailerLite API."
      }
    },
    {
      "id": "mailerlite.upsert_subscriber",
      "service": "mailerlite",
      "name": "upsert_subscriber",
      "description": "Create or update a MailerLite subscriber using the official upsert endpoint.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Subscriber email address.",
            "format": "email"
          },
          "fields": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Subscriber custom fields accepted by the MailerLite API."
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Existing MailerLite group identifier."
            },
            "description": "MailerLite group identifiers attached to the subscriber.",
            "minItems": 1
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "unsubscribed",
              "unconfirmed",
              "bounced",
              "junk"
            ],
            "description": "Subscriber status accepted by the MailerLite API."
          },
          "subscribed_at": {
            "type": "string",
            "description": "Timestamp in yyyy-MM-dd HH:mm:ss format."
          },
          "ip_address": {
            "type": "string",
            "description": "IP address associated with the subscriber."
          },
          "opted_in_at": {
            "type": "string",
            "description": "Timestamp in yyyy-MM-dd HH:mm:ss format."
          },
          "optin_ip": {
            "type": "string",
            "description": "Opt-in IP address associated with the subscriber."
          },
          "unsubscribed_at": {
            "type": "string",
            "description": "Timestamp in yyyy-MM-dd HH:mm:ss format."
          },
          "resubscribe": {
            "type": "boolean",
            "description": "Whether to resubscribe an unsubscribed subscriber when MailerLite allows it."
          }
        },
        "additionalProperties": false,
        "required": [
          "email"
        ],
        "description": "Request payload for creating or upserting a MailerLite subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Subscriber object returned after a MailerLite upsert request."
          }
        },
        "additionalProperties": false,
        "description": "Single resource response returned by the MailerLite API."
      }
    }
  ]
}
