{
  "openapi": "3.0.1",
  "info": {
    "title": "Criteo API",
    "description": "Criteo API - CommerceGrid",
    "version": "2026-01"
  },
  "servers": [
    {
      "url": "https://api.criteo.com"
    }
  ],
  "paths": {
    "/2026-01/commerce-grid/audience-segments": {
      "patch": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments",
        "description": "Updates the properties of all segments with a valid configuration, and returns the full segments. For those that cannot be updated, one or multiple errors are returned.",
        "operationId": "bulkUpdateAudienceSegments",
        "requestBody": {
          "description": "Segment Update request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CgAudienceSegmentBulkUpdateInputV1"
              }
            }
          },
          "required": true,
          "x-bodyName": "request"
        },
        "responses": {
          "200": {
            "description": "Success or partial success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CgAudienceSegmentEntityV1ListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Manage"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/audience-segments/{audience-segment-id}/contact-list/add-remove": {
      "post": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments/{audience-segment-id}/contact-list/add-remove",
        "description": "Add/remove identifiers to or from a Commerce Grid audience segment of type Contact List.",
        "operationId": "AddRemoveContactListByAudienceSegment",
        "parameters": [
          {
            "name": "audience-segment-id",
            "in": "path",
            "description": "The ID of the audience segment of type contact list to amend",
            "required": true,
            "schema": {
              "type": "string",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommerceGridContactlistAmendmentRequest"
              }
            }
          },
          "required": true,
          "x-bodyName": "body"
        },
        "responses": {
          "200": {
            "description": "Summary of the add/remove operation of identifiers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommerceGridContactlistOperation"
                },
                "example": {
                  "data": {
                    "type": "AddRemoveContactlistResult",
                    "attributes": {
                      "contactListId": 568708742535471104,
                      "operation": "add",
                      "requestDate": "2018-12-10T10:00:50.0000000+00:00",
                      "identifierType": "madid",
                      "nbValidIdentifiers": 7343,
                      "nbInvalidIdentifiers": 13,
                      "sampleInvalidIdentifiers": [
                        "InvalidIdentifier"
                      ]
                    }
                  },
                  "errors": [
                    {
                      "traceId": "667ac683ac797284.667ac683ac797284<:667ac683ac797284",
                      "type": "availability",
                      "code": "internal-error",
                      "instance": "",
                      "title": "Internal error"
                    }
                  ],
                  "warnings": [
                    {
                      "traceId": "56ed4096-f96a-4944-8881-05468efe0ec9",
                      "type": "deprecation",
                      "code": "deprecated-field",
                      "instance": "/audiences/314195",
                      "title": "'nbValidIds' is deprecated",
                      "detail": "The field 'nbValidIds' is deprecated please use 'nbValidIdentifiers'"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Manage"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/audience-segments/{audience-segment-id}/contact-list/clear": {
      "post": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments/{audience-segment-id}/contact-list/clear",
        "description": "Delete all identifiers from a Commerce Grid audience segment of type Contact List.",
        "operationId": "ClearContactListByAudienceSegment",
        "parameters": [
          {
            "name": "audience-segment-id",
            "in": "path",
            "description": "The ID of the audience segment of type contact list to amend",
            "required": true,
            "schema": {
              "type": "string",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The Contact List identifiers were deleted",
            "content": {
              "application/json": { }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Manage"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/audience-segments/{audience-segment-id}/contact-list/statistics": {
      "get": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments/{audience-segment-id}/contact-list/statistics",
        "description": "Returns the statistics of a contact list segment.",
        "operationId": "getAudienceSegmentContactListStatistics",
        "parameters": [
          {
            "name": "audience-segment-id",
            "in": "path",
            "description": "The segment ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CgContactListStatisticsEntityV1Response"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Read"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/audience-segments/create": {
      "post": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments/create",
        "description": "Creates all segments with a valid configuration, and returns the full segments. For those that cannot be created, one or multiple errors are returned.",
        "operationId": "bulkCreateAudienceSegments",
        "requestBody": {
          "description": "Segment creation parameter",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CgAudienceSegmentBulkCreateInputV1"
              }
            }
          },
          "required": true,
          "x-bodyName": "request"
        },
        "responses": {
          "200": {
            "description": "Success or partial success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CgAudienceSegmentEntityV1ListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Manage"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/audience-segments/delete": {
      "post": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments/delete",
        "description": "Delete the segments associated to the given IDs.",
        "operationId": "bulkDeleteAudienceSegments",
        "requestBody": {
          "description": "Segment delete request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CgAudienceSegmentBulkDeleteInputV1"
              }
            }
          },
          "required": true,
          "x-bodyName": "request"
        },
        "responses": {
          "200": {
            "description": "Success or partial success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CgAudienceSegmentIdEntityV1ListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Manage"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/audience-segments/search": {
      "post": {
        "tags": [
          "Segment"
        ],
        "summary": "/2026-01/commerce-grid/audience-segments/search",
        "description": "Returns a list of segments that match the provided filters. If present, the filters are AND'ed together when applied.",
        "operationId": "searchAudienceSegments",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The number of elements to be returned. The default is 50 and the maximum is 100.",
            "schema": {
              "maximum": 100,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The (zero-based) offset into the collection. The default is 0.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CgAudienceSegmentSearchInputV1"
              }
            }
          },
          "required": true,
          "x-bodyName": "request"
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CgAudienceSegmentEntityV1CgAudienceSegmentSearchMetadataV1ListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [
              "CommerceGrid_Segment_Read"
            ]
          }
        ]
      }
    },
    "/2026-01/commerce-grid/me": {
      "get": {
        "tags": [
          "Gateway"
        ],
        "summary": "/2026-01/commerce-grid/me",
        "description": "Get information about the currently logged application",
        "operationId": "GetCurrentApplication",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSummaryModelResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApplicationSummaryModel": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "criteoService": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "organizationId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "description": "Used for the /me endpoint. Contains information about the currently authenticated application that we accept to give to our clients",
        "nullable": true
      },
      "ApplicationSummaryModelResource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/ApplicationSummaryModel"
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for a single value",
        "nullable": true
      },
      "ApplicationSummaryModelResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationSummaryModelResource"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for a single value"
      },
      "AudienceError": {
        "required": [
          "code",
          "instance",
          "type"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "(REQUIRED) A machine-readable unique error code, expressed as a string value. The format used must be kebab-case."
          },
          "detail": {
            "type": "string",
            "description": "(RECOMMENDED) A human-readable explanation specific to this occurrence of the problem",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "description": "(REQUIRED) A URI reference that identifies the specific occurrence of the problem"
          },
          "source": {
            "type": "object",
            "description": "(OPTIONAL) A machine-readable structure to reference to the exact location(s) causing the error(s)",
            "nullable": true
          },
          "stackTrace": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "(NEVER IN PRODUCTION) A human-readable stacktrace produced by the implementation technology",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "(RECOMMENDED) A short, human-readable summary of the problem type",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "(REQUIRED) The Correlation ID provided by the Gateway. It is also a unique identifier for this particular occurrence of the problem.",
            "nullable": true
          },
          "type": {
            "enum": [
              "access-control",
              "authentication",
              "authorization",
              "availability",
              "deprecation",
              "quota",
              "validation"
            ],
            "type": "string",
            "description": "(REQUIRED) The classification of the error"
          }
        },
        "description": "Definition of an audience error"
      },
      "AudienceWarning": {
        "required": [
          "code",
          "detail",
          "instance",
          "type"
        ],
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "(REQUIRED) A machine-readable unique error code, expressed as a string value. The format used must be kebab-case."
          },
          "detail": {
            "type": "string",
            "description": "(REQUIRED) A human-readable explanation specific to this occurrence of the problem"
          },
          "instance": {
            "type": "string",
            "description": "(REQUIRED) A URI reference that identifies the specific occurrence of the problem"
          },
          "source": {
            "type": "object",
            "description": "(OPTIONAL) A machine-readable structure to reference to the exact location(s) causing the error(s)",
            "nullable": true
          },
          "stackTrace": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "(NEVER IN PRODUCTION) A human-readable stacktrace produced by the implementation technology",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "(RECOMMENDED) A short, human-readable summary of the problem type",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "(REQUIRED) The Correlation ID provided by the Gateway. It is also a unique identifier for this particular occurrence of the problem.",
            "nullable": true
          },
          "type": {
            "enum": [
              "access-control",
              "authentication",
              "authorization",
              "availability",
              "deprecation",
              "quota",
              "validation"
            ],
            "type": "string",
            "description": "(REQUIRED) The classification of the error"
          }
        },
        "description": "Definition of the warning"
      },
      "CgAudienceSegmentBulkCreateInputV1": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CgAudienceSegmentCreateEntityV1Resource"
            }
          }
        },
        "description": "A top-level object that encapsulates a Criteo API request for several values."
      },
      "CgAudienceSegmentBulkDeleteInputV1": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CgAudienceSegmentDeleteEntityV1Resource"
            }
          }
        },
        "description": "A top-level object that encapsulates a Criteo API request for several entities."
      },
      "CgAudienceSegmentBulkUpdateInputV1": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CgAudienceSegmentUpdateEntityV1Resource"
            }
          }
        },
        "description": "A top-level object that encapsulates a Criteo API request for several entities."
      },
      "CgAudienceSegmentCreateEntityV1": {
        "required": [
          "dataProviderId",
          "name"
        ],
        "type": "object",
        "properties": {
          "contactList": {
            "$ref": "#/components/schemas/CgContactListCreateV1"
          },
          "dataProviderId": {
            "type": "string",
            "description": "Data provider associated to the segment"
          },
          "description": {
            "type": "string",
            "description": "Description of the segment"
          },
          "name": {
            "type": "string",
            "description": "Name of the segment"
          }
        },
        "description": "Set of rules that defines specific people to target."
      },
      "CgAudienceSegmentCreateEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgAudienceSegmentCreateEntityV1"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for a single value"
      },
      "CgAudienceSegmentDeleteEntityV1": {
        "type": "object",
        "description": "Segment to delete",
        "x-criteo-canonical": {
          "infoType": "entity",
          "name": "CommerceGridAudienceSegment",
          "version": "v1"
        }
      },
      "CgAudienceSegmentDeleteEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgAudienceSegmentDeleteEntityV1"
          },
          "id": {
            "type": "string",
            "description": "Id of the entity"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "A class that represents a domain entity exposed by an API"
      },
      "CgAudienceSegmentEntityV1": {
        "type": "object",
        "properties": {
          "contactList": {
            "$ref": "#/components/schemas/CgContactListV1"
          },
          "createdAt": {
            "type": "string",
            "description": "ISO-8601 timestamp in UTC of segment creation (read-only)",
            "format": "date-time",
            "nullable": true
          },
          "dataProviderId": {
            "type": "string",
            "description": "Data provider associated to the segment (read-only)",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description of the segment",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name of the segment",
            "nullable": true
          },
          "remoteId": {
            "type": "string",
            "description": "The ID used to identify the segment in the data provider's system (read-only)",
            "nullable": true
          },
          "type": {
            "enum": [
              "Unknown",
              "ContactList"
            ],
            "type": "string",
            "description": "Type of segment (read-only)",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "description": "ISO-8601 timestamp in UTC of segment update (read-only)",
            "format": "date-time",
            "nullable": true
          }
        },
        "description": "Set of rules that defines specific people to target.",
        "nullable": true,
        "x-criteo-canonical": {
          "infoType": "entity",
          "name": "CommerceGridAudienceSegment",
          "version": "v1"
        }
      },
      "CgAudienceSegmentEntityV1CgAudienceSegmentSearchMetadataV1ListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CgAudienceSegmentEntityV1Resource"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          },
          "meta": {
            "$ref": "#/components/schemas/CgAudienceSegmentSearchMetadataV1"
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for several entities and metadata"
      },
      "CgAudienceSegmentEntityV1ListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CgAudienceSegmentEntityV1Resource"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for several entities"
      },
      "CgAudienceSegmentEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgAudienceSegmentEntityV1"
          },
          "id": {
            "type": "string",
            "description": "Id of the entity",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "A class that represents a domain entity exposed by an API"
      },
      "CgAudienceSegmentIdEntityV1": {
        "type": "object",
        "description": "Audience Segment entity only with its ID",
        "nullable": true,
        "x-criteo-canonical": {
          "infoType": "entity",
          "name": "CommerceGridAudienceSegment",
          "version": "v1"
        }
      },
      "CgAudienceSegmentIdEntityV1ListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CgAudienceSegmentIdEntityV1Resource"
            },
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for several entities"
      },
      "CgAudienceSegmentIdEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgAudienceSegmentIdEntityV1"
          },
          "id": {
            "type": "string",
            "description": "Id of the entity",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "A class that represents a domain entity exposed by an API"
      },
      "CgAudienceSegmentSearchEntityV1": {
        "type": "object",
        "properties": {
          "audienceSegmentIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of segment ids"
          },
          "audienceSegmentTypes": {
            "type": "array",
            "items": {
              "enum": [
                "Unknown",
                "ContactList"
              ],
              "type": "string"
            },
            "description": "List of segment types"
          },
          "dataProviderIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of data provider ids"
          },
          "remoteIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of ids used to identify the segment in the data provider's system"
          }
        },
        "description": "Available filters to perform a search on audience segments. If present, the filters are AND'ed together when applied."
      },
      "CgAudienceSegmentSearchEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgAudienceSegmentSearchEntityV1"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for a single value"
      },
      "CgAudienceSegmentSearchInputV1": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CgAudienceSegmentSearchEntityV1Resource"
          }
        },
        "description": "A top-level object that encapsulates a Criteo API request for a single value."
      },
      "CgAudienceSegmentSearchMetadataV1": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "description": "Max item of the current page",
            "format": "int32",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "description": "Number of item to skip",
            "format": "int32",
            "nullable": true
          },
          "totalItems": {
            "type": "integer",
            "description": "Total number of items",
            "format": "int32",
            "nullable": true
          }
        },
        "description": "Metadata for the audience segment search response.",
        "nullable": true
      },
      "CgAudienceSegmentUpdateEntityV1": {
        "type": "object",
        "properties": {
          "description": {
            "$ref": "#/components/schemas/NillableString"
          },
          "name": {
            "type": "string",
            "description": "Name of the segment"
          }
        },
        "description": "Set of rules that defines specific people to target.",
        "x-criteo-canonical": {
          "infoType": "entity",
          "name": "CommerceGridAudienceSegment",
          "version": "v1"
        }
      },
      "CgAudienceSegmentUpdateEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgAudienceSegmentUpdateEntityV1"
          },
          "id": {
            "type": "string",
            "description": "Id of the entity"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "A class that represents a domain entity exposed by an API"
      },
      "CgContactListCreateV1": {
        "type": "object",
        "properties": {
          "remoteId": {
            "type": "string",
            "description": "The ID owned by the client and used to identify the Audience Segment."
          }
        },
        "description": "Settings to target users with your contact lists."
      },
      "CgContactListStatisticsEntityV1": {
        "type": "object",
        "properties": {
          "matchRate": {
            "type": "number",
            "description": "Percentage of matched identifiers in the contact list.\r\nCan differ from matches/identifiers depending on the contact list type.",
            "format": "double",
            "nullable": true
          },
          "numberOfIdentifiers": {
            "type": "integer",
            "description": "Number of identifiers in the contact list.",
            "format": "int32",
            "nullable": true
          },
          "numberOfMatches": {
            "type": "integer",
            "description": "Number of matched identifiers in the contact list.",
            "format": "int32",
            "nullable": true
          }
        },
        "description": "Contact list statistics.",
        "nullable": true,
        "x-criteo-canonical": {
          "infoType": "entity",
          "name": "ContactListStatistics",
          "version": "v1"
        }
      },
      "CgContactListStatisticsEntityV1Resource": {
        "type": "object",
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/CgContactListStatisticsEntityV1"
          },
          "id": {
            "type": "string",
            "description": "Id of the entity",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "A class that represents a domain entity exposed by an API",
        "nullable": true
      },
      "CgContactListStatisticsEntityV1Response": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CgContactListStatisticsEntityV1Resource"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonProblem"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "description": "A top-level object that encapsulates a Criteo API response for a single entity"
      },
      "CgContactListV1": {
        "type": "object",
        "description": "Settings to target users with your contact lists.",
        "nullable": true
      },
      "CommerceGridContactlistAmendment": {
        "required": [
          "attributes"
        ],
        "type": "object",
        "properties": {
          "attributes": {
            "required": [
              "identifiers",
              "operation"
            ],
            "type": "object",
            "properties": {
              "identifiers": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "The users to add or remove, each in the schema specified"
              },
              "identifierType": {
                "enum": [
                  "Email",
                  "MadId",
                  "UserIdentifier",
                  "IdentityLink",
                  "BidSwitchId",
                  "FTrackId",
                  "PanoramaId",
                  "HadronId",
                  "IpAddressV4",
                  "PageUrl",
                  "PageDomain",
                  "AppId"
                ],
                "type": "string",
                "description": "What type of identifiers are used"
              },
              "operation": {
                "enum": [
                  "Add",
                  "Remove"
                ],
                "type": "string",
                "description": "Whether to add or remove users"
              }
            },
            "description": "Attributes of Commerce Grid contact list amendment"
          },
          "type": {
            "type": "string",
            "description": "Contact List",
            "example": "AddRemoveContactlist"
          }
        },
        "description": "Request data of Commerce Grid contact list amendment"
      },
      "CommerceGridContactlistAmendmentRequest": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CommerceGridContactlistAmendment"
          }
        },
        "description": "Request of Commerce Grid contact list"
      },
      "CommerceGridContactlistOperation": {
        "required": [
          "data",
          "errors",
          "warnings"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CommerceGridContactlistOperationResponseAttributes"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AudienceError"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AudienceWarning"
            }
          }
        },
        "description": "Operation on Commerce Grid contact list"
      },
      "CommerceGridContactlistOperationResponseAttributes": {
        "required": [
          "attributes"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Contact List",
            "nullable": true,
            "example": "AddRemoveContactlist"
          },
          "attributes": {
            "required": [
              "operation"
            ],
            "type": "object",
            "properties": {
              "contactListId": {
                "type": "integer",
                "description": "the affected contact list ID",
                "format": "int64",
                "nullable": true,
                "readOnly": true
              },
              "identifierType": {
                "type": "string",
                "description": "The schema specified for of the identifiers",
                "nullable": true,
                "readOnly": true
              },
              "nbInvalidIdentifiers": {
                "type": "integer",
                "description": "How many identifiers were invalid for the specified schema",
                "format": "int32",
                "nullable": true,
                "readOnly": true
              },
              "nbValidIdentifiers": {
                "type": "integer",
                "description": "How many identifiers were valid for the specified schema",
                "format": "int32",
                "nullable": true,
                "readOnly": true
              },
              "operation": {
                "type": "string",
                "description": "The action recorded"
              },
              "requestDate": {
                "type": "string",
                "description": "When the action was recorded",
                "format": "date-time",
                "nullable": true,
                "readOnly": true
              },
              "sampleInvalidIdentifiers": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "A sample of invalid identifiers if there is some",
                "nullable": true,
                "readOnly": true
              }
            },
            "description": "Attributes of Commerce Grid contact list amendment"
          }
        },
        "description": "Response data of Commerce Grid contact list amendment"
      },
      "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",
            "description": "",
            "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."
      },
      "NillableString": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The string's value. If missing or null the string's value is set to \"null\"",
            "nullable": true
          }
        },
        "description": "Placeholder object for string value  for which \"null\" is a valid business value",
        "nullable": true
      }
    },
    "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": { }
          }
        }
      }
    }
  },
  "security": [
    {
      "oauth": [ ]
    }
  ],
  "tags": [
    {
      "name": "Gateway"
    },
    {
      "name": "Segment"
    }
  ],
  "x-samples-languages": [
    "java",
    "python",
    "php",
    "csharp",
    "javascript",
    "curl",
    "ruby"
  ]
}