Moosend Segments API

The Segments API from Moosend — 8 operation(s) for segments.

Operations 8

GET /lists/{MailingListID}/segments.{Format} Getting segments #
GET /lists/{MailingListID}/segments/{SegmentID}/details.{Format} Getting segment details #
GET /lists/{MailingListID}/segments/{SegmentID}/members.{Format} Getting segment subscribers #
POST /lists/{MailingListID}/segments/create.{Format} Creating a new empty segment #
POST /lists/{MailingListID}/segments/{SegmentID}/update.{Format} Updating a segment #
POST /lists/{MailingListID}/segments/{SegmentID}/criteria/add.{Format} Adding criteria to segments #
POST /lists/{MailingListID}/segments/{SegmentID}/criteria/{CriteriaID}/update.{Format} Updating segment criteria #
DELETE /lists/{MailingListID}/segments/{SegmentID}/delete.{Format} Deleting A Segment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moosend-segments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moosend-segments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Moosend Segments API
  version: v3
  description: '#Moosend API


    ## Getting started with Moosend API




    Before making use of our API, please read the following carefully to get you started.



    ## Making API Requests


    Both API requests and responses have a format the data is expected to be sent or returned.


    Requests consist of a URL that specifies which operation to also call, a query string and usually a request stream as well, which specify parameters for the call. For each request there is a syntax pattern for the URL that must be followed for the system to understand your intension. You may find the appropriate pattern for each call in the “Access URLs” sections in our API Documentation pages.


    Parameters in the query string or the request stream should be specified in a format like:


    name1=value1&name2=value2&name3=value3&...


    As you have probably noticed, each name-value pair is separated by a & character. Note also that special characters in values should be URL-encoded. There are built-in URL-encoding functions in all major programming languages like C# and PHP. Please refer to each language’s documentation for more information.


    The request must also contain information about how you would like the response to be formatted. There are currently two available formats for getting a response: **xml** and **json**. You have to specify the format in every API call as an extension in the URL.


    So let’s summarize all above with an example request URL and a couple of hypothetical parameters:


    Example requesting response in xml format:


    `http://api.moosend.com/v3/somepath/testmethod.xml?param1=value1&m2=value2+with+special+chars+like+%40`


    Example requesting response in json format:


    `http://api.moosend.com/v3/somepath/testmethod.json?param1=value1&m2=value2+with+special+chars+like+%40`


    Note also that you must set the correct accept header in your application’s request in order to retrieve the response data in the expected format.


    For xml response you must set the accept header to: **application/xhtml+xml,application/xml**


    For json response you must set the accept header to: **application/json**


    ## Authentication


    All API calls require authentication. This is essential for the API to identify which user is making the call so that appropriate results will be returned, as well as for security reasons.


    Authentication is achieved through the use of an API key. This is a unique key for each account in our system. You can get your API key from the settings page in your account. Please keep your API key safe to prevent any unauthorized access. Once you obtain your API key, you will have to use it in every API call you make. The API key must always be specified as a parameter in the query string of the requesting URL, as in the example below:


    `http://api.moosend.com/v3/campaigns/create.xml?apikey=YOUR_API_KEY`


    You may find your API Key or generate a new one in the respective section under the Settings Menu.


    ## Request Methods


    There are 3 request methods that you will have to use in order to make full use of our API: GET, POST and DELETE. You must set your application to make each API call using the appropriate request method, which is explicitly specified in our API documentation pages for each call. Let us explain how these methods should be used:


    **GET:** Used for retrieving data from your account in our system. All request parameters in this case are expected to be found in the request URL, in a format specified explicitly for each API call. You can find detailed information on how to specify parameters for each call in our API documentation pages. You may test a GET request in a web browser, by entering the URL in the address bar. Don''t forget to include your API key parameter in the query string!


    **POST:** Used for sending information to our system in order to modify data in your account. In this case request parameters should be specified in the request stream. Only authentication and response format are usually expected to be found in the URL, unless differently specified in the “Access URLs” section of our API Documentation pages. Currently, the API accepts only URL-encoded data in the request stream, which is the same format as the one expected for parameter values in the query string. Note also that the content-type header of the request to be made should be “application/x-www-form-urlencoded”.


    **DELETE:** Used for deleting information from your account. No more different from POST regarding its use.


    Below is an example of a *POST* request:


    Request URL:


    `http://api.moosend.com/v3/campaigns/create.xml?apikey=YOUR_API_KEY`


    Request Stream:


    *(assumes hypothetical parameters: Name = New campaign, Subject = Some cool subject, SenderEmail = info@example.com, WebLocation = http://example.com/home/newsletter, MailingListID = 01234567-89ab-cdef-0123-456789abcdef)*


    `Name=New+campaign&Subject=Some+cool+subject&SenderEmail=info%40example.com& WebLocation=http%3a%2f%2fexample.com%2fhome%2fnewsletter&MailingListID=01234567-89ab-cdef-0123-456789abcdef`


    ## Changelog


    + Added HasExternalDoubleOptIn property in [Adding subscribers](https://jsapi.apiary.io/previews/moosendapp/reference/subscribers/add-or-update-subscribers/adding-subscribers)

    + Added HasExternalDoubleOptIn property in [Adding multiple subscribers](https://jsapi.apiary.io/previews/moosendapp/reference/subscribers/add-or-update-subscribers/adding-multiple-subscribers)

    + Added HasExternalDoubleOptIn property in [Updating a subscriber](https://jsapi.apiary.io/previews/moosendapp/reference/subscribers/add-or-update-subscribers/updating-a-subscriber)'
  contact:
    name: Moosend Support
    url: https://moosend.com/support/
  x-source: Transcribed from the Moosend API Blueprint published by Moosend at https://moosendapp.docs.apiary.io/api-description-document (FORMAT 1A, HOST https://api.moosend.com/v3).
servers:
- url: https://api.moosend.com/v3
security:
- apikeyQuery: []
tags:
- name: Segments
paths:
  /lists/{MailingListID}/segments.{Format}:
    get:
      operationId: gettingSegments
      summary: Getting segments
      description: Get a list of all segments with their criteria for the given mailing list.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful
                  Error:
                    description: The response error message. This will be null if successful
                  Context:
                    description: 'The response context. Contains all the following information:'
              example:
                Code: 0
                Error: null
                Context:
                  Paging:
                    PageSize: 100
                    CurrentPage: 1
                    TotalResults: 1
                    TotalPageCount: 1
                    SortExpression: CreatedOn
                    SortIsAscending: false
                  Segments:
                  - ID: 7314
                    Name: City
                    MatchType: 1
                    Criteria:
                    - ID: 12244
                      SegmentID: 7314
                      Field: 2
                      CustomFieldID: null
                      Comparer: 0
                      Value: test
                      DateFrom: null
                      DateTo: null
                      Properties: null
                      Subscriteria: null
                    - ID: 12348
                      SegmentID: 7314
                      Field: 99
                      CustomFieldID: e4823107-d02d-48af-8190-d8694a33401e
                      Comparer: 0
                      Value: UK
                      DateFrom: null
                      DateTo: null
                      Properties: null
                      Subscriteria: null
                    CreatedBy: 211.11.111.11
                    CreatedOn: /Date(1451490040010+0000)/
                    UpdatedBy: 211.11.111.11
                    UpdatedOn: /Date(1451490040010+0000)/
                    FetchType: 0
                    FetchValue: 0
                    Description: Fetch all where "City" is "UK" or "Recipient Name" is "Test"
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/{SegmentID}/details.{Format}:
    get:
      operationId: gettingSegmentDetails
      summary: Getting segment details
      description: Gets detailed information on a specific segment and its criteria. However, it does not include the subscribers returned by the segment.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: SegmentID
        in: path
        required: true
        schema:
          type: string
        example: '10198'
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful
                  Error:
                    description: The response error message. This will be null if successful
                  Context:
                    description: 'The response context. Contains all the following information:'
              example:
                Code: 0
                Error: null
                Context:
                  ID: 10198
                  Name: test
                  MatchType: 0
                  Criteria:
                  - ID: 15778
                    SegmentID: 10198
                    Field: 2
                    CustomFieldID: null
                    Comparer: 0
                    Value: Paul
                    DateFrom: null
                    DateTo: null
                    Properties: null
                    Subscriteria: null
                  - ID: 15779
                    SegmentID: 10198
                    Field: 4
                    CustomFieldID: null
                    Comparer: 8
                    Value: '5'
                    DateFrom: /Date(1465167600000+0100)/
                    DateTo: /Date(1465945200000+0100)/
                    Properties: null
                    Subscriteria: null
                  CreatedBy: 212.123.123.112
                  CreatedOn: /Date(1465806037033+0100)/
                  UpdatedBy: 212.123.123.112
                  UpdatedOn: /Date(1465806269980+0100)/
                  FetchType: 0
                  FetchValue: 0
                  Description: Fetch all where "Recipient Name" is "Paul" and "Campaigns Opened" is greater than "5"
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/{SegmentID}/members.{Format}:
    get:
      operationId: gettingSegmentSubscribers
      summary: Getting segment subscribers
      description: Gets a list of the subscribers that the specified segment returns according to its criteria. Because the results for this call could be quite big, paging information is required as input.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: SegmentID
        in: path
        required: true
        schema:
          type: string
        example: '10198'
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful
                  Error:
                    description: The response error message. This will be null if successful
                  Context:
                    description: 'The response context. Contains all the following information:'
              example:
                Code: 0
                Error: null
                Context:
                  Paging:
                    PageSize: 500
                    CurrentPage: 1
                    TotalResults: 2
                    TotalPageCount: 1
                    SortExpression: null
                    SortIsAscending: false
                  Subscribers:
                  - ID: 07111755-8ee4-1111-ad2b-1111899c6f
                    Name: Paul
                    Email: paul@email.com
                    CreatedOn: /Date(1461777177393+0100)/
                    UpdatedOn: /Date(1461777177393+0100)/
                    UnsubscribedOn: null
                    UnsubscribedFromID: null
                    SubscribeType: 1
                    SubscribeMethod: 2
                    CustomFields:
                    - CustomFieldID: 63705cf2-7cbb-4ac1-a246-1a8c1b416026
                      Name: CheckBox
                      Value: 'True'
                    - CustomFieldID: 63705cf2-7cbb-4ac1-a246-1a8c1b416026
                      Name: Date
                      Value: 4/12/2016 12:00:00 AM
                    - CustomFieldID: 9df6dcc4-bef2-47e7-93af-86889b6b6d6a
                      Name: Age
                      Value: '25'
                    - CustomFieldID: 0d2199aa-65fc-448c-b9fe-199e3b72ebc5
                      Name: Some custom field
                      Value: Something2
                    - CustomFieldID: 46721a6b-09aa-46ff-bab1-a0b75dea24cf
                      Name: Some custom field 2
                      Value: Text2
                    RemovedOn: null
                  - ID: 0bb00735-7ec7-41de-ab04-d622f67340c4
                    Name: John
                    Email: john@email.com
                    CreatedOn: /Date(1461777334373+0100)/
                    UpdatedOn: /Date(1461783253670+0100)/
                    UnsubscribedOn: null
                    UnsubscribedFromID: null
                    SubscribeType: 1
                    SubscribeMethod: 0
                    CustomFields:
                    - CustomFieldID: 0bb00735-7ec7-41de-ab04-d622f67340c4
                      Name: Country
                      Value: UK
                    - CustomFieldID: 46721a6b-09aa-46ff-bab1-a0b75dea24cf
                      Name: Status
                      Value: single
                    RemovedOn: null
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/create.{Format}:
    post:
      operationId: creatingANewEmptySegment
      summary: Creating a new empty segment
      description: Creates a new empty segment (without criteria) for the given mailing list. You may specify the name of the segment and the way the criteria will match together. Blueprint also documents this operation as "Creating a new segment".
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Name:
                  type: string
                  description: The name of the segment. ***(Required)***
                MatchType:
                  type: string
                  description: Specifies how the segment's criteria will match together. This must be one of the following values. ***(Optional)*** <br/> If not specified, `All` will be assumed.
                FetchType:
                  type: string
                  description: Specifies how many of the criteria matching subscribers will be contained in the created segment.***(Optional)*** <br/> If not specified, `All` will be assumed.
                FetchValue:
                  type: string
                  description: Specifies the maximum number for `FetchType:Top` or percentage for `FetchType:TopPercent`of members to be contained in the created segment.  If not specified, `0` will be assumed.
            example:
              Name: New Customers
              MatchType: All
              FetchType: Top
              FetchValue: '200'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful.
                  Error:
                    description: The response message. This will be null if successful.
                  Context:
                    description: Contains the id of the new segment.
              example:
                Code: 0
                Error: null
                Context: 10199
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/{SegmentID}/update.{Format}:
    post:
      operationId: updatingASegment
      summary: Updating a segment
      description: Updates the properties and criteria of an existing segment. You may update the name and match type of the segment. If criteria are included these will also be updated. You may update only the criteria. In that case, the existing name and settings will be retained.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: SegmentID
        in: path
        required: true
        schema:
          type: string
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Name:
                  type: string
                  description: The name of the segment. ***(Optional)*** <br/> If not specified, the existing name will be retained.
                MatchType:
                  type: string
                  description: Specifies how the segment's criteria will match together. This must be one of the following values. ***(Optional)*** <br/> If not specified, existing settings will be retained.
                FetchType:
                  type: string
                  description: Specifies how many of the criteria matching subscribers will be contained in the created segment. ***(Optional)*** <br/> If not specified, existing settings will be retained.
                FetchValue:
                  type: string
                  description: Specifies the maximum number for `FetchType:Top` or percentage for `FetchType:TopPercent`of members to be contained in the created segment.  If not specified, `0` will be assumed.
                Criteria:
                  type: string
                  description: An array of the criteria to filter the mailing list by. ***(Optional)*** <br/> If not specified, existing criteria will be retained.
                Field:
                  type: string
                  description: The field of the criterion to filter the mailing list by. This must be one of the following values. ***(Required)***
                Comparer:
                  type: string
                  description: An operator that defines the way to compare a criterion field with its value. This must be one of the following values. ***(Optional)*** <br/> If not specified, `Is` will be assumed.
                Value:
                  type: string
                  description: A search term to filter the specified field by. ***(Optional)***
                Date Functions:
                  type: string
                  description: Can be used with fields of DateTime data type.
            example:
              Name: Customer Tracking and Opener
              MatchType: Any
              FetchType: All
              Criteria:
              - Field: AddedAnythingToCart
                Comparer: IsTrue
                Times: 2
                ProductCode: '123'
                LastXMinutes: 4320
                WebsiteId: 12345678-1234-abdc-efgh-1231bc456efg789hij
              - Field: OpenedAnyCampaign
                Comparer: IsTrue
                DateFrom: '2019-09-01'
                DateTo: '2020-12-01'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful.
                  Error:
                    description: The response message. This will be null if successful.
                  Context:
                    description: The response context for this call. This will be null if successful.
              example:
                Code: 0
                Error: null
                Context: null
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/{SegmentID}/criteria/add.{Format}:
    post:
      operationId: addingCriteriaToSegments
      summary: Adding criteria to segments
      description: Adds a new criterion (a rule) to the specified segment.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: SegmentID
        in: path
        required: true
        schema:
          type: string
        example: '10199'
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Field:
                  type: string
                  description: The field of the criterion to filter the mailing list by. This must be one of the following values. ***(Required)***
                Comparer:
                  type: string
                  description: An operator that defines the way to compare a criterion field with its value. This must be one of the following values. ***(Optional)*** <br/> If not specified, `Is` will be assumed.
                Value:
                  type: string
                  description: A search term to filter the specified field by. ***(Optional)***
                Date Functions:
                  type: string
                  description: Can be used with fields of DateTime data type.
            example:
              Field: DateAdded
              DateFunction: Year
              Comparer: Is
              Value: '2020'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful.
                  Error:
                    description: The response error for this call. This will be null if successful.
                  Context:
                    description: Contains the new criteriaID.
              example:
                Code: 0
                Error: null
                Context: 15783
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/{SegmentID}/criteria/{CriteriaID}/update.{Format}:
    post:
      operationId: updatingSegmentCriteria
      summary: Updating segment criteria
      description: Updates an existing criterion in the specified segment.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: SegmentID
        in: path
        required: true
        schema:
          type: string
        example: '10199'
      - name: CriteriaID
        in: path
        required: true
        schema:
          type: number
        example: '15783'
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                Field:
                  type: string
                  description: The field of the criterion to filter the mailing list by. This must be one of the following values. ***(Required)***
                Comparer:
                  type: string
                  description: An operator that defines the way to compare a criterion field with its value. This must be one of the following values. ***(Optional)*** <br/> If not specified, `Is` will be assumed.
                Value:
                  type: string
                  description: A search term to filter the specified field by. ***(Optional)***
                Date Functions:
                  type: string
                  description: Can be used with fields of DateTime data type.
            example:
              Field: LinkURL
              Comparer: is
              Value: https://www.moosend.com/
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful.
                  Error:
                    description: The response error for this call. This will be null if successful.
                  Context:
                    description: Contains the updated criteriaID.
              example:
                Code: 0
                Error: null
                Context: 15783
      security:
      - apikeyQuery: []
  /lists/{MailingListID}/segments/{SegmentID}/delete.{Format}:
    delete:
      operationId: deletingASegment
      summary: Deleting A Segment
      description: Deletes a segment along with its criteria from the mailing list. The subscribers of the mailing list that the segment returned are not deleted or affected in any way.
      tags:
      - Segments
      parameters:
      - name: MailingListID
        in: path
        required: true
        schema:
          type: string
        example: a589366a-1a34-4965-ac50-f1299fe5979e
      - name: SegmentID
        in: path
        required: true
        schema:
          type: string
        example: '10199'
      - name: Format
        in: path
        required: true
        schema:
          type: string
        example: json
      - name: apikey
        in: query
        required: true
        schema:
          type: string
        description: Account API key. Passed as a query-string parameter on every call.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    description: The response code for this call. This will be 0 if successful.
                  Error:
                    description: The response error for this call. This will be null if successful.
                  Context:
                    description: The response context for this call. This will be null if successful.
              example:
                Code: 0
                Error: null
                Context: null
      security:
      - apikeyQuery: []
components:
  securitySchemes:
    apikeyQuery:
      type: apiKey
      in: query
      name: apikey
      description: Moosend account API key, supplied as the `apikey` query-string parameter on every request. Generated in the account Settings menu.