Talon.One Third-party API

Third-party API used by customer data platforms (CDPs) and customer engagement platforms (CEPs) to exchange data with Talon.One. Ships platform-specific endpoint families for Braze, Emarsys, Iterable, mParticle and Segment plus generic CDP and CEP endpoints. All endpoints are served from the shared host https://integration.talon.one and take the customer deployment as a parameter.

OpenAPI Specification

talon-one-third-party-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  version: ''
  title: Third-party 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).

    For example, use the Braze-specific endpoints from your Braze campaigns to interact with Talon.One.

    If the CDP or CEP you are using isn't listed here, use the generic
    [Customer Data Platforms](#tag/Customer-data-platforms) and [Customer Engagement Platform](#tag/Customer-engagement-platforms) endpoints.

    > [!note] 
    > All endpoints of this API start with `https://integration.talon.one`.
    > You must specify the base URL of your deployment in the headers or parameters.

    > [!note] **Are you looking for a different API?**
    > - To implement use cases that aren't covered by the Third-party API, see the [Integration API](https://docs.talon.one/management-api).
    > - To interact with the Campaign Manager for back-office operations, see the [Management API](https://docs.talon.one/management-api).
servers:
  - url: https://integration.talon.one
security:
  - ApiKeyAuth: []
tags:
  - name: Braze
    description: |
      [Braze](https://www.braze.com/) is a customer engagement platform to manage customer-centric interactions between consumers and brands in real-time.

      Use these endpoints to automate the creation of coupon and referral codes
      and deliver them to specific customer segments. To send requests to these endpoints, use the
      [connected content feature](https://www.braze.com/docs/user_guide/personalization_and_dynamic_content/connected_content/connected_content_retries) in Braze.

      For more information, see our integration examples in [the developer docs](https://docs.talon.one/docs/dev/technology-partners/braze).
  - name: Customer data platforms
    description: |
      You can integrate with any customer data platform, or CDP, using the following endpoints designed for third-party tools, rather than your own integration layer.

      Use these endpoints to automate the creation of coupon and referral codes and deliver them to specific customer segments.
  - name: Customer engagement platforms
    description: |
      You can integrate with any customer engagement platform, or CEP, using the following endpoints designed for third-party tools, rather than your own integration layer.

      Use these endpoints to automate the creation of coupon and referral codes and deliver them to specific customer segments.

      For more information, see our integration examples in [the developer docs](https://docs.talon.one/docs/dev/technology-partners/cep/integrating-cep).
  - 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.
  - name: Iterable
    description: |
      [Iterable](https://iterable.com/) is a cross-channel marketing platform that powers unified customer experiences
      and empowers you to create, optimize and measure every interaction across the entire customer journey.

      Use these endpoints to automate the creation of coupon and referral codes
      and deliver them to specific customer segments. To send requests to these endpoints, use the
      [data feed feature](https://support.iterable.com/hc/en-us/articles/360044425931#enable-template-generation-using-data-feeds) in Iterable.

      For more information, see our integration examples in [the developer docs](https://docs.talon.one/docs/dev/technology-partners/iterable).
  - name: mParticle
    description: |
      [mParticle](https://www.mparticle.com/) is the customer data platform that helps unify data and simplify partner integrations with enterprise-class security and reliability.

      For more information, see our integration examples in [the developer docs](https://docs.talon.one/docs/dev/technology-partners/mparticle).
  - name: Segment
    description: |
      [Segment](https://segment.com/) is a customer data platform that collects events from your web & mobile apps.

      Use these endpoints to integrate with Talon.One.
paths:
  /braze/referral:
    post:
      tags:
        - Braze
      summary: Create referral (Braze)
      operationId: braze/createReferral
      description: |
        Create a referral code in Talon.One. To use it in your Braze deployment, see [the tutorial](https://docs.talon.one/docs/dev/technology-partners/braze/creating-referrals-braze).
      parameters:
        - $ref: '#/components/parameters/dryRun'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReferralRequest'
            examples:
              default:
                $ref: '#/components/examples/ReferralRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferralResponse'
              examples:
                default:
                  $ref: '#/components/examples/ReferralResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /braze/coupon:
    post:
      tags:
        - Braze
      summary: Create coupon (Braze)
      operationId: braze/createCoupon
      description: |
        Create a coupon code in Talon.One. To use it in your Braze deployment, see [the tutorial](https://docs.talon.one/docs/dev/technology-partners/braze/creating-coupons-braze).

        You can also use this endpoint to get an existing coupon's details by setting the `identifier` property to a value you previously used.

        > [!tip]
        > You can edit the default coupon code format in the [campaign's settings](https://docs.talon.one/docs/product/campaigns/coupons/coupon-page-overview#editing-coupon-format).
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrazeCouponRequest'
            examples:
              default:
                $ref: '#/components/examples/BrazeCouponRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrazeCouponResponse'
              examples:
                default:
                  $ref: '#/components/examples/BrazeCouponResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /braze/coupon_reservation:
    post:
      tags:
        - Braze
      summary: Create coupon reservation (Braze)
      operationId: braze/createCouponReservation
      description: |
        Create a coupon reservation for a specified customer profile on the specified coupon.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CouponReservationRequest'
            examples:
              default:
                $ref: '#/components/examples/CouponReservationRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponReservationResponse'
              examples:
                default:
                  $ref: '#/components/examples/CouponReservationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /braze/event:
    post:
      tags:
        - Braze
      summary: Track event (Braze)
      operationId: braze/trackEvent
      description: |
        Triggers a custom event inside Talon.One. You can then trigger rules when this event is received.

        An event is a type of custom attribute. You must create it first in the Campaign Manager. See [creating custom events](https://docs.talon.one/docs/dev/concepts/entities/events#custom-events).
        To see the events received by your Application in Talon.One, open the Application and click **Events**.

        For more information, see [the tutorial](https://docs.talon.one/docs/dev/technology-partners/braze/adding-loyalty-points-braze).
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrazeTrackEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /iterable/coupon:
    get:
      tags:
        - Iterable
      summary: Create coupon (Iterable)
      operationId: iterable/createCoupon
      description: |
        Create a coupon code in Talon.One. To use it in your Iterable deployment and generate
        the request, see [the tutorial](https://docs.talon.one/docs/dev/technology-partners/iterable/creating-coupons-iterable).

        > [!tip]
        > You can edit the default coupon code format in the [campaign's settings](https://docs.talon.one/docs/product/campaigns/coupons/coupon-page-overview#editing-coupon-format).
      parameters:
        - $ref: '#/components/parameters/deployment'
        - $ref: '#/components/parameters/applicationId'
        - $ref: '#/components/parameters/campaignId'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/expiryDate'
        - $ref: '#/components/parameters/discountLimit'
        - $ref: '#/components/parameters/iterableCampaignId'
        - $ref: '#/components/parameters/recipientIntegrationId'
        - $ref: '#/components/parameters/usageLimitCoupons'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CouponResponse'
              examples:
                default:
                  $ref: '#/components/examples/CouponResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /iterable/referral:
    get:
      tags:
        - Iterable
      summary: Create referral (Iterable)
      operationId: iterable/createReferral
      description: |
        Create a referral code in Talon.One. To use it in your Iterable deployment and generate
        the request, see [the tutorial](https://docs.talon.one/docs/dev/technology-partners/iterable/creating-referral-iterable).
      parameters:
        - $ref: '#/components/parameters/deployment'
        - $ref: '#/components/parameters/campaignId'
        - $ref: '#/components/parameters/advocateProfileIntegrationId'
        - $ref: '#/components/parameters/friendProfileIntegrationId'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/expiryDate'
        - $ref: '#/components/parameters/usageLimit'
        - $ref: '#/components/parameters/attributes'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferralResponse'
              examples:
                default:
                  $ref: '#/components/examples/ReferralResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /iterable/loyalty:
    get:
      tags:
        - Iterable
      summary: Get loyalty ledger (Iterable)
      operationId: iterable/loyalty
      description: |
        Get the loyalty ledger information of the given customer profile from Talon.One. To use it in your Iterable deployment and generate
        the request, see [the tutorial](https://docs.talon.one/docs/dev/technology-partners/iterable/getting-loyalty-iterable).

        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'
        - $ref: '#/components/parameters/profileIntegrationId'
        - $ref: '#/components/parameters/loyaltyProgramId'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /segment/customer_profile/{customerProfileId}:
    put:
      tags:
        - Segment
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
        - name: customerProfileId
          in: path
          description: The integration ID of the customer profile. If the customer profile does not exist, it will be created.
          example: customer1
          required: true
          schema:
            type: string
      summary: Upsert customer profile v1 (Segment)
      operationId: segment/updateCustomerProfile
      deprecated: true
      description: |
        > [!warning] **This endpoint is deprecated.**
        > We recommend you use the current [Update customer profile](#tag/Segment/operation/segment/v2/updateCustomerProfile) endpoint.

        Create or update the given customer profile, and creates or set the specified attributes. You can also
        use this endpoint to specify which audiences this customer has joined or left.

        > [!note] **Note**
        > The audiences must be created first using [Create audience](#tag/Segment/operation/segment/createAudience).
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentCustomerProfileRequest'
            examples:
              default:
                $ref: '#/components/examples/SegmentCustomerProfileRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProfileResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/customer_profile_v2/{customerProfileId}:
    put:
      tags:
        - Segment
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
        - name: customerProfileId
          in: path
          description: The integration ID of the customer profile.
          example: customer1
          required: true
          schema:
            type: string
      summary: Upsert customer profile v2 (Segment)
      operationId: segment/updateCustomerProfileV2
      deprecated: true
      description: |
        > [!warning] **This endpoint is deprecated.**
        > We recommend you use the current [Update customer profile](#tag/Segment/operation/segment/v2/updateCustomerProfile) endpoint.

        Create or update the given customer profile, and also creates or set the specified attributes and audiences.

        You **do not** have to create attributes or audiences before using this endpoint.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentCustomerProfileRequestV2'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProfileResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/v2/customer_profiles/{customerProfileId}:
    put:
      tags:
        - Segment
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
        - $ref: '#/components/parameters/skipNonExistingAttributes'
        - name: customerProfileId
          in: path
          description: The integration ID of the customer profile. If the customer profile does not exist, it will be created.
          example: customer1
          required: true
          schema:
            type: string
      summary: Update customer profile (Segment)
      operationId: segment/v2/updateCustomerProfile
      description: |
        Update or create a [customer profile](https://docs.talon.one/docs/dev/concepts/entities/customer-profiles). This endpoint triggers the Rule Builder.

        You can use this endpoint for the following tasks:
        - Set attributes for the given customer profile. Ensure you create the attributes in the Campaign Manager first.
        - Add the customer profile to audiences or remove it from audiences.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentCustomerProfileV2Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerProfileIntegrationResponseV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/customer_profiles/{customerProfileId}/audiences:
    put:
      tags:
        - Segment
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
        - name: customerProfileId
          in: path
          description: The integration ID of the customer profile. If the customer profile does not exist, it will be created.
          required: true
          example: customer1
          schema:
            type: string
      summary: Update customer profile audiences using external ID (Segment)
      operationId: segment/updateCustomerProfileAudiences
      description: |
        Add a [customer profile](https://docs.talon.one/docs/dev/concepts/entities/customer-profiles) to or remove it from a list of audiences. This endpoint triggers the Rule Builder.

        To identify the audience, you can use its ID in Segment.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleCustomerProfileIntegrationAudiencesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /segment/customer_profiles/audiences:
    parameters:
      - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
        - Segment
      summary: Update audiences in multiple customer profiles (Segment)
      operationId: segment/updateCustomerProfilesAudiences
      description: |
        Update the specified audiences for the specified profiles.

        If a provided customer profile doesn't exist, it will be created.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerProfilesAudiencesRequest'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
  /segment/v2/customer_profiles/audiences:
    parameters:
      - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
        - Segment
      summary: Update audiences in multiple customer profiles using external ID (Segment)
      operationId: segment/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.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerProfilesIntegrationAudiencesRequest'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /segment/event:
    parameters:
      - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
        - Segment
      summary: Track event v1 (Segment)
      operationId: segment/trackEvent
      deprecated: true
      description: |
        **Important:** This endpoint is deprecated. We recommend you use the current [Track Event](#tag/Segment/operation/segment/trackEventV2) endpoint.

        <blockquote>Triggers a custom event inside Talon.One. You can then trigger rules when this event is received.

        An event is a type of custom attribute, you must create it first in the Campaign Manager. See [creating custom events](https://docs.talon.one/docs/dev/concepts/entities/events#custom-events).
        To see the events received by your Application in Talon.One, open the Application and click **Events**.

        If the specified session already exists, it must belong to the same `profileId` or an error will be returned.</blockquote>
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentTrackEventRequest'
            examples:
              default:
                $ref: '#/components/examples/SegmentTrackEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/v2/events:
    parameters:
      - $ref: '#/components/parameters/destinationHostname'
      - $ref: '#/components/parameters/skipNonExistingAttributes'
    put:
      tags:
        - Segment
      summary: Track event v2 (Segment)
      operationId: segment/trackEventV2
      description: |
        Trigger a custom event inside Talon.One. You can then trigger rules when this event is received.

        An event is a type of custom attribute, you must create it first in the Campaign Manager. See [creating custom events](https://docs.talon.one/docs/dev/concepts/entities/events#custom-events).
        To see the events received by your Application in Talon.One, open the Application and click **Events**.

        If the specified session already exists, it must belong to the same `profileId`, or else an error is returned.

        > [!note] **Note**
        > - Create the event and all the required attributes before using this endpoint.
        > - This `v2` version replaces the previous `v1` version of this endpoint.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SegmentTrackEventV2Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/audiences:
    parameters:
      - $ref: '#/components/parameters/destinationHostname'
    post:
      tags:
        - Segment
      summary: Create audience (Segment)
      operationId: segment/createAudience
      description: |
        Create an audience. The audience can be created directly from scratch or can come from Segment.

        Once you create your first audience, audience-specific rule conditions are enabled in the Rule Builder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAndUpdateAudienceRequest'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAndUpdateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/AudienceAlreadyExist'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
  /segment/audiences/{audienceId}:
    parameters:
      - $ref: '#/components/parameters/audienceId'
      - $ref: '#/components/parameters/destinationHostname'
    put:
      tags:
        - Segment
      summary: Update audience (Segment)
      operationId: segment/updateAudience
      description: |
        Update an audience.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAndUpdateAudienceRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAndUpdateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
    delete:
      tags:
        - Segment
      summary: Delete audience (Segment)
      operationId: segment/deleteAudience
      description: |
        Delete the audience.

        **Warning:** This endpoint also removes any associations recorded between a customer profile and this audience.
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequests'
  /segment/customer_sessions/{customerSessionId}:
    put:
      tags:
        - Segment
      summary: Update customer session v1 (Segment)
      operationId: segment/updateCustomerSession
      deprecated: true
      description: |
        **Important:** This endpoint is deprecated. We recommend you use the current [Update customer session](#tag/Segment/operation/segment/v2/updateCustomerSession) endpoint.

        <blockquote>Update the given customer session, or creates it if it doesn't exist.

        Customer sessions are a key concept in Talon.One, see the [documentation](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions).

        This endpoint also allows you to define a callback where the response will be sent. See the **Header parameters** section below.</blockquote>
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
        - $ref: '#/components/parameters/callbackDestinationURI'
        - $ref: '#/components/parameters/callbackAPIKey'
        - $ref: '#/components/parameters/contentFields'
        - $ref: '#/components/parameters/correlationID'
        - name: customerSessionId
          in: path
          description: |
            The `integration ID` of the customer session. You set this ID when you create a customer session.

            You can see existing customer session integration IDs in the Campaign Manager's **Sessions** menu, or via the
            [List Application session endpoint](https://docs.talon.one/management-api#operation/getApplicationSessions).
          example: session1
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerSessionRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStateV2'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/SegmentTooManyRequestsOrParallel'
  /segment/v2/customer_sessions/{customerSessionId}:
    put:
      tags:
        - Segment
      summary: Update customer session v2 (Segment)
      operationId: segment/v2/updateCustomerSession
      description: |
        Update the given customer session, or create a customer session if it doesn't exist.

        Customer sessions are a key concept in Talon.One, see the [documentation](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions).

        This endpoint also allows you to define a callback where the response will be sent. See the **Header parameters** section below.

        > [!note] **Note**
        > - Create the all the required attributes before using this endpoint.
        > - This `v2` version replaces the previous `v1` version of this endpoint.
      parameters:
        - $ref: '#/components/parameters/destinationHostname'
        - $ref: '#/components/parameters/callbackDestinationURI'
        - $ref: '#/components/parameters/callbackAPIKey'
        - $ref: '#/components/parameters/contentFields'
        - $ref: '#/components/parameters/correlationID'
        - $ref: '#/components/parameters/skipNonExistingAttributes'
        - name: customerSessionId
          in: path
          description: |
            The `integration ID` of the customer session. You set this ID when you create a customer session.

            You can see the existing customer session integration IDs in the Campaign Manager's **Sessions** menu, or via the
            [List Application session](https://docs.talon.one/management-api#operation/getApplicationSessions) endpoint.
          example: session1
          required: true
          schema:


# --- truncated at 32 KB (216 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/talon-one/refs/heads/main/openapi/talon-one-third-party-api-openapi.yml