Blueshift Event API

Use the event APIs to send events from your servers.

Operations 6

POST /api/v1/bulkevents Send bulk events
GET /api/v1/data_connectors/{data_connector_uuid}/debug Debug event exports
POST /api/v1/event Send an event
GET /api/v1/event/debug Most recent event
GET /api/v1/event/history Get event history
POST /api/v1/event/summary.json Summary of events

Documentation

Specifications

Other Resources

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/blueshift-event-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 email required.

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

OpenAPI Specification

blueshift-event-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: These APIs will help you manage different workflows in Blueshift. Our powerful REST APIs provide an easy way to integrate your data and third party applications with Blueshift.
  version: 1.0.0
  title: Blueshift Event API
  contact:
    email: support@getblueshift.com
servers:
- url: https://api.getblueshift.com
- url: https://api.eu.getblueshift.com
tags:
- name: Event
  description: Use the event APIs to send events from your servers.
paths:
  /api/v1/bulkevents:
    post:
      summary: Send bulk events
      description: Use this endpoint to send multiple events from your server or use javascript events that call the API.
      tags:
      - Event
      security:
      - event_api_auth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                events:
                  type: array
                  items:
                    type: object
                    additionalProperties: true
                    required:
                    - event
                    properties:
                      customer_id:
                        type: string
                        description: 'Specify the customer ID. You must atleast specify this value, or one or more of the following: event/device_id/email.'
                        example: '48759893'
                      event:
                        type: string
                        description: 'Specify the name of the event. For example, view (product view), add_to_cart, remove_from_cart, checkout, purchase, search, your_custom_event_name (custom event) etc. You must atleast specify this value, or one or more of the following: customer_id/device_id/email.'
                        example: add_to_cart
                      device_type:
                        type: string
                        description: Specify the type of the device. For example, ios or android.
                        example: android
                      device_tokens:
                        type: string
                        description: Specify the token of the device.
                        example: 12d34a5ccf37db694d48d89740bbc1f94da08e25930fc773d2af2aefdd98989c9
                      device_id:
                        type: string
                        description: 'Specify the UUID of the device. You must atleast specify this value, or one or more of the following: event/customer_id/email.'
                        example: 8abe3faa-d48d-4e4a-00ca-beae01f1c987
                      device_idfa:
                        type: string
                        description: Sepcify the advertising identifier (idfa) on the device.
                        example: 39c20522-2ce9-4466-9876-7677b89e4d3b
                      device_idfv:
                        type: string
                        description: Specify the identfier for vendor (idfv) on the device.
                        example: 6d031ec8-e40c-47d4-9c99-b3e308d8ed78
                      device_manufacturer:
                        type: string
                        description: Specify the manufacturer of the device.
                        example: apple
                      os_name:
                        type: string
                        description: Specify the OS name.
                        example: ios
                      network_carrier:
                        type: string
                        description: Specify the carrier on the mobile device.
                        example: verizon
                      ip:
                        type: string
                        description: Specify the IP address of the device.
                        example: 192.0.2.1
                      email:
                        type: string
                        description: 'Specify the user''s email address. You must atleast specify this value, or one or more of the following: event/device_id/customer_id.'
                        example: janedoe@acme.com
                      latitude:
                        type: string
                        description: Specify the latitude of the user's location.
                        example: '212.99333'
                      longitude:
                        type: string
                        description: Specify the longitude of the user's location.
                        example: '-12.39334'
                      subscription_groups:
                        type: array
                        description: Specify the user's subscription preferences.
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The ID of the subscription group.
                            subscribed:
                              type: boolean
                              description: Enter `true` if the user is subscribed, or `false` if unsubscribed.
                        example:
                        - id: newsletter
                          subscribed: true
                        - id: weekly_promo
                          subscribed: false
                    example:
                    - customer_id: abc812122
                      event: identify
                      device_type: ios
                      device_tokens: '49244924492449244924492449244924492449244924'
                      device_id: 8abe3faa-d48d-4e4a-00ca-beae01f1c987
                      device_idfa: 4d031ed8-c40e-57d4-9c99-a3e308d8cd78
                      device_idfv: 6d031ec8-e40c-47d4-9c99-b3e308d8ed78
                      device_manufacturer: apple
                      os_name: ios
                      network_carrier: verizon
                      ip: 201.44.11.21
                      email: jane.doe@acme.com
                      latitude: '212.99333'
                      longitude: '-12.39334'
                      subscription_groups:
                      - id: newsletter
                        subscribed: true
                      - id: weekly_promo
                        subscribed: false
                    - customer_id: '812123'
                      event: purchase
                      ip: 201.44.11.22
                      email: jane.doe@acme.com
                      revenue: '31.24'
        description: Specify device_id. The device_id is the mobile specific (iOS or Android) device identifier to uniquely identify the mobile device.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: ok or bad request
                    example: ok
                  count:
                    type: integer
                    description: The count of events sent
                    example: 0
        '400':
          description: Bad Request - The request was invalid or cannot be otherwise served. An accompanying error message will explain further.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        customer_id:
                          type: string
                          example: can't be blank
        '401':
          description: Unauthorized - API authentication failed due to an invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not authorized
        '403':
          description: Forbidden - The API key does not have sufficient permissions to perform this action.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Forbidden
        '404':
          description: Not Found - The requested resource was not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not Found
        '413':
          description: "You can upload maximum 100 products in one api call\t- The server is refusing to process a request because the request payload is larger than the server is willing or able to process."
        '422':
          description: Unprocessable Entity - Some/all of the products have invalid data, please check the response for more information on.
        '429':
          description: Rate limit exceeded - Too many requests
        '500':
          description: "Internal Server Error\t- Please contact blueshift for more information"
        '502':
          description: Service unavailable, please retry - Bad Gateway, re-try with exponential backoff
        '503':
          description: Service unavailable, please retry - Service Unavailable, re-try with exponential backoff
        '504':
          description: Service unavailable, please retry - Gateway Timeout, please re-try with exponential backoff
  /api/v1/data_connectors/{data_connector_uuid}/debug:
    get:
      summary: Debug event exports
      description: Use this endpoint to download the first 10 success and errored events in last 5 minutes.
      tags:
      - Event
      security:
      - event_api_auth: []
      parameters:
      - in: path
        name: data_connector_uuid
        required: true
        description: Specify the UUID of the data connector (event export integration).
        schema:
          type: string
        example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: array
                    items:
                      type: object
                      description: Returns the success API request payload.
                      properties:
                        api_key:
                          type: string
                          description: Masked API key used in the payload.
                        events:
                          type: array
                          items:
                            type: object
                            description: Array of event payloads which was sent to destination.
                  failure:
                    type: array
                    items:
                      type: object
                      description: Returns the errored API request payload.
                      properties:
                        _bsft_outbound_data_error:
                          type: string
                          description: The error message for the errored API request.
                        events:
                          type: array
                          items:
                            type: object
                            description: Array of event payloads which was sent to destination.
        '400':
          description: Bad Request - The request is invalid due to missing or incorrect parameters. This includes missing fields, invalid values, formatting issues, or conflicts such as duplicate data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Bad Request
        '401':
          description: Unauthorized - The User API key was incorrect or this feature is not enabled for your account.
        '403':
          description: Forbidden - The API key does not have sufficient permissions to perform this action.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Forbidden
        '404':
          description: Resource not found. This can happen due to resource conflicts. Retry with exponential backoff. If the issue persists, contact Blueshift.
        '422':
          description: Unprocessable Entity - The request was well-formed but contains semantic errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Validation failed
        '429':
          description: Too Many Requests - The request limit has been exceeded. Reduce request frequency.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Too Many Requests
        '500':
          description: Internal Server Error - An unexpected server error occurred. Contact support if the issue persists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Internal Server Error
        '502':
          description: Bad Gateway - The server received an invalid response. Retry the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Bad Gateway
        '503':
          description: Service Unavailable - The service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Service Unavailable
        '504':
          description: Gateway Timeout - The server took too long to respond. Retry the request with exponential backoff.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Gateway Timeout
  /api/v1/event:
    post:
      summary: Send an event
      description: Use this endpoint to send an event from your server or use javascript events to call the API.
      tags:
      - Event
      security:
      - event_api_auth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              required:
              - event
              properties:
                customer_id:
                  type: string
                  description: 'Specify the customer ID. You must specify information in either this field or atleast in one of the following fields: `event`, `device_id`, `email`, or `group_id`. These fields are described below.'
                  example: '812123'
                event:
                  type: string
                  description: "Specify the name of the event. For example identify, view (product view), add_to_cart, remove_from_cart, checkout, purchase, search, your_custom_event_name (custom event) etc. You must atleast specify this value, or one or more of the following fields: customer_id/device_id/email. \n > **\U0001F4D8** Ensure that the event name does not contain periods (`.`), whitespaces, is not a numeric value, and contains not more than 64 characters.\n"
                  example: identify
                device_type:
                  type: string
                  description: Specify the type of the device.
                  example: ios
                device_token:
                  type: string
                  description: "Specify the token of the device.\n > **\U0001F4D8** If you use the event API to identify a user from a mobile app, ensure that you also include `device_id` and `device_token` parameters in your API call. However, we recommend that you use our SDK to identify users on a mobile app. For more information, see [Track events on your Android app](https://developer.blueshift.com/docs/events-tracking-android-sdk) and [Track events on your iOS app](https://developer.blueshift.com/docs/track-events-on-your-app-with-blueshifts-ios-sdk).\n"
                  example: '49244924492449244924492449244924492449244924'
                device_id:
                  type: string
                  description: "Specify the UUID of the device. You must atleast specify this value, or one or more of the following fields: event/customer_id/email.\n > **\U0001F4D8** If you use the event API to identify a user from a mobile app, ensure that you also include `device_id` and `device_token` parameters in your API call.  However, we recommend that you use our SDK to identify users on a mobile app. For more information, see [Track events on your Android app](https://developer.blueshift.com/docs/events-tracking-android-sdk) and [Track events on your iOS app](https://developer.blueshift.com/docs/track-events-on-your-app-with-blueshifts-ios-sdk).\n"
                  example: 8abe3faa-d48d-4e4a-00ca-beae01f1c987
                device_idfa:
                  type: string
                  description: Sepcify the advertising identifier (idfa) on the device.
                  example: 4d031ed8-c40e-57d4-9c99-a3e308d8cd78
                device_idfv:
                  type: string
                  description: Specify the identfier for vendor (idfv) on the device.
                  example: 6d031ec8-e40c-47d4-9c99-b3e308d8ed78
                device_manufacturer:
                  type: string
                  description: Specify the manufacturer of the device.
                  example: apple
                os_name:
                  type: string
                  description: Specify the OS name.
                  example: ios
                network_carrier:
                  type: string
                  description: Specify the carrier on the mobile device.
                  example: verizon
                ip:
                  type: string
                  description: Specify the IP address of the device.
                  example: 192.0.2.1
                email:
                  type: string
                  description: 'Specify the user''s email address. For example, abc@def.com. You must atleast specify this value, or one or more of the following fields: event/device_id/customer_id.'
                  example: janedoe@acme.com
                latitude:
                  type: string
                  description: Specify the latitude of the user's location.
                  example: '212.99333'
                longitude:
                  type: string
                  description: Specify the longitude of the user's location.
                  example: '-12.39334'
                event_uuid:
                  type: string
                  description: Specify a unique identifier of the event in the format `1234abcd-efghijkj-1234kfjadslk-34iu123`. For reference on the UUID format, see [RFC 4122](https://tools.ietf.org/html/rfc4122.html). Ensure that the `event_uuid` that you specify is unique. This is an optional field and you can leave this field blank.
                  example: 4f575aa4-082c-12ed-dd00-0676ac110004
                cookie:
                  type: string
                  description: User's Blueshift cookie used as an identifier for anonymous users.
                  example: 8d74322c-7bb6-44f1-18ce-6a92c5a9672f
                subscription_groups:
                  type: array
                  description: Specify the user's subscription preferences.
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: The ID of the subscription group.
                      subscribed:
                        type: boolean
                        description: Enter `true` if the user is subscribed, or `false` if unsubscribed.
                  example:
                  - id: newsletter
                    subscribed: true
                  - id: weekly_promo
                    subscribed: false
        description: Specify device_id. The device_id is the mobile specific (iOS or Android) device identifier to uniquely identify the mobile device.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: OK or Bad request
                    example: OK
        '400':
          description: Bad Request - The request was invalid or cannot be otherwise served. An accompanying error message will explain further.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        customer_id:
                          type: string
                          example: can't be blank
        '401':
          description: Unauthorized - API authentication failed due to an invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not authorized
        '403':
          description: Forbidden - The API key does not have sufficient permissions to perform this action.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Forbidden
        '404':
          description: Not Found - The requested resource was not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not Found
        '413':
          description: You can upload upto 100 products in an 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.
        '422':
          description: Unprocessable Entity - Some/all of the products have invalid data, please check the response for more information on.
        '429':
          description: Rate limit exceeded - Too many requests
        '500':
          description: "Internal Server Error\t- Please contact blueshift for more information"
        '502':
          description: Service unavailable, please retry - Bad Gateway, re-try with exponential backoff
        '503':
          description: Service unavailable, please retry - Service Unavailable, re-try with exponential backoff
        '504':
          description: Service unavailable, please retry - Gateway Timeout, please re-try with exponential backoff
  /api/v1/event/debug:
    get:
      summary: Most recent event
      description: Use this endpoint to fetch the most recent event. It returns the latest events our server has received for each event type.
      tags:
      - Event
      security:
      - event_api_auth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  customer_id:
                    type: string
                    example: '812123'
                    description: The customer ID.
                  event:
                    type: string
                    description: The name of the event. For example, identify, view (product view), add_to_cart, remove_from_cart, checkout, purchase, search, your_custom_event_name (custom event) etc.
                    example: identify
                  device_type:
                    type: string
                    description: The type of the device. For example, ios or android.
                    example: ios
                  device_tokens:
                    type: string
                    description: The token of the device.
                    example: '49244924492449244924492449244924492449244924'
                  device_id:
                    type: string
                    description: The UUID of the device.
                    example: 8abe3faa-d48d-4e4a-00ca-beae01f1c987
                  device_idfa:
                    type: string
                    description: The advertising identifier (idfa) on the device.
                    example: 4d031ed8-c40e-57d4-9c99-a3e308d8cd78
                  device_idfv:
                    type: string
                    description: The identfier for vendor (idfv) on the device.
                    example: 6d031ec8-e40c-47d4-9c99-b3e308d8ed78
                  device_manufacturer:
                    type: string
                    description: The manufacturer of the device.
                    example: apple
                  os_name:
                    type: string
                    description: The OS name.
                    example: ios
                  network_carrier:
                    type: string
                    description: The carrier on the mobile device.
                    example: verizon
                  ip:
                    type: string
                    description: The IP address of the device.
                    example: 123.123.123.123
                  email:
                    type: string
                    description: The user's email address.
                    example: janedoe@acme.com
                  latitude:
                    type: string
                    description: The latitude of the user's location.
                    example: '212.99333'
                  longitude:
                    type: string
                    description: The longitude of the user's location.
                    example: '-12.39334'
        '400':
          description: Bad Request - The request is invalid due to missing or incorrect parameters. This includes missing fields, invalid values, formatting issues, or conflicts such as duplicate data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Bad Request
        '401':
          description: Unauthorized - API authentication failed due to an invalid or missing API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not authorized
        '403':
          description: Forbidden - The API key does not have sufficient permissions to perform this action.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Forbidden
        '404':
          description: Not Found - The requested resource was not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Not Found
        '422':
          description: Unprocessable Entity - The request was well-formed but contains semantic errors.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Validation failed
        '429':
          description: Too Many Requests - The request limit has been exceeded. Reduce request frequency.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Too Many Requests
        '500':
          description: Internal Server Error - An unexpected server error occurred. Contact support if the issue persists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Internal Server Error
        '502':
          description: Bad Gateway - The server received an invalid response. Retry the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Bad Gateway
        '503':
          description: Service Unavailable - The service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Service Unavailable
        '504':
          description: Gateway Timeout - The server took too long to respond. Retry the request with exponential backoff.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Gateway Timeout
  /api/v1/event/history:
    get:
      tags:
      - Event
      summary: Get event history
      description: Retrieves up to 50 most recent successful events for the given event name, starting with the latest.
      security:
      - event_api_auth: []
      parameters:
      - in: query
        name: event_name
        required: true
        description: The name of the event for which to fetch history.
        schema:
          type: string
        example: app_install
      - in: query
        name: limit
        required: false
        description: 'Maximum number of records to return. Defaults to system limit if not specified.


          **Maximum value**: `50`.'
        schema:
          type: integer
          maximum: 50
        example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: object
                    properties:
                      _bsft_ts:
                        type: string
                        format: date-time
                        description: Event ingestion timestamp in ISO 8601 format.
                        example: '2025-09-17T10:26:55.000Z'
                      account_uuid:
                        type: string
                        description: UUID of the Blueshift account.
                        example: 11112222-3333-4444-5555-666677778888
                      event:
                        type: string
                        description: The event name.
                        example: app_install
                      event_uuid:
                        type: string
                        description: The unique UUID for this event occurrence.
                        example: aaaa1111-bbbb-2222-cccc-3333dddd4444
                 

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/blueshift/refs/heads/main/openapi/blueshift-event-api-openapi.yml