HookLogic (Criteo) Balance API

The Balance API from HookLogic (Criteo) — 6 operation(s) for balance.

OpenAPI Specification

hooklogic-criteo-balance-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Criteo Accounts Balance API
  description: Criteo API - RetailMedia
  version: 2026-07
servers:
- url: https://api.criteo.com
security:
- oauth: []
tags:
- name: Balance
paths:
  /2026-07/retail-media/accounts/{account-id}/balances:
    get:
      tags:
      - Balance
      summary: /2026-07/retail-media/accounts/{account-id}/balances
      description: Gets page of balance objects for the given account id
      operationId: GetBalancesByAccountId
      parameters:
      - name: account-id
        in: path
        description: The account to get balances for
        required: true
        schema:
          type: string
      - name: limitToId
        in: query
        description: The ids that you would like to limit your result set to
        schema:
          type: array
          items:
            type: string
      - name: pageIndex
        in: query
        description: The 0 indexed page index you would like to receive given the page size
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      - name: pageSize
        in: query
        description: The maximum number of items you would like to receive in this request
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
          default: 25
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseV2PagedListResponse'
      security:
      - oauth:
        - RetailMedia_Balance_Read
    post:
      tags:
      - Balance
      summary: /2026-07/retail-media/accounts/{account-id}/balances
      description: Create balance for the given account id
      operationId: CreateBalanceByAccountId
      parameters:
      - name: account-id
        in: path
        description: The account to create balances for
        required: true
        schema:
          type: string
      requestBody:
        description: An object that represents the available options to set when creating a Retail Media Balance
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBalanceV2Request'
        required: true
        x-bodyName: createBalance
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseV2Response'
      security:
      - oauth:
        - RetailMedia_Balance_Manage
  /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}:
    get:
      tags:
      - Balance
      summary: /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}
      description: Get a balance for the given account id and balance id
      operationId: GetBalanceByAccountAndBalanceId
      parameters:
      - name: account-id
        in: path
        description: The account of the balance
        required: true
        schema:
          type: string
      - name: balance-id
        in: path
        description: The balance id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseV2Response'
      security:
      - oauth:
        - RetailMedia_Balance_Read
    patch:
      tags:
      - Balance
      summary: /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}
      description: Modify a balance for the given account id
      operationId: ModifyBalanceByAccountAndBalanceId
      parameters:
      - name: account-id
        in: path
        description: The account of the balance
        required: true
        schema:
          type: string
      - name: balance-id
        in: path
        description: The balance to change the dates
        required: true
        schema:
          type: string
      requestBody:
        description: An object that represents the available options to modify a balance.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBalanceModelV2Request'
        required: true
        x-bodyName: updateBalanceModel
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseV2Response'
      security:
      - oauth:
        - RetailMedia_Balance_Manage
  /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}/add-funds:
    post:
      tags:
      - Balance
      summary: /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}/add-funds
      description: Add funds to a balance for the given account id
      operationId: AddFundsByAccountAndBalanceId
      parameters:
      - name: account-id
        in: path
        description: The account of the balance
        required: true
        schema:
          type: string
      - name: balance-id
        in: path
        description: The balance to add funds to
        required: true
        schema:
          type: string
      requestBody:
        description: An object that represents the available options of adding funds to a balance.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddFundsToBalanceV2Request'
        required: true
        x-bodyName: addFundsToBalance
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseV2Response'
      security:
      - oauth:
        - RetailMedia_Balance_Manage
  /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}/change-dates:
    post:
      tags:
      - Balance
      summary: /2026-07/retail-media/accounts/{account-id}/balances/{balance-id}/change-dates
      description: Change dates of a balance for the given account id
      operationId: ChangeDatesByAccountAndBalanceId
      parameters:
      - name: account-id
        in: path
        description: The account of the balance
        required: true
        schema:
          type: string
      - name: balance-id
        in: path
        description: The balance to change the dates
        required: true
        schema:
          type: string
      requestBody:
        description: An object that represents the available options to modify schedule of a balance.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeDatesOfBalanceV2Request'
        required: true
        x-bodyName: changeDatesOfBalance
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceResponseV2Response'
      security:
      - oauth:
        - RetailMedia_Balance_Manage
  /2026-07/retail-media/balances/{balance-id}/campaigns:
    get:
      tags:
      - Balance
      summary: /2026-07/retail-media/balances/{balance-id}/campaigns
      description: Gets page of campaigns for the given balanceId
      operationId: GetCampaignsByBalanceId
      parameters:
      - name: balance-id
        in: path
        description: The balance to get campaigns from
        required: true
        schema:
          type: string
      - name: limitToId
        in: query
        description: The ids that you would like to limit your result set to
        schema:
          type: array
          items:
            type: string
      - name: pageIndex
        in: query
        description: The 0 indexed page index you would like to receive given the page size
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      - name: pageSize
        in: query
        description: The maximum number of items you would like to receive in this request
        schema:
          maximum: 2147483647
          minimum: 1
          type: integer
          format: int32
          default: 25
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceCampaign202110PagedListResponse'
      security:
      - oauth:
        - RetailMedia_Balance_Read
  /2026-07/retail-media/balances/{balanceId}/history:
    get:
      tags:
      - Balance
      summary: /2026-07/retail-media/balances/{balanceId}/history
      description: Gets the balance's historical change data.
      operationId: GetBalanceHistory
      parameters:
      - name: balanceId
        in: path
        description: Balance id.
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: The number of elements to be returned.
        schema:
          maximum: 100
          minimum: 1
          type: integer
          format: int32
          default: 25
      - name: limitToChangeTypes
        in: query
        description: Comma separated change types string that will be queried.
        schema:
          type: string
      - name: offset
        in: query
        description: The (zero-based) starting offset in the collection.
        schema:
          maximum: 2147483647
          minimum: 0
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageOfBalanceHistoryChangeDataCaptureV1'
      security:
      - oauth:
        - RetailMedia_Balance_Read
components:
  schemas:
    ResourceOfBalanceResponseV2:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/BalanceResponseV2'
        id:
          type: string
          description: Id of the entity
          nullable: true
        type:
          type: string
          description: Canonical type name of the entity
          nullable: true
      description: A class that represents a domain entity exposed by an API
      nullable: true
    ResourceOfBalanceCampaign202110:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/BalanceCampaign202110'
        id:
          type: string
          description: Id of the entity
          nullable: true
        type:
          type: string
          description: Canonical type name of the entity
          nullable: true
      description: A class that represents a domain entity exposed by an API
    Metadata:
      required:
      - limit
      - offset
      type: object
      properties:
        count:
          type: integer
          format: int64
          nullable: true
        limit:
          type: integer
          description: The number of elements to be returned.
          format: int32
        offset:
          type: integer
          description: The (zero-based) starting offset in the collection.
          format: int32
      additionalProperties: false
      description: Metadata related to the current request.
      nullable: true
    BalanceCampaign202110:
      type: object
      description: Campaigns related to the balance
    BalanceResponseV2PagedListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ResourceOfBalanceResponseV2'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/CommonProblem'
          readOnly: true
        metadata:
          $ref: '#/components/schemas/PageMetadata'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/CommonProblem'
          readOnly: true
      description: Data model for a paged list of response resources
    CreateBalanceV2Request:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ResourceOfCreateBalanceV2'
      description: A top-level object that encapsulates a Criteo API request for a single entity
    CommonProblem:
      type: object
      properties:
        code:
          type: string
          description: A machine-readable error code, expressed as a string value.
          nullable: true
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem
          nullable: true
        instance:
          type: string
          description: A URI that identifies the specific occurrence of the problem.
          nullable: true
        source:
          type: object
          additionalProperties:
            type: string
          description: A machine-readable structure to reference to the exact location(s) causing the error(s)
          nullable: true
        stackTrace:
          type: string
          nullable: true
        title:
          type: string
          description: A short human-readable description of the problem type
          nullable: true
        traceId:
          type: string
          description: The request correlation ID this problem comes from.
          nullable: true
        traceIdentifier:
          type: string
          description: The request correlation ID this problem comes from. (deprecated, use traceId instead)
          nullable: true
        type:
          enum:
          - unknown
          - access-control
          - authentication
          - authorization
          - availability
          - deprecation
          - quota
          - validation
          type: string
          description: The problem's category.
          nullable: true
      description: Common problem object.
    ResourceOfAddFundsToBalanceV2:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/AddFundsToBalanceV2'
        id:
          type: string
          description: Id of the entity
        type:
          type: string
          description: Canonical type name of the entity
      description: A class that represents a domain entity exposed by an API
    UpdateBalanceModelV2Request:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ResourceOfUpdateBalanceModelV2'
      description: A top-level object that encapsulates a Criteo API request for a single entity
    ResourceOfChangeDatesOfBalanceV2:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/ChangeDatesOfBalanceV2'
        id:
          type: string
          description: Id of the entity
        type:
          type: string
          description: Canonical type name of the entity
      description: A class that represents a domain entity exposed by an API
    PageOfBalanceHistoryChangeDataCaptureV1:
      required:
      - data
      - meta
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/BalanceHistoryChangeDataCaptureV1'
        meta:
          $ref: '#/components/schemas/Metadata'
      additionalProperties: false
      description: A wrapper class to return a single page of items with metadata for offset and limit based paging.
    ResourceOfCreateBalanceV2:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/CreateBalanceV2'
        id:
          type: string
          description: Id of the entity
        type:
          type: string
          description: Canonical type name of the entity
      description: A class that represents a domain entity exposed by an API
    AddFundsToBalanceV2:
      required:
      - deltaAmount
      type: object
      properties:
        deltaAmount:
          type: number
          description: Amount of billable funds to be added / decreased allotted to the balance.
          format: double
        memo:
          type: string
          description: Memo
        poNumber:
          type: string
          description: Purchase Order number.
      description: An object that represents the available options of adding funds to a balance.
    BalanceResponseV2Response:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ResourceOfBalanceResponseV2'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/CommonProblem'
          readOnly: true
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/CommonProblem'
          readOnly: true
      description: A top-level object that encapsulates a Criteo API response for a single entity
      nullable: true
    BalanceHistoryChangeDataCaptureV1:
      required:
      - changeDetails
      - changeType
      - dateOfModification
      - modifiedByUser
      type: object
      properties:
        changeDetails:
          $ref: '#/components/schemas/ChangeDetailsV1'
        changeType:
          enum:
          - BalanceCreated
          - BalanceAdded
          - BalanceRemoved
          - BalanceUncapped
          - BalanceCapped
          - EndDate
          - StartDate
          - BalanceName
          - PoNumber
          - ValueAdd
          - Unknown
          type: string
          description: Represent the type of change states of the history.
        dateOfModification:
          type: string
          description: Date when data change has occured.
          format: date-time
        memo:
          type: string
          description: Memo associate with the insertion order modification.
          nullable: true
        modifiedByUser:
          type: string
          description: Username who modified the insertion order.
      additionalProperties: false
      description: Data model represents the data change capture of balance history.
    ChangeDatesOfBalanceV2Request:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ResourceOfChangeDatesOfBalanceV2'
      description: A top-level object that encapsulates a Criteo API request for a single entity
    AddFundsToBalanceV2Request:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ResourceOfAddFundsToBalanceV2'
      description: A top-level object that encapsulates a Criteo API request for a single entity
    ChangeDatesOfBalanceV2:
      type: object
      properties:
        endDate:
          type: string
          description: End date of the balance in the format YYYY-MM-DD.
        memo:
          type: string
          description: Memo.
        startDate:
          type: string
          description: Start date of the balance in the format YYYY-MM-DD.
      description: An object that represents the available options to modify schedule of a balance.
    PageMetadata:
      required:
      - currentPageIndex
      - currentPageSize
      type: object
      properties:
        currentPageIndex:
          type: integer
          format: int32
        currentPageSize:
          type: integer
          format: int32
        nextPage:
          type: string
          nullable: true
        previousPage:
          type: string
          nullable: true
        totalItemsAcrossAllPages:
          type: integer
          format: int64
          nullable: true
        totalPages:
          type: integer
          format: int64
          nullable: true
      additionalProperties: false
      description: Metadata related to the current request
    CreateBalanceV2:
      required:
      - name
      - startDate
      - spendType
      type: object
      properties:
        deposited:
          type: number
          description: Amount of billable funds allotted to the balance.
          format: double
        endDate:
          type: string
          description: End date of the balance in the format YYYY-MM-DD.
          nullable: true
        memo:
          type: string
          description: Memo
          nullable: true
        name:
          type: string
          description: Name of the balance.
        poNumber:
          type: string
          description: Purchase Order number.
          nullable: true
        spendType:
          enum:
          - Onsite
          - Offsite
          - OffsiteAwareness
          type: string
          description: Type of the balance spend.
        startDate:
          type: string
          description: Start date of the balance in the format YYYY-MM-DD.
      description: An object that represents the available options to set when creating a Retail Media Balance
    ResourceOfUpdateBalanceModelV2:
      type: object
      properties:
        attributes:
          $ref: '#/components/schemas/UpdateBalanceModelV2'
        id:
          type: string
          description: Id of the entity
        type:
          type: string
          description: Canonical type name of the entity
      description: A class that represents a domain entity exposed by an API
    BalanceResponseV2:
      required:
      - name
      - startDate
      - balanceType
      - spendType
      - privateMarketBillingType
      type: object
      properties:
        balanceType:
          enum:
          - unknown
          - capped
          - uncapped
          type: string
          description: Type of the balance.
        createdAt:
          type: string
          description: Creation time of the balance.
          format: date-time
        deposited:
          type: number
          description: Amount of billable funds allotted to the balance.
          format: double
          nullable: true
        endDate:
          type: string
          description: End date of the balance in the format YYYY-MM-DD.
          nullable: true
        memo:
          type: string
          description: Memo.
          nullable: true
        name:
          type: string
          description: Name of the balance.
        poNumber:
          type: string
          description: Purchase Order number.
          nullable: true
        privateMarketBillingType:
          enum:
          - notApplicable
          - billByRetailer
          - billByCriteo
          - unknown
          type: string
          description: Billing type for Private Market of the balance.
        remaining:
          type: number
          description: Amount of remaining funds of the balance.
          format: double
          nullable: true
        spendType:
          enum:
          - Onsite
          - Offsite
          - OffsiteAwareness
          type: string
          description: Spend Type of the balance.
        spent:
          type: number
          description: Amount of spent funds of the balance.
          format: double
          nullable: true
        startDate:
          type: string
          description: Start date of the balance in the format YYYY-MM-DD.
        status:
          enum:
          - unknown
          - scheduled
          - active
          - ended
          type: string
          description: Status of the balance.
        updatedAt:
          type: string
          description: Update time of the balance.
          format: date-time
      description: A Retail Media Balance used to determine the funds available for any or all campaigns in an account
      nullable: true
    UpdateBalanceModelV2:
      type: object
      properties:
        endDate:
          type: string
          description: End date of the balance in the format YYYY-MM-DD.
          nullable: true
        memo:
          type: string
          description: Memo.
          nullable: true
        name:
          type: string
          description: Name of the balance.
          nullable: true
        poNumber:
          type: string
          description: Purchase Order number.
          nullable: true
        startDate:
          type: string
          description: Start date of the balance in the format YYYY-MM-DD.
          nullable: true
      description: An object that represents the available options to set when updating a Retail Media Balance.
    BalanceCampaign202110PagedListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ResourceOfBalanceCampaign202110'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/CommonProblem'
          readOnly: true
        metadata:
          $ref: '#/components/schemas/PageMetadata'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/CommonProblem'
          readOnly: true
      description: Data model for a paged list of response resources
    ChangeDetailsV1:
      type: object
      properties:
        changeValue:
          type: string
          description: Change detail of a property of the insertion order.
          nullable: true
        currentValue:
          type: string
          description: Current value of a property of the insertion order.
          nullable: true
        previousValue:
          type: string
          description: Previous value of a property of the insertion order.
          nullable: true
      additionalProperties: false
      description: Change details of a property of the balance.
  securitySchemes:
    oauth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.criteo.com/oauth2/token
          scopes: {}
        authorizationCode:
          authorizationUrl: https://api.criteo.com/oauth2
          tokenUrl: https://api.criteo.com/oauth2/token
          scopes: {}
x-samples-languages:
- java
- python
- php
- csharp
- javascript
- curl
- ruby