Talon.One Emarsys API

Emarsys is a customer engagement platform that enables marketers to build, launch, and scale personalized cross-channel promotional campaigns that have measurable impact. Use these endpoints to integrate with Talon.One.

Operations 3

POST /emarsys/customer_profiles/coupons Get coupon (Emarsys) #
POST /emarsys/loyalty_programs/profile/balance Get loyalty balance (Emarsys) #
POST /emarsys/customer_profiles/audiences Update audiences in multiple customer profiles (Emarsys) #

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/talon-one-emarsys-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

talon-one-emarsys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: ''
  title: Third-party Emarsys API
  description: "Use the Third-party API to exchange data between Talon.One and one of the supported [technology partners](https://docs.talon.one/docs/dev/technology-partners/overview).\n\nFor example, use the Braze-specific endpoints from your Braze campaigns to interact with Talon.One.\n\nIf the CDP or CEP you are using isn't listed here, use the generic\n[Customer Data Platforms](#tag/Customer-data-platforms) and [Customer Engagement Platform](#tag/Customer-engagement-platforms) endpoints.\n\n> [!note] \n> All endpoints of this API start with `https://integration.talon.one`.\n> You must specify the base URL of your deployment in the headers or parameters.\n\n> [!note] **Are you looking for a different API?**\n> - To implement use cases that aren't covered by the Third-party API, see the [Integration API](https://docs.talon.one/management-api).\n> - To interact with the Campaign Manager for back-office operations, see the [Management API](https://docs.talon.one/management-api).\n"
servers:
- url: https://integration.talon.one
security:
- ApiKeyAuth: []
tags:
- name: Emarsys
  description: 'Emarsys is a customer engagement platform that enables marketers to build, launch, and scale personalized cross-channel promotional campaigns that have measurable impact.


    Use these endpoints to integrate with Talon.One.

    '
paths:
  /emarsys/customer_profiles/coupons:
    post:
      security:
      - ApiKeyBasicAuth: []
      tags:
      - Emarsys
      summary: Get coupon (Emarsys)
      operationId: emarsys/getCoupon
      description: 'Retrieve a coupon code from Talon.One.

        '
      parameters:
      - $ref: '#/components/parameters/deployment'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmarsysCouponRequest'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmarsysCouponResponse'
              examples:
                default:
                  $ref: '#/components/examples/EmarsysCouponResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /emarsys/loyalty_programs/profile/balance:
    post:
      security:
      - ApiKeyBasicAuth: []
      tags:
      - Emarsys
      summary: Get loyalty balance (Emarsys)
      operationId: emarsys/getLoyaltyProgramBalance
      description: 'Retrieve the loyalty balance of a customer profile from Talon.One.


        This endpoint only works with [profile-based](https://docs.talon.one/docs/product/loyalty-programs/profile-based/profile-based-overview) loyalty programs.

        '
      parameters:
      - $ref: '#/components/parameters/deployment'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmarsysLoyaltyBalanceRequest'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmarsysLoyaltyBalanceResponse'
              examples:
                default:
                  $ref: '#/components/examples/EmarsysLoyaltyBalanceResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /emarsys/customer_profiles/audiences:
    post:
      security:
      - ApiKeyBasicAuth: []
      tags:
      - Emarsys
      summary: Update audiences in multiple customer profiles (Emarsys)
      operationId: emarsys/v2/updateCustomerProfilesAudiences
      description: 'Update the specified audiences for the specified profiles. To identify the audience, you can use its ID in the third-party integration.


        If a provided customer profile doesn''t exist, it will be created.

        '
      parameters:
      - $ref: '#/components/parameters/deployment'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmarsysCustomerProfilesAudiencesRequest'
            examples:
              default:
                $ref: '#/components/examples/EmarsysCustomerProfilesAudiencesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmarsysUpdateAudiencesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponseWithStatus'
          examples:
            default:
              value:
                StatusCode: 404
                Error: Not Found
                RequestUUID: fd2f7c55-d064-46e1-ab87-a39cb877cd82
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponseWithStatus'
          examples:
            default:
              value:
                StatusCode: 401
                Error: Missing Session Token
                RequestUUID: fd2f7c55-d064-46e1-ab87-a39cb877cd82
    TooManyRequests:
      description: Too many requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponseWithStatus'
          examples:
            default:
              value:
                StatusCode: 429
                Error: Too many requests
                RequestUUID: fd2f7c55-d064-46e1-ab87-a39cb877cd82
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponseWithStatus'
          examples:
            default:
              value:
                StatusCode: 400
                Error: No Deployment URL specified
                RequestUUID: fd2f7c55-d064-46e1-ab87-a39cb877cd82
  parameters:
    deployment:
      name: deployment
      in: query
      description: The base URL of your Talon.One deployment.
      schema:
        type: string
      required: true
      example: mycompany.europe-west1.talon.one
  examples:
    EmarsysLoyaltyBalanceResponse:
      value:
        content:
        - integrationId: test-user-4zoj1c
          loyaltyProgramId: '8431'
          activeBalance: 100
          pendingBalance: 0
          expiredBalance: 0
          totalBalance: 100
    EmarsysCustomerProfilesAudiencesRequest:
      value:
        parameters:
        - customerProfileId: customer123
          audienceId: 1
          actionType: add
    EmarsysCouponResponse:
      value:
        content:
        - integrationId: test-user-4zoj1c
          campaignId: '8431'
          id: 26443683
          created: '2024-01-03T11:28:25.648154Z'
          value: QQ4R-C3BQ
          usageLimit: 1
          usageCounter: 0
          recipientIntegrationId: test-user-4zoj1c
          reservation: false
          batchId: qndflqqd
          profileRedemptionCount: 0
          state: active
  schemas:
    errorResponseWithStatus:
      type: object
      properties:
        StatusCode:
          type: integer
          description: The error code.
          example: 400
        Error:
          type: string
          example: Bad request
        RequestUUID:
          type: string
          example: 51fad142-3563-4fe2-b4aa-41ab20be31d911
    EmarsysCustomerProfilesAudiencesRequest:
      type: object
      required:
      - parameters
      properties:
        parameters:
          type: array
          maxItems: 1000
          items:
            type: object
            required:
            - customerProfileId
            - audienceId
            - actionType
            properties:
              customerProfileId:
                type: string
                description: The integration ID of the customer profile.
                example: customer123
              audienceId:
                type: string
                description: The internal ID of the audience. Must be a string containing the numeric ID of an existing audience.
                example: '1'
              actionType:
                type: string
                description: The action to perform.
                enum:
                - add
                - delete
                example: add
    EmarsysLoyaltyBalanceResponse:
      properties:
        content:
          type: array
          description: 'The requested loyalty balance, including the properties specified in the `fields` parameter.

            '
          items:
            type: object
            required:
            - loyaltyProgramId
            - integrationId
            properties:
              loyaltyProgramId:
                type: string
                description: The ID of the loyalty program in Talon.One.
                example: '34'
              integrationId:
                type: string
                description: The integration ID of the customer profile.
                example: URNGV8294NV
              subledgerId:
                type: string
                description: The ID of the subledger from which the loyalty balance was retrieved. Returned only if a subledger ID was provided in the request.
                example: subledger-123
              activeBalance:
                type: number
                description: Total amount of points awarded to this customer and available to spend.
                example: 100
              pendingBalance:
                type: number
                description: Total amount of points awarded to this customer but not available until their start date.
                example: 50
              expiredBalance:
                type: number
                description: Total amount of points awarded but never redeemed. They cannot be used anymore.
                example: 0
              spentBalance:
                type: number
                description: Total amount of points already spent by this customer.
                example: 50
    EmarsysCouponResponse:
      properties:
        content:
          type: array
          description: 'The relevant coupon-related content, including the properties passed in the `fields` array of the request.

            '
          items:
            type: object
            required:
            - campaignId
            - integrationId
            properties:
              campaignId:
                type: string
                description: The ID of the campaign in Talon.One. It is displayed in your Talon.One deployment URL.
                example: '34'
              integrationId:
                type: string
                description: The integration ID of the customer profile.
                example: URNGV8294NV
    EmarsysUpdateAudiencesResponse:
      type: object
      properties:
        content:
          type: array
          items:
            type: object
            properties:
              customerProfileId:
                type: string
                example: profile-1
              audienceId:
                type: string
                example: '1'
              actionType:
                type: string
                example: add
    EmarsysLoyaltyBalanceRequest:
      type: object
      required:
      - fields
      - limit
      - parameters
      properties:
        parameters:
          type: array
          items:
            properties:
              loyaltyProgramId:
                type: string
                description: The ID of the loyalty program in Talon.One.
                example: '34'
              integrationId:
                type: string
                description: The integration ID of the customer profile.
                example: URNGV8294NV
              subledgerId:
                type: string
                description: The ID of the subledger from which to retrieve the loyalty balance. If not provided, the loyalty balance is retrieved from the main ledger.
                example: subledger-123
            required:
            - loyaltyProgramId
            - integrationId
        fields:
          type: array
          description: 'Additional fields to include in the response.

            Valid fields are `activeBalance`, `pendingBalance`, `expiredBalance`, and `spentBalance`.

            '
          example:
          - activeBalance
          - pendingBalance
          items:
            type: string
    EmarsysCouponRequest:
      type: object
      required:
      - fields
      - limit
      - parameters
      properties:
        parameters:
          type: array
          items:
            properties:
              campaignId:
                type: string
                description: The ID of the campaign in Talon.One. It is displayed in your Talon.One deployment URL.
                example: '34'
              integrationId:
                type: string
                description: The integration ID of the customer profile.
                example: URNGV8294NV
        fields:
          type: array
          description: 'Any additional data we want in the response.


            **Note:** For the supported `fields`, see the [List customer data](https://docs.talon.one/integration-api#tag/Customer-profiles/operation/getCustomerInventory) response (any nested arrays and objects are discarded from the response).

            In addition to this, custom attributes are supported.

            '
          example:
          - id
          - created
          items:
            type: string
        limit:
          type: number
          minimum: 0
          example: 1000
          description: The value to set for the limit.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: "To authenticate to use these endpoints, create a Third-party API key in the Campaign Manager:\n\n1. Sign in to the Campaign Manager, and open the [Application](https://docs.talon.one/docs/product/applications/overview) of your choice.\n2. Click **Settings** > **Integration API Keys**.\n3. Click **Create API Key**.\n4. In the **Create API Key** drawer, if you are asked for a key type, select **Production**.\n5. In **Key name**, type a name to identify the key.\n6. In **Key expiration date**, select a date.\n   \n   **Tip**: Avoid choosing expiration dates that fall at the end of\n   the year or during other high-traffic periods.\n\n7. In **Third-party integration**, select **Yes** and the platform to integrate with.\n8. Click **Create API Key**, and copy the generated value for use.\n\nYou can now use the API key in the `Authorization` HTTP header of your requests, prefixing it with `ApiKey-v1 `:\n\n```\nAuthorization: ApiKey-v1 dbc644d33aa74d582bd9479c59e16f970fe13bf3\n```\n"
    ApiKeyBasicAuth:
      type: http
      scheme: basic
      description: "To authenticate to use these endpoints, create a Third-party API key in the Campaign Manager:\n\n1. Sign in to the Campaign Manager, and open the [Application](https://docs.talon.one/docs/product/applications/overview) of your choice.\n2. Click **Settings** > **Integration API Keys**.\n3. Click **Create API Key**.\n4. In the **Create API Key** drawer, if you are asked for a key type, select **Production**.\n5. In **Key name**, type a name to identify the key.\n6. In **Key expiration date**, select a date.\n\n   **Tip**: Avoid choosing expiration dates that fall at the end of\n   the year or during other high-traffic periods.\n   \n7. In **Third-party integration**, select **Yes** and the platform to integrate with.\n8. Click **Create API Key**, and copy the generated value for use.\n9. Modify the generated value by prefixing it with `ApiKey-v1 ` and suffixing it with `:`. For example: `ApiKey-v1 <generated-api-key>:`.\n10. Encode this modified value to Base64.\n\nYou can now use the API key, prefixing the Base64-encoded string with `Authorization: Basic `:\n\n```\nAuthorization: Basic YmFzZTY0ZW5vZGV0aGlzcGxlYXNlYXNhcDQzMjE0MTI=\n```\n"