Kard users > attributions API

The users > attributions API from Kard — 4 operation(s) for users > attributions.

Operations 4

POST /v2/issuers/{organizationId}/users/{userId}/attributions Create Attribution Events #
POST /v2/issuers/{organizationId}/users/{userId}/offers/{offerId}/activate Activate Offer #
POST /v2/issuers/{organizationId}/users/{userId}/offers/{offerId}/boost Boost Offer #
POST /v2/issuers/{organizationId}/users/{userId}/placements/{placementId}/slot/{slotId}/activate Activate Placement Slot #

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/kard-users-attributions-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

kard-users-attributions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference users > attributions API
  version: 1.0.0
servers:
- url: https://rewards-api.getkard.com
  description: Production
- url: https://test-rewards-api.getkard.com
  description: Sandbox
tags:
- name: users > attributions
paths:
  /v2/issuers/{organizationId}/users/{userId}/attributions:
    post:
      operationId: create
      summary: Create Attribution Events
      description: 'Call this endpoint to send attribution events made by a single enrolled user for processing. A maximum of 100 events can be included in a single request.


        <b>Required scopes:</b> `attributions:write`'
      tags:
      - users > attributions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: userId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_UserId'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Response with status 202
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_users_attributions_CreateAttributionResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/type_users_attributions_CreateAttributionRequestObject'
  /v2/issuers/{organizationId}/users/{userId}/offers/{offerId}/activate:
    post:
      operationId: activate
      summary: Activate Offer
      description: 'Record when a user activates an offer. Creates an attribution event with eventCode=ACTIVATE and medium=CTA.

        Optionally include the offer data by passing `include=offer`.'
      tags:
      - users > attributions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: userId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_UserId'
      - name: offerId
        in: path
        description: The unique identifier of the offer being activated
        required: true
        schema:
          type: string
      - name: supportedComponents
        in: query
        description: UI component types to include in the offer response (when include=offer).
        required: false
        schema:
          $ref: '#/components/schemas/type_users_rewards_ComponentType'
      - name: include
        in: query
        description: Related resources to include in the response. Allowed value is `offer`.
        required: false
        schema:
          $ref: '#/components/schemas/type_users_attributions_ActivateOfferIncludeOption'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_users_attributions_ActivateOfferResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
  /v2/issuers/{organizationId}/users/{userId}/offers/{offerId}/boost:
    post:
      operationId: boost
      summary: Boost Offer
      description: 'Record when a user boosts an offer. Creates an attribution event with eventCode=BOOST and medium=CTA.

        Optionally include the offer data by passing `include=offer`.'
      tags:
      - users > attributions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: userId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_UserId'
      - name: offerId
        in: path
        description: The unique identifier of the offer being boosted
        required: true
        schema:
          type: string
      - name: supportedComponents
        in: query
        description: UI component types to include in the offer response (when include=offer).
        required: false
        schema:
          $ref: '#/components/schemas/type_users_rewards_ComponentType'
      - name: include
        in: query
        description: Related resources to include in the response. Allowed value is `offer`.
        required: false
        schema:
          $ref: '#/components/schemas/type_users_attributions_BoostOfferIncludeOption'
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_users_attributions_BoostOfferResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
  /v2/issuers/{organizationId}/users/{userId}/placements/{placementId}/slot/{slotId}/activate:
    post:
      operationId: activate-placement-slot
      summary: Activate Placement Slot
      description: 'Record when a user activates a batch-activation placement slot. Writes a slot-level

        `placementSlotAttribution` ACTIVATE event and fans out a per-offer

        `offerAttribution` ACTIVATE event for every offer resolved by the slot''s content

        strategy. The slot-level event id and the resolved `offerIds` are returned so the

        partner can render the batch immediately without an extra round-trip to re-fetch

        the placement content.


        <b>Required scopes:</b> `attributions:write`'
      tags:
      - users > attributions
      parameters:
      - name: organizationId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_OrganizationId'
      - name: userId
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/type_commons_UserId'
      - name: placementId
        in: path
        description: Unique identifier of the placement (UUID v7)
        required: true
        schema:
          type: string
      - name: slotId
        in: path
        description: Stable identifier for the slot within the placement
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Response with status 201
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_users_attributions_ActivatePlacementSlotResponse'
        '400':
          description: Error response with status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '401':
          description: Error response with status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
        '500':
          description: Error response with status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/type_commons_ErrorResponse'
components:
  schemas:
    type_users_attributions_PlacementSlotAttributionAttributes:
      type: object
      properties:
        entityId:
          type: string
          description: The slot ID (matches `state.slotId`)
        eventCode:
          $ref: '#/components/schemas/type_users_attributions_EventCode'
        medium:
          $ref: '#/components/schemas/type_users_attributions_PlacementSlotMedium'
        eventDate:
          type: string
          format: date-time
          description: 'The timestamp of the attribution event.

            Must be in ISO 8601 format (e.g., "2025-01-01T00:00:00Z").'
        state:
          $ref: '#/components/schemas/type_users_attributions_AttributionState'
          description: Placement context for the attribution event
      required:
      - entityId
      - eventCode
      - medium
      - eventDate
      description: 'Attributes for a slot-level activation event on a batch-activation placement.

        A slot activation also writes per-offer `offerAttribution` ACTIVATE events for

        every offer resolved by the slot''s content strategy (see `ActivatePlacementSlot`).'
      title: PlacementSlotAttributionAttributes
    type_users_rewards_ProgressBarSegments:
      type: object
      properties:
        details:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarSegment'
          description: Segment configuration for the details view
        default:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarSegment'
          description: Segment configuration for the default view
        progress:
          type: array
          items:
            $ref: '#/components/schemas/type_users_rewards_ProgressBarSegmentProgress'
          description: 'Per-segment fill state: one entry per segment node, index-aligned with the nodes (length equals the progress bar total). Reached nodes report 1 of 1 and not-yet-reached nodes 0 of 1; for a punch-card offer the in-progress node reports qualifying-purchase progress toward the next reward (Q mod N of N).'
      required:
      - default
      - progress
      description: Segment configuration for the progress bar in different layouts
      title: ProgressBarSegments
    type_users_attributions_CreateAttributionResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/type_commons_JobResponse'
      required:
      - data
      title: CreateAttributionResponse
    type_commons_ResourceType:
      type: string
      description: Type of document returned
      title: ResourceType
    type_users_attributions_AttributionState:
      type: object
      properties:
        rank:
          type: integer
          description: The position of the offer in the list shown to the user (1-indexed)
        filters:
          type: array
          items:
            $ref: '#/components/schemas/type_users_attributions_AttributionFilter'
          description: The active filters when the user saw the offer
        placementId:
          type: string
          description: Unique identifier of the placement the attribution event originated from
        slotId:
          type: string
          description: Stable identifier for the slot within the placement
      title: AttributionState
    type_commons_PurchaseChannel:
      type: string
      enum:
      - INSTORE
      - ONLINE
      description: Purchase channel of offer
      title: PurchaseChannel
    type_users_attributions_AttributionFilter:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
      required:
      - name
      - value
      title: AttributionFilter
    type_users_rewards_CategoryFields:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/type_commons_CategoryOption'
          description: Name of the category
      required:
      - name
      title: CategoryFields
    type_users_rewards_CategoryData:
      type: object
      properties:
        id:
          type: string
          description: id of the category
        type:
          type: string
          enum:
          - category
      required:
      - id
      - type
      title: CategoryData
    type_users_rewards_ProgressBarSegmentSelection:
      type: string
      enum:
      - CURRENT
      - CURRENT_AND_BELOW
      description: 'Supported selection strategies for highlighting segment nodes.

        - CURRENT: select only the segment at currentProgress

        - CURRENT_AND_BELOW: select the segment at currentProgress and all segments below it'
      title: ProgressBarSegmentSelection
    type_users_rewards_AmountType:
      type: string
      enum:
      - CENTS
      title: AmountType
    type_commons_CategoryOption:
      type: string
      enum:
      - Arts & Entertainment
      - Baby, Kids & Toys
      - Books & Digital Media
      - Clothing, Shoes & Accessories
      - Computers, Electronics & Software
      - Convenience
      - Gas
      - Department Stores
      - Food & Beverage
      - Health & Beauty
      - Home & Garden
      - Miscellaneous
      - Occasions & Gifts
      - Pets
      - Sports & Outdoors
      - Supplies & Services
      - Travel
      description: Category of merchant. Please use URL Encode for non single word categories. (Food & Beverage should be Food%20%26%20Beverage)
      title: CategoryOption
    type_users_rewards_CategoryRelationship:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/type_users_rewards_CategoryData'
      required:
      - data
      title: CategoryRelationship
    type_users_rewards_ProgressBarSegmentProgress:
      type: object
      properties:
        completed:
          type: integer
          description: Units completed within the current segment.
        total:
          type: integer
          description: Total units required to complete the current segment.
      required:
      - completed
      - total
      description: Fill state of a single segment node, expressed as completed of total.
      title: ProgressBarSegmentProgress
    type_users_rewards_LogoFlareBorderColor:
      type: string
      enum:
      - PRIMARY
      - SECONDARY
      description: Available border color options for logo flare
      title: LogoFlareBorderColor
    type_commons_MongoId:
      type: string
      description: The unique identifier for a document in the database
      title: MongoId
    type_users_attributions_ActivateOfferResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/type_users_attributions_ActivateOfferResponseData'
        included:
          type: array
          items:
            $ref: '#/components/schemas/type_users_attributions_ActivateOfferIncluded'
      required:
      - data
      title: ActivateOfferResponse
    type_commons_ErrorObject:
      type: object
      properties:
        status:
          type: string
          description: Status code returned from the request
        title:
          type: string
          description: Name of error
        detail:
          type: string
          description: Description of the specific occurance of the error
        source:
          $ref: '#/components/schemas/type_commons_ErrorSource'
          description: An object containing a reference to the primary source of the error
        id:
          type: string
          description: The id of the resource which caused the error. Always returned for multi-status errors.
      required:
      - status
      - title
      - detail
      title: ErrorObject
    type_users_rewards_Amount:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_users_rewards_AmountType'
        value:
          type: integer
      required:
      - type
      - value
      title: Amount
    type_users_attributions_ActivateOfferIncludeOption:
      type: string
      enum:
      - offer
      description: Options for what to include in the activate offer response
      title: ActivateOfferIncludeOption
    type_commons_JobResponse:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_commons_ResourceType'
        id:
          type: string
          description: The request id of the pending job
        attributes:
          $ref: '#/components/schemas/type_commons_Job'
      required:
      - type
      - id
      - attributes
      title: JobResponse
    type_users_attributions_NotificationAttributionAttributes:
      type: object
      properties:
        entityId:
          type: string
          description: The notification ID
        eventCode:
          $ref: '#/components/schemas/type_users_attributions_EventCode'
        medium:
          $ref: '#/components/schemas/type_users_attributions_NotificationMedium'
        eventDate:
          type: string
          format: date-time
          description: 'The timestamp of the attribution event.

            Must be in ISO 8601 format (e.g., "2025-01-01T00:00:00Z").'
        state:
          $ref: '#/components/schemas/type_users_attributions_AttributionState'
          description: Placement context for the attribution event
      required:
      - entityId
      - eventCode
      - medium
      - eventDate
      title: NotificationAttributionAttributes
    type_users_attributions_ActivateOfferResponseData:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
        attributes:
          $ref: '#/components/schemas/type_users_attributions_ActivateOfferResponseAttributes'
      required:
      - type
      - id
      - attributes
      title: ActivateOfferResponseData
    type_users_attributions_OfferAttributionAttributes:
      type: object
      properties:
        entityId:
          type: string
          description: The offer ID
        eventCode:
          $ref: '#/components/schemas/type_users_attributions_EventCode'
        medium:
          $ref: '#/components/schemas/type_users_attributions_OfferMedium'
        eventDate:
          type: string
          format: date-time
          description: 'The timestamp of the attribution event.

            Must be in ISO 8601 format (e.g., "2025-01-01T00:00:00Z").'
        state:
          $ref: '#/components/schemas/type_users_attributions_AttributionState'
          description: Placement context for the attribution event
      required:
      - entityId
      - eventCode
      - medium
      - eventDate
      title: OfferAttributionAttributes
    type_users_rewards_CtaComponent:
      type: object
      properties:
        buttonText:
          type: string
          description: Text to display on the button
        buttonStyle:
          $ref: '#/components/schemas/type_users_rewards_ButtonStyle'
          description: Style of the button
        action:
          $ref: '#/components/schemas/type_users_rewards_CtaAction'
          description: Action to perform when the button is clicked
        startIcon:
          type: string
          description: Icon identifier to display on the button
      required:
      - buttonText
      - buttonStyle
      description: Call-to-action button component for offers
      title: CtaComponent
    type_commons_JobStatus:
      type: string
      enum:
      - queued
      description: Status of the job
      title: JobStatus
    type_commons_Job:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/type_commons_JobStatus'
        message:
          type: string
          description: Message regarding the status of the job request
      required:
      - status
      - message
      title: Job
    type_users_rewards_OfferComponents:
      type: object
      properties:
        shortDescription:
          type: string
          description: Short description for the offer
        longDescription:
          type: string
          description: Long description for the offer
        baseReward:
          type: string
          description: Formatted reward string
        boostedReward:
          type: string
          description: Formatted boosted reward string
        cta:
          $ref: '#/components/schemas/type_users_rewards_CtaComponent'
          description: Call-to-action button component
        tags:
          type: array
          items:
            type: string
          description: Tags for the offer
        detailTags:
          type: array
          items:
            type: string
          description: Detail tags for the offer
        logoFlare:
          $ref: '#/components/schemas/type_users_rewards_LogoFlare'
          description: Logo flare configuration for the offer
        progressBar:
          $ref: '#/components/schemas/type_users_rewards_ProgressBar'
          description: Progress bar component for tracking offer redemptions
      description: UI component data for rendering offer details
      title: OfferComponents
    type_users_rewards_CategoryRelationshipObject:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/type_users_rewards_CategoryRelationship'
      required:
      - category
      title: CategoryRelationshipObject
    type_users_rewards_Commission:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/type_commons_CommissionType'
        value:
          type: number
          format: double
      required:
      - type
      - value
      title: Commission
    type_commons_ErrorSource:
      type: object
      properties:
        pointer:
          type: string
          description: A JSON pointer to the value in the request document that caused the error
        parameter:
          type: string
          description: A string indicating which URI query parameter caused the error
        header:
          type: string
          description: A string indicating the name of a single request header which caused the error
      title: ErrorSource
    type_commons_CommissionType:
      type: string
      enum:
      - FLAT
      - PERCENT
      description: Type of commission on offer (% or a flat $)
      title: CommissionType
    type_users_attributions_CreateAttributionRequestUnion:
      oneOf:
      - type: object
        properties:
          type:
            type: string
            enum:
            - offerAttribution
            description: 'Discriminator value: offerAttribution'
          attributes:
            $ref: '#/components/schemas/type_users_attributions_OfferAttributionAttributes'
        required:
        - type
        - attributes
      - type: object
        properties:
          type:
            type: string
            enum:
            - notificationAttribution
            description: 'Discriminator value: notificationAttribution'
          attributes:
            $ref: '#/components/schemas/type_users_attributions_NotificationAttributionAttributes'
        required:
        - type
        - attributes
      - type: object
        properties:
          type:
            type: string
            enum:
            - placementSlotAttribution
            description: 'Discriminator value: placementSlotAttribution'
          attributes:
            $ref: '#/components/schemas/type_users_attributions_PlacementSlotAttributionAttributes'
        required:
        - type
        - attributes
      discriminator:
        propertyName: type
      title: CreateAttributionRequestUnion
    type_users_attributions_NotificationMedium:
      type: string
      enum:
      - PUSH
      description: Where the notification attribution event is taking place in your rewards experience.
      title: NotificationMedium
    type_users_attributions_BoostOfferResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/type_users_attributions_BoostOfferResponseData'
        included:
          type: array
          items:
            $ref: '#/components/schemas/type_users_attributions_BoostOfferIncluded'
      required:
      - data
      title: BoostOfferResponse
    type_users_rewards_CategoryIncluded:
      type: object
      properties:
        id:
          type: string
          description: id of the category
        type:
          type: string
          enum:
          - category
        attributes:
          $ref: '#/components/schemas/type_users_rewards_CategoryFields'
      required:
      - id
      - type
      - attributes
      title: CategoryIncluded
    type_users_rewards_ProgressBarSegment:
      type: object
      properties:
        icon:
          type: string
          description: SVG icon to use for each segment
        position:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarSegmentPosition'
          description: Position of the segment within the layout
        separator:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarSegmentSeparator'
          description: Separator style to render between segment nodes
        labels:
          type: array
          items:
            $ref: '#/components/schemas/type_users_rewards_ProgressBarSegmentLabel'
          description: Label configuration for each node in the segment
        selection:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarSegmentSelection'
          description: Which segment nodes the UI should render as selected based on currentProgress
      required:
      - position
      description: Segment configuration for a specific layout
      title: ProgressBarSegment
    type_users_rewards_ProgressBar:
      type: object
      properties:
        total:
          type: integer
          description: Total number of redemptions allowed
        currentProgress:
          type: integer
          description: Number of redemptions the user has completed
        label:
          type: string
          description: Formatted label for the progress bar
        segmented:
          type: boolean
          description: Whether the progress bar should be displayed as segmented
        segments:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarSegments'
          description: Segment configuration for the progress bar in different layouts
        labels:
          $ref: '#/components/schemas/type_users_rewards_ProgressBarLabels'
          description: Labels to render around the progress bar in different layouts
      required:
      - total
      - currentProgress
      - label
      - segmented
      - labels
      description: Progress bar component for tracking offer redemption progress
      title: ProgressBar
    type_users_rewards_ButtonStyle:
      type: string
      enum:
      - PRIMARY
      - SECONDARY
      - DISABLED
      description: Available button styles for CTA components
      title: ButtonStyle
    type_users_attributions_BoostOfferResponseAttributes:
      type: object
      properties:
        entityId:
          type: string
        eventCode:
          type: string
        medium:
          type: string
        eventDate:
          type: string
          format: date-time
      required:
      - entityId
      - eventCode
      - medium
      - eventDate
      title: BoostOfferResponseAttributes
    type_users_rewards_ComponentType:
      type: string
      enum:
      - shortDescription
      - longDescription
      - baseReward
      - boostedReward
      - cta
      - tags
      - detailTags
      - logoFlare
      - progressBar
      description: Available UI component types for offers
      title: ComponentType
    type_users_attributions_BoostOfferIncluded:
      oneOf:
      - $ref: '#/components/schemas/type_users_rewards_OfferDataUnion'
      - $ref: '#/components/schemas/type_users_rewards_CategoryIncluded'
      title: BoostOfferIncluded
    type_users_attributions_ActivateOfferIncluded:
      oneOf:
      - $ref: '#/components/schemas/type_users_rewards_OfferDataUnion'
      - $ref: '#/components/schemas/type_users_rewards_CategoryIncluded'
      title: ActivateOfferIncluded
    type_commons_ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/type_commons_ErrorObject'
      required:
      - errors
      title: ErrorResponse
    type_users_rewards_ProgressBarLabelPair:
      type: object
      properties:
        left:
          type: string
          description: Text content for the left label
        right:
          type: string
          description: Text content for the right label
      description: Left and right label configuration for a specific layout
      title: ProgressBarLabelPair
    type_users_attributions_BoostOfferResponseData:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
        attributes:
          $ref: '#/components/schemas/type_users_attributions_BoostOfferResponseAttributes'
      required:
      - type
      - id
      - attributes
      title: BoostOfferResponseData
    type_commons_UserId:
      type: string
      description: The ID of the user as defined on the issuers system
      title: UserId
    type_users_rewards_OfferDataUnion:
      oneOf:
      - type: object
        properties:
          type:
            type: string
            enum:
            - standardOffer
            description: 'Discriminator value: standardOffer'
          id:
            $ref: '#/components/schemas/type_commons_MongoId'
            description: Offer ID in Kard's system
          attributes:
            $ref: '#/components/schemas/type_users_rewards_StandardOfferFields'
          relationships:
            $ref: '#/components/schemas/type_users_rewards_EligibilityOfferRelationship'
        required:
        - type
        - id
        - attributes
      discriminator:
        propertyName: type
      title: OfferDataUnion
    type_users_rewards_ProgressBarSegmentLabel:
      type: object
      properties:
        title:
          type: string
          description: Title text for the segment node
        description:
          type: string
          description: Description text for the segment node
      required:
      - title
      - description
      description: Label configuration for a single node within a segment
      title: ProgressBarSegmentLabel
    type_users_attributions_OfferMedium:
      type: string
      enum:
      - BROWSE
      - EMAIL
      - MAP
      - SEARCH
      - CTA
      - PUSH
      description: Where the offer attribution event is taking place in your rewards experience.
      title: OfferMedium
    type_commons_OrganizationId:
      type: string
      description: Your issuer organization ID, provided by Kard
      title: OrganizationId
    type_users_rewards_ProgressBarSegmentPosition:
      type: string
      enum:
      - LEFT
      - RIGHT
      - FULL_WIDTH
      description: Supported segment positions
      title: ProgressBarSegmentPosition
    type_users_attributions_BoostOfferIncludeOption:
      type: string
      enum:
      - offer
      description: Options for what to include in the boost offer response
      titl

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kard/refs/heads/main/openapi/kard-users-attributions-api-openapi.yml