Create or update customer

API at a glance

Description: This API creates a new customer or updates an existing customer's profile information including contact details, subscription preferences, and custom attributes.

Authentication & testing

Testing the API on this page

How to try it here

  • Use your User API Key as the Username (leave Password blank).
  • Select the appropriate API endpoint based on your Blueshift region.
  • API - Select Region
  • Enter the necessary parameters and click Try It to run the request.
Authentication using Base64 encoding

Note for developers

API requests require authentication using HTTP Basic Authentication with an API key. The API key serves as the username, while the password field should be left empty. The format to encode is: your_api_key: (note the trailing colon).

This string must be Base64-encoded and included in the request's Authorization header as follows:

Authorization: Basic encoded_value

You can generate the encoded value using a trusted Base64 encoder.


Postman collection

Try it with Postman: Explore the API using Blueshift's Postman collection.


Things to know before you start

  • Required identifier: You must specify either email or customer_id for the customer.
  • Rate limit: We recommend limiting calls to this endpoint to 50 per second.
  • Phone number format: Must include country code, start with +, follow E.164 standard, not start with 0, and contain 6-14 characters.
  • Email limit: Maximum 64 characters.
  • Use case: Best for syncing customer data, updating profiles, managing subscription preferences, and maintaining customer records.

Request parameters

Check out the request parameters

Body parameters

ParameterTypeRequiredDescription
emailstring✅ Yes (or customer_id)Email address of the customer (max 64 characters).
customer_idstring✅ Yes (or email)Customer ID of the customer.
firstnamestring❌ NoFirst name of the customer.
lastnamestring❌ NoLast name of the customer.
phone_numberstring❌ NoPhone number with country code in E.164 format (e.g., +919742888933).
genderstring❌ NoGender of the customer (e.g., male, female).
subscription_groupsarray❌ NoUser's subscription preferences. See structure below.

Subscription groups object

ParameterTypeRequiredDescription
idstring✅ YesID of the subscription group.
subscribedboolean✅ Yestrue if subscribed, false if unsubscribed.

Example requests & responses

Create or update customer
{
  "email": "[email protected]",
  "customer_id": "38759877",
  "firstname": "Mike",
  "lastname": "Doel",
  "phone_number": "+919742888933",
  "gender": "male",
  "subscription_groups": [
    {
      "id": "newsletter",
      "subscribed": true
    },
    {
      "id": "weekly_promo",
      "subscribed": false
    }
  ]
}
{
  "customer": {
    "email": "[email protected]",
    "email_domain": "yahoo.com",
    "email_hard_bounced": true,
    "email_hash": "a58639ea568b694d6e056ee72d0b9531",
    "email_spam_reported": false,
    "customer_id": "812123",
    "firstname": "Jane",
    "lastname": "Doe",
    "gender": "female",
    "phone_number": null,
    "created_at": "2024-10-03T04:57:24.000Z",
    "joined_at": "2011-10-11T19:58:17Z",
    "lifetime_orders": 2508,
    "lifetime_revenue": 61008,
    "lifetime_visits": 9299,
    "bsft_control_bucket": "31",
    "custom_attributes": {},
    "predictive_engagement_percentile": 78,
    "predictive_purchase_intent_percentile": 86,
    "predictive_retention_percentile": 70,
    "uuid": "06743da2-9589-4c01-afda-e3d85e487fa7"
  }
}
Body Params

Create customer and update customer attributes

string
string
string
subscription_groups
array of objects
subscription_groups
string
string
string
Responses

400

Bad request - The request was invalid or cannot be otherwise served. An accompanying error message will explain further.

404

Resource not found - Can happen due to resource conflicts. Re-try with exponential backoff. Contact us on [email protected] if the issue persists.

409

Conflict error, please retry - The request could not be completed due to a conflict with the current state of the target resource, re-try with exponential backoff.

413

You can upload maximum 50 users in one api call - The server is refusing to process a request because the request payload is larger than the server is willing or able to process.

429

Rate limit exceeded - Too many requests. Contact us on [email protected] for recommended throughput.

500

Internal Server Error - Please contact blueshift for more information.

502

Service unavailable, please retry - Bad Gateway, re-try with exponential backoff.

503

Service unavailable, please retry - Service Unavailable, re-try with exponential backoff.

504

Service unavailable, please retry - Gateway Timeout, please re-try with exponential backoff.

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json