LogoLogo
Jump to...Create Free API Account
  • Developer Center Introduction
  • Getting Started
    • Get an API Key
    • Send a Message
    • Add a Subscriber
    • Setting up Webhooks
  • Check Delivery Status
  • API Basics
    • Request / Response Headers
    • Request Parameters
    • Rate Limits
    • Error Response Codes
  • Messaging Routes
    • 10DLC
    • Toll-Free
    • Short Code
    • iMessage
    • RCS / RBM
  • Tutorials
    • Message Sending
      • Send an SMS Message
      • Send an MMS Message
      • Send an iMessage
        • Sender Identity
        • Subscriber Opt In
        • Send iMessages
        • SMS Fallback
      • Message Templates
      • Receive and Reply to Messages
    • Manage Subscribers
      • Custom Subscriber Attributes
      • Bulk Create/Update Subscribers
    • Webhooks
      • Setting up your first webhook
  • Use Cases
    • Generate and validate 2FA / MFA codes via SMS
  • FAQ
  • API Reference
Powered by GitBook
LogoLogo

Resources

  • Help Center
  • Contact

Company

  • About Us
  • Privacy Policy
  • Service Agreement

Connect with Us

  • YouTube
  • Facebook
  • X (Twitter)
  • Instagram

Mobile Text Alerts © 2025

On this page

Was this helpful?

Export as PDF
  1. Tutorials
  2. Manage Subscribers

Bulk Create/Update Subscribers

Learn how to use the bulk subscriber endpoints, useful for large scale subscriber updates.

PreviousCustom Subscriber AttributesNextWebhooks

Last updated 13 days ago

Was this helpful?

When creating or updating many subscribers at one time with the and endpoints you can quickly exhaust the available . The and endpoints are recommended for handling large subscriber changes via the API, this can save on both request round trip time and overall API call volume.

Bulk Create Subscribers

This endpoint is used to create (or update and create) many subscriber accounts in one request.

CreateOnly Parameter

If set to true the createOnly path parameter indicates the only action should be to create new subscribers and will not update records of existing subscribers. If set to false then both creating or updating (if the subscriber exists) actions will be performed.

Subscriber Request Body

Records of subscribers should be in an array.

Required Fields for new subscribers: email or number

Bulk Update Subscribers

This endpoint is used to update many subscriber accounts in one request. The number field is used to identify the subscriber record to be updated , if no number is provided then email will be used an identifier. One of these fields must be provided to identify the subscriber record to be updated.

Subscriber Request Body

Records of subscribers should be in an array.

rate limit
Bulk Create Subscribers
Bulk Update Subscribers
Create Subscriber
Update Subscriber
  • Bulk Create Subscribers
  • CreateOnly Parameter
  • Subscriber Request Body
  • POSTBulk Create Subscribers
  • Bulk Update Subscribers
  • Subscriber Request Body
  • PATCHBulk Update Subscribers

Bulk Update Subscribers

patch

Record Limit

This endpoint will accept a maximum of 1,000 records in a single request.

Rate Limiting

This endpoint overrides the general rate limit with an account rate limit. Requests are limited by the authenticated account instead of the IP address. This endpoint is limited to 15 requests every 15 seconds

Authorizations
Body

BulkUpdateSubscribers.RequestRecord

itemsone ofOptional

BulkUpdateSubscribers.RequestRecord

all ofOptional

BulkUpdateSubscribers.RequestWithId

or
all ofOptional

BulkUpdateSubscribers.RequestWithPhoneNumber

or
all ofOptional

BulkUpdateSubscribers.RequestWithEmail

Responses
200
Success
application/json
Responseall of
400
BadRequestError
application/json
401
UnauthorizedError
application/json
403
ForbiddenError
application/json
429
RateLimitError
application/json
500
InternalServerError
application/json
patch
PATCH /v3/subscribers/bulk HTTP/1.1
Host: api.mobile-text-alerts.com
Authorization: Bearer apiKey
Content-Type: application/json
Accept: */*
Content-Length: 221

[
  {
    "record": {
      "firstName": "text",
      "lastName": "text",
      "email": "text",
      "number": 1,
      "e164Number": "text",
      "groupIds": [
        1
      ],
      "subscriberFields": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      },
      "employeeNumber": "text",
      "welcomeMessage": "text"
    },
    "id": 1
  }
]
{
  "statusCode": "MTANoLinkedAccountError",
  "success": true,
  "error": "text",
  "message": "text",
  "data": {
    "totalRecordCount": 1,
    "updatedRecordCount": 1,
    "errorRecordCount": 1,
    "updatedRecords": [
      {
        "record": {
          "id": 1,
          "firstName": "text",
          "lastName": "text",
          "email": "text",
          "number": 1,
          "e164Number": "text",
          "date": "2025-05-29T07:48:21.799Z",
          "countryId": 1,
          "groups": [
            {
              "id": 1,
              "name": "text",
              "addedToGroupAt": "2025-05-29T07:48:21.799Z"
            }
          ],
          "subscriberFieldData": [
            {
              "id": 1,
              "subscriberFieldId": 1,
              "data": "text"
            }
          ],
          "signupMethod": 1,
          "longNumber": 1
        },
        "id": 1
      }
    ],
    "errorRecords": [
      {
        "error": "text",
        "id": 1
      }
    ]
  }
}

Bulk Create Subscribers

post

Record Limit

This endpoint will accept a maximum of 1,000 records in a single request. Records of subscribers should be in an array. The createOnly field indicates if the action is creating new subscribers only (doesn't accept records of existing subscribers) or the action is creating or updating (accept records of existing subscribers and update info according to the records).

Rate Limiting

This endpoint overrides the general rate limit with an account rate limit. Requests are limited by the authenticated account instead of the IP address. This endpoint is limited to 15 requests every 15 seconds

Authorizations
Query parameters
createOnlystringOptional
Body
firstNamestringOptional
lastNamestringOptional
emailstringOptional
numberone ofOptional
numberOptional
or
stringOptional
e164NumberstringOptional
groupIdsnumber[]Optional
employeeNumberstringOptional
welcomeMessagestringOptional
Responses
200
Success
application/json
Responseall of
400
BadRequestError
application/json
401
UnauthorizedError
application/json
403
ForbiddenError
application/json
429
RateLimitError
application/json
500
InternalServerError
application/json
post
POST /v3/subscribers/bulk HTTP/1.1
Host: api.mobile-text-alerts.com
Authorization: Bearer apiKey
Content-Type: application/json
Accept: */*
Content-Length: 203

[
  {
    "firstName": "text",
    "lastName": "text",
    "email": "text",
    "number": 1,
    "e164Number": "text",
    "groupIds": [
      1
    ],
    "subscriberFields": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    },
    "employeeNumber": "text",
    "welcomeMessage": "text"
  }
]
{
  "statusCode": "MTANoLinkedAccountError",
  "success": true,
  "error": "text",
  "message": "text",
  "data": {
    "totalRecordCount": 1,
    "createdRecordCount": 1,
    "errorRecordCount": 1,
    "createdRecords": [
      {
        "id": 1,
        "firstName": "text",
        "lastName": "text",
        "email": "text",
        "number": 1,
        "e164Number": "text",
        "date": "2025-05-29T07:48:21.799Z",
        "countryId": 1,
        "groups": [
          {
            "id": 1,
            "name": "text",
            "addedToGroupAt": "2025-05-29T07:48:21.799Z"
          }
        ],
        "subscriberFieldData": [
          {
            "id": 1,
            "subscriberFieldId": 1,
            "data": "text"
          }
        ],
        "signupMethod": 1,
        "longNumber": 1
      }
    ],
    "errorRecords": [
      {
        "firstName": "text",
        "lastName": "text",
        "email": "text",
        "number": 1,
        "e164Number": "text",
        "groupIds": [
          1
        ],
        "subscriberFields": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        },
        "employeeNumber": "text",
        "welcomeMessage": "text",
        "error": "text"
      }
    ]
  }
}
Name
Type
Description

firstName

string

First name of the subscriber.

lastName

string

Last name of the subscriber.

number

number

Phone number of the subscriber.

email

string

Email address of the subscriber.

e164Number

string

E.164 international telephone number of the subscriber. If supplied, will be used over number .

E.164 Format:

[+] [country code] [subscriber number including area code] (max. 15 digits)

groupIds

number[]

List of group ids of the groups the subscriber belongs to.

subscriberFields

dictionary: subscriberFieldIds:string as the keys and data: string corresponding values

A dictionary of key value pairs of additional for the subscriber.

Example:

"subscriberFields": {
    "2000": "January 1st, 2000",
    "2001": "Custom Field Data"
}
custom subscriber attributes
Name
Type
Description

firstName

string

First name of the subscriber.

lastName

string

Last name of the subscriber.

number(required if no email)

number

Phone number of the subscriber.

email (required if no number)

string

Email address of the subscriber.

e164Number

string

E.164 international telephone number of the subscriber. If supplied, will be used over number .

E.164 Format:

[+] [country code] [subscriber number including area code] (max. 15 digits)

groupIds

number[]

List of group ids of the groups the subscriber belongs to.

subscriberFields

dictionary: subscriberFieldIds:string as the keys and data: string corresponding values

A dictionary of key value pairs of additional for the subscriber.

Example:

"subscriberFields": {
    "2000": "January 1st, 2000",
    "2001": "Custom Field Data"
}
custom subscriber attributes