API Reference / Endpoints

Update Subscriber

The Update Subscriber endpoint allows you to modify information for an existing subscriber. You can update their name, phone number, points, custom metadata fields, and tags.

Want the full picture in one fetch? The one-page integration guide covers every path with copy-paste code · OpenAPI spec · SDK: npm install waitlister

Endpoint Details

  • URL: https://waitlister.me/api/v1/waitlist/{waitlist-key}/subscribers/{id-or-email}
  • Method: PUT

Request

Headers

code
Content-Type: application/json
X-Api-Key: your-api-key

Path Parameters

ParameterDescription
waitlist-keyYour unique waitlist key, found in your waitlist settings
id-or-emailEither the subscriber's unique ID or their email address

Request Body

json
{
  "name": "Updated Name",
  "phone": "+1987654321",
  "points": 200,
  "metadata": {
    "company": "New Company",
    "status": "qualified"
  }
}

Optional Fields

FieldTypeDescription
nameStringThe subscriber's updated name
phoneStringThe subscriber's updated phone number
pointsNumberThe subscriber's updated points value
metadataObjectAdditional fields to add or update in the subscriber's metadata
add_tagsArray of stringsTags to add, by name (case-insensitive) or ID. A name the waitlist doesn't have yet is created as a new tag
remove_tagsArray of stringsTags to remove, by name or ID. Tags the subscriber doesn't have are ignored
tagsArray of stringsReplace the subscriber's tags with exactly this set. [] removes all tags. Can't be combined with add_tags or remove_tags

Note: You only need to include the fields you want to update. Omitted fields will remain unchanged.

Response

Success Response 200

json
{
  "success": true,
  "message": "Successfully updated subscriber",
  "data": {
    "subscriber": {
      "id": "xyzABC123",
      "email": "user@example.com",
      "name": "Updated Name",
      "phone": "+1987654321",
      "points": 200,
      "sign_up_token": "abc123xyz",
      "thank_you_url": "https://waitlister.me/thank-you/your-waitlist-key/abc123xyz",
      "updated_at": 1682345678901,
      "metadata": {
        "company": "New Company",
        "status": "qualified",
        "existing_field": "existing value"
      },
      "tags": [
        { "id": "tag_1760000000000", "name": "beta", "color": "blue" }
      ]
    }
  }
}

Response Fields

FieldTypeDescription
successBooleanAlways true for successful responses
messageStringA human-readable success message
data.subscriberObjectThe updated subscriber information
data.subscriber.sign_up_tokenStringUnique token for this subscriber
data.subscriber.thank_you_urlStringURL to the subscriber's thank you page
data.subscriber.updated_atNumberTimestamp of when the subscriber was updated
data.subscriber.tagsArrayThe subscriber's tags after the update, each with id, name, and color

Error Responses

Not Found 404

json
{
  "statusCode": 404,
  "error": "Not Found",
  "message": "Subscriber not found"
}

Bad Request 400

json
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "At least one field to update must be provided"
}

Tag requests return a 400 when:

  • tags is combined with add_tags or remove_tags
  • a value isn't an array of non-empty strings, lists more than 20 tags, or has a name longer than 30 characters
  • an ID that looks like a tag ID (tag_…) doesn't exist on the waitlist
  • adding a new name would take the waitlist past 20 tags

The last two messages list the waitlist's existing tags. None of these errors change anything.

Examples

Update Subscriber Name and Points

bash
curl -X PUT "https://waitlister.me/api/v1/waitlist/your-waitlist-key/subscribers/xyzABC123" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your-api-key" \
  -d '{
    "name": "Updated Name",
    "points": 200
  }'

Update Subscriber Metadata

bash
curl -X PUT "https://waitlister.me/api/v1/waitlist/your-waitlist-key/subscribers/user%40example.com" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your-api-key" \
  -d '{
    "metadata": {
      "status": "qualified",
      "last_contact": "2023-05-15",
      "notes": "Ready for beta access"
    }
  }'

Tag a Subscriber

bash
curl -X PUT "https://waitlister.me/api/v1/waitlist/your-waitlist-key/subscribers/user%40example.com" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your-api-key" \
  -d '{
    "add_tags": ["beta"],
    "remove_tags": ["waiting"]
  }'

Implementation Notes

Metadata Merging

When updating metadata, the new fields are merged with existing fields.

  • Fields included in the update request will be added or updated
  • Existing fields not mentioned in the request will be preserved
  • To remove a field, you would need to set its value to null

Points Management

The points field can be used to reward subscribers or adjust their position.

  • You can reward subscribers for custom actions by increasing points

Tags

Tags are the same ones you see in the dashboard's Tags column, so you can filter by them or send a broadcast to a tag.

  • Name a tag by its name (case-insensitive) or its ID. Call List Tags first to reuse an existing name instead of creating a near-duplicate
  • A new name in add_tags or tags creates the tag with an automatic color. A waitlist can have up to 20 tags, with names up to 30 characters
  • remove_tags is applied before add_tags
  • Changing a tag's color and deleting a tag are done in the dashboard

Subscriber Identification

You can update a subscriber using either:

  • Their unique ID (more efficient)
  • Their email address (more convenient for integration)

Email lookups are case-insensitive. The email address is normalized to lowercase before lookup.

Rate Limits

See API Rate Limits for more information.

Get started for free

Start collecting sign ups for your product launch in minutes — no coding required.

Get started