ObservePoint Consent Categories API

APIs for managing Consent Categories

Business capability
Privacy & Data Protection Management BC-130.50

Operations 23

GET /v3/web-audits/{auditId}/consent-categories Get all the consent categories assigned to an audit #
PATCH /v3/web-audits/{auditId}/consent-categories Update the consent categories assigned to an audit #
GET /v3/web-audits/{auditId}/runs/{runId}/consent-categories Retrieve all consent categories snapshots that are applied to a specific audit… #
POST /v3/consent-categories/upload Create or update consent categories found in the file uploaded previously #
POST /v3/consent-categories/upload/preview Upload a file with consent category configurations and preview the changes #
GET /v3/consent-categories/library Get all consent categories in the account #
POST /v3/consent-categories/export request an export of all consent categories in the account #
POST /v3/consent-categories Create a consent category #
GET /v3/consent-categories/{consentCategoryId} Get a consent category #
PUT /v3/consent-categories/{consentCategoryId} Update a consent category #
DELETE /v3/consent-categories/{consentCategoryId} Delete a consent category #
PUT /v3/consent-categories/{consentCategoryId}/notes Upsert notes for the given Consent Category #
GET /v3/consent-categories/{consentCategoryId}/tags Get all tag entries of a consent category #
PATCH /v3/consent-categories/{consentCategoryId}/tags Patch consent category tag entries #
GET /v3/consent-categories/{consentCategoryId}/request-domains Get all request domains of a consent category #
PATCH /v3/consent-categories/{consentCategoryId}/request-domains Patch consent category request domains #
POST /v3/web-audits/{auditId}/runs/{runId}/consent-categories/reprocess Reprocess consent-category for the selected auditId and runIds #
GET /v3/consent-categories/{consentCategoryId}/cookies Get all cookies of a consent category #
PATCH /v3/consent-categories/{consentCategoryId}/cookies Patch consent category cookie entries #
GET /v3/consent-categories/{consentCategoryId}/web-audits Get audits assigned to the consent category #
PATCH /v3/consent-categories/{consentCategoryId}/web-audits Modify audit attachments #
GET /v3/consent-categories/{consentCategoryId}/labels Get all labels attached to specified consent category #
PATCH /v3/consent-categories/{consentCategoryId}/labels Patch labels attached to specified consent category #

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/observepoint-consent-categories-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

observepoint-consent-categories-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: V3 Consent Categories API
  description: This section documents the V3 API endpoints that provide access to comprehensive audit and journey data from ObservePoint. Use these endpoints to retrieve detailed reports, export data, manage alerts, configure scans and privacy settings, and analyze web performance metrics from your ObservePoint scans.
  version: null
  contact:
    name: Observepoint
    url: https://www.observepoint.com/contact-us
servers:
- url: https://api.observepoint.com
  description: ObservePoint Production API
tags:
- name: consent-categories
  x-displayName: Consent Categories
  description: APIs for managing Consent Categories
paths:
  /v3/web-audits/{auditId}/consent-categories:
    parameters:
    - $ref: '#/components/parameters/AuditId'
    get:
      tags:
      - consent-categories
      summary: Get all the consent categories assigned to an audit
      operationId: getAuditConsentCategories
      responses:
        '200':
          description: OK, return a list of consent-categories assigned to an audit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebAudit_ConsentCategories_ResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/web-audits/{auditId}/consent-categories
    patch:
      tags:
      - consent-categories
      summary: Update the consent categories assigned to an audit
      description: 'PATCH /v3/web-audits/{auditId}/consent-categories


        Update the consent categories assigned to an audit. The request will be rejected if trying to assign conflicting consent category types to the same audit'
      operationId: patchAuditConsentCategories
      requestBody:
        required: true
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AttachmentPatchDocument_RequestDTO'
      responses:
        '200':
          description: OK, return the modified consent category assignments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebAudit_ConsentCategories_ResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
  /v3/web-audits/{auditId}/runs/{runId}/consent-categories:
    parameters:
    - $ref: '#/components/parameters/AuditId'
    - $ref: '#/components/parameters/RunId'
    get:
      tags:
      - consent-categories
      summary: Retrieve all consent categories snapshots that are applied to a specific audit…
      operationId: getAuditRunConsentCategories
      responses:
        '200':
          description: OK, return a list of consent category snapshots assigned to this run
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebAudit_ConsentCategorySnapshots_ResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/web-audits/{auditId}/runs/{runId}/consent-categories
  /v3/consent-categories/upload:
    post:
      tags:
      - consent-categories
      summary: Create or update consent categories found in the file uploaded previously
      operationId: uploadConsentCategories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentCategoriesUploadRequest'
      responses:
        '200':
          description: OK, return a list of updated consent categories
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConsentCategoryDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: POST /v3/consent-categories/upload
  /v3/consent-categories/upload/preview:
    post:
      tags:
      - consent-categories
      summary: Upload a file with consent category configurations and preview the changes
      description: 'POST /v3/consent-categories/upload/preview


        File uploaded must be a xlsx or csv file and cannot be larger than 1MB'
      operationId: uploadConsentCategoriesPreview
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                upload:
                  type: string
                  format: binary
      responses:
        '200':
          description: Processed Results from File
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategoryUploadPreviewResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
      - API_Key: []
  /v3/consent-categories/library:
    get:
      tags:
      - consent-categories
      summary: Get all consent categories in the account
      operationId: getConsentCategoryLibrary
      parameters:
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: name
        required: false
        schema:
          type: string
        description: filter the consent categories by name
      - in: query
        name: labels
        required: false
        schema:
          type: array
          items:
            type: integer
        style: form
        explode: false
        description: filter the items by labels
      - in: query
        name: type
        required: false
        schema:
          $ref: '#/components/schemas/ConsentCategory_TypeEnum'
        description: filter the items by a given item type
      - in: query
        name: cmpVendor
        required: false
        description: filter the items by a given CMP vendor
        schema:
          $ref: '#/components/schemas/ConsentCategory_VendorTypeEnum'
      - in: query
        name: sortBy
        required: false
        schema:
          $ref: '#/components/schemas/ConsentCategoryLibrarySortByEnum'
      - $ref: '#/components/parameters/SortDescendingParam'
      responses:
        '200':
          description: Successfully returned a list of consent categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_LibraryResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/consent-categories/library
  /v3/consent-categories/export:
    post:
      tags:
      - consent-categories
      summary: request an export of all consent categories in the account
      deprecated: true
      description: 'POST /v3/consent-categories/export


        Please, use /v3/consent-categories/exports/ACCOUNT_CONSENT_CATEGORY_CONFIGS_EXPORT instead'
      operationId: exportConsentCategories
      responses:
        '204':
          description: Successfully requested an export of consent categories
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
  /v3/consent-categories:
    post:
      tags:
      - consent-categories
      summary: Create a consent category
      operationId: createConsentCategories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentCategory_CreateRequestDTO'
      responses:
        '200':
          description: Successfully created a consent category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategoryDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: POST /v3/consent-categories
  /v3/consent-categories/{consentCategoryId}:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    get:
      tags:
      - consent-categories
      summary: Get a consent category
      operationId: getConsentCategory
      responses:
        '200':
          description: Successfully retrieved a consent category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategoryDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/consent-categories/{consentCategoryId}
    put:
      tags:
      - consent-categories
      summary: Update a consent category
      operationId: updateConsentCategory
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentCategory_UpdateRequestDTO'
      responses:
        '200':
          description: Successfully updated a consent category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategoryDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: PUT /v3/consent-categories/{consentCategoryId}
    delete:
      tags:
      - consent-categories
      summary: Delete a consent category
      operationId: deleteConsentCategory
      responses:
        '204':
          description: Successfully deleted a consent category
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
      - API_Key: []
      description: DELETE /v3/consent-categories/{consentCategoryId}
  /v3/consent-categories/{consentCategoryId}/notes:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    put:
      tags:
      - consent-categories
      summary: Upsert notes for the given Consent Category
      operationId: updateConsentCategoriesNotes
      requestBody:
        description: Update notes for a given Consent Categories
        content:
          text/plain:
            schema:
              type: string
        required: false
      responses:
        '204':
          description: Successful operation
          content:
            text/plain:
              schema:
                type: string
                example: My notes for this Consent Category.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: PUT /v3/consent-categories/{consentCategoryId}/notes
  /v3/consent-categories/{consentCategoryId}/tags:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    get:
      tags:
      - consent-categories
      summary: Get all tag entries of a consent category
      operationId: getConsentCategoryTags
      responses:
        '200':
          description: Successfully returned a list of consent category tag entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_TagEntryResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/consent-categories/{consentCategoryId}/tags
    patch:
      tags:
      - consent-categories
      summary: Patch consent category tag entries
      operationId: patchConsentCategoryTagEntries
      requestBody:
        description: Patch Document
        required: true
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PatchDocument_RequestDTO'
      responses:
        '200':
          description: Successfully patched consent category tag entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_TagEntryResponseDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: PATCH /v3/consent-categories/{consentCategoryId}/tags
  /v3/consent-categories/{consentCategoryId}/request-domains:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    get:
      tags:
      - consent-categories
      summary: Get all request domains of a consent category
      operationId: getConsentCategoryRequestDomains
      responses:
        '200':
          description: Successfully returned a list of consent category request domains
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_RequestDomainResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/consent-categories/{consentCategoryId}/request-domains
    patch:
      tags:
      - consent-categories
      summary: Patch consent category request domains
      operationId: patchConsentCategoryRequestDomains
      requestBody:
        description: Patch Document
        required: true
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PatchDocument_RequestDTO'
      responses:
        '200':
          description: Successfully patched consent category tag entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_RequestDomainResponseDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: PATCH /v3/consent-categories/{consentCategoryId}/request-domains
  /v3/web-audits/{auditId}/runs/{runId}/consent-categories/reprocess:
    parameters:
    - $ref: '#/components/parameters/AuditId'
    - $ref: '#/components/parameters/RunId'
    post:
      tags:
      - consent-categories
      summary: Reprocess consent-category for the selected auditId and runIds
      operationId: reprocessConsentCategories
      responses:
        '200':
          description: OK, start reprocessing specified audit with specified consent category
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
      - API_Key: []
      description: POST /v3/web-audits/{auditId}/runs/{runId}/consent-categories/reprocess
  /v3/consent-categories/{consentCategoryId}/cookies:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    get:
      tags:
      - consent-categories
      summary: Get all cookies of a consent category
      description: 'GET /v3/consent-categories/{consentCategoryId}/cookies


        Get all cookies of a consent category'
      operationId: getConsentCategoryCookieEntries
      responses:
        '200':
          description: Cookies setup in a consent category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_CookieEntryResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
      - API_Key: []
    patch:
      tags:
      - consent-categories
      summary: Patch consent category cookie entries
      description: 'PATCH /v3/consent-categories/{consentCategoryId}/cookies


        patch a consent category cookie entry'
      operationId: patchConsentCategoryCookieEntries
      requestBody:
        description: JSON Object of Consent Category
        required: true
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PatchDocument_RequestDTO'
      responses:
        '200':
          description: Successfully patched a Consent Preference Cookie Entry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_CookieEntryResponseDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
  /v3/consent-categories/{consentCategoryId}/web-audits:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    get:
      tags:
      - consent-categories
      summary: Get audits assigned to the consent category
      description: 'GET /v3/consent-categories/{consentCategoryId}/web-audits


        Get audits assigned to the consent category'
      operationId: getConsentCategoryAudits
      responses:
        '200':
          description: Web audits assigned to the consent category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_WebAudits_ResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
    patch:
      tags:
      - consent-categories
      summary: Modify audit attachments
      description: 'PATCH /v3/consent-categories/{consentCategoryId}/web-audits


        Modify audit attachments'
      operationId: patchConsentCategoryAudits
      requestBody:
        description: Patch Document
        required: true
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AttachmentPatchDocument_RequestDTO'
      responses:
        '200':
          description: Web audits assigned to the consent category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentCategory_WebAudits_ResponseDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
  /v3/consent-categories/{consentCategoryId}/labels:
    parameters:
    - $ref: '#/components/parameters/ConsentCategoryId'
    get:
      tags:
      - consent-categories
      summary: Get all labels attached to specified consent category
      operationId: getConsentCategoryAssignedLabels
      responses:
        '200':
          description: Successfully returned a list of consent category assigned labels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelResponseDTO'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: GET /v3/consent-categories/{consentCategoryId}/labels
    patch:
      tags:
      - consent-categories
      summary: Patch labels attached to specified consent category
      operationId: patchConsentCategoryAssignedLabels
      requestBody:
        description: Patch Document
        required: true
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/AttachmentPatchDocument_RequestDTO'
      responses:
        '200':
          description: Successfully patched consent category assigned labels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LabelResponseDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - API_Key: []
      description: PATCH /v3/consent-categories/{consentCategoryId}/labels
components:
  schemas:
    ConsentCategory_RequestDomainResponseDTO:
      type: object
      properties:
        requestDomains:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategory_RequestDomainItemDTO'
    PatchDocument_ItemDTO:
      description: A JSONPatch document as defined by RFC 6902
      required:
      - op
      - path
      properties:
        op:
          type: string
          description: The operation to be performed
          enum:
          - add
          - remove
          - replace
          - move
          - copy
          - test
        path:
          type: string
          description: A JSON-Pointer
        value:
          type: object
          description: The value to be used within the operations.
        from:
          type: string
          description: A string containing a JSON Pointer value.
    AttachmentPatchDocument_RequestDTO:
      type: array
      items:
        $ref: '#/components/schemas/AttachmentPatchDocument_ItemDTO'
    AuditId:
      type: integer
      format: int64
      example: 107239
    ConsentCategory_ItemCountsDTO:
      type: object
      properties:
        tags:
          description: the number of tags in this consent category
          type: integer
        cookies:
          description: the number of cookies in this consent category
          type: integer
        requestDomainsAndGeos:
          description: the number of request domain/geo location pairs in this consent category
          type: integer
    ConsentCategory_CreateRequestDTO:
      type: object
      required:
      - name
      - type
      properties:
        name:
          type: string
          minLength: 1
        notes:
          type: string
        type:
          $ref: '#/components/schemas/ConsentCategory_TypeEnum'
        isDefaultCC:
          type: boolean
          description: If true, this is the default consent category
        cmpData:
          $ref: '#/components/schemas/ConsentCategory_Cmp_Data'
    ConsentCategory_TypeEnum:
      type: string
      enum:
      - approved
      - unapproved
    CookieDomainMatchType:
      type: string
      enum:
      - domain_any
      - domain_regex
      - domain_exact_match
    ConsentCategoriesUploadRequest:
      type: object
      required:
      - fileId
      - consentCategories
      properties:
        fileId:
          type: string
        consentCategories:
          type: array
          default: []
          items:
            $ref: '#/components/schemas/ConsentCategoryUploadWithLabels'
    ConsentCategoryFoundResult:
      type: object
      required:
      - consentCategoryName
      - noOfNewCookies
      - consentCategoryId
      properties:
        consentCategoryName:
          type: string
        noOfNewCookies:
          type: integer
        noOfNewTags:
          type: integer
        noOfNewRequests:
          type: integer
        consentCategoryId:
          $ref: '#/components/schemas/ConsentCategoryId'
        labels:
          type: array
          items:
            $ref: '#/components/schemas/Label'
    ConsentCategory_WebAudits_ResponseDTO:
      type: object
      properties:
        webAudits:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategory_WebAudits_ItemDTO'
    ConsentCategoryDTO:
      type: object
      properties:
        name:
          type: string
        notes:
          type: string
        type:
          $ref: '#/components/schemas/ConsentCategory_TypeEnum'
        id:
          $ref: '#/components/schemas/ConsentCategoryId'
        isDefaultCC:
          type: boolean
          description: If true, this is the default consent category
        cmpData:
          $ref: '#/components/schemas/ConsentCategory_Cmp_Data'
        updatedType:
          $ref: '#/components/schemas/ConsentCategory_updatedType'
        updatedAt:
          type: string
          format: date-time
          description: The last time this consent category was updated in UTC timezone
    ConsentCategory_TagEntryResponseDTO:
      type: object
      properties:
        tags:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategory_TagEntryItemDTO'
    ConsentCategorySnapshotDTO:
      type: object
      description: A consent category snapshot dto
      required:
      - name
      - type
      - consentCategoryId
      - consentCategorySnapshotId
      - consentCategoryConfigExists
      properties:
        name:
          type: string
        notes:
          type: string
        type:
          $ref: '#/components/schemas/ConsentCategory_TypeEnum'
        consentCategoryId:
          $ref: '#/components/schemas/ConsentCategoryId'
        consentCategorySnapshotId:
          $ref: '#/components/schemas/ConsentCategorySnapshotId'
        consentCategoryConfigExists:
          type: boolean
          description: If false, the consent category config doesn't exist anymore
    ConsentCategory_LibraryItemDTO:
      allOf:
      - $ref: '#/components/schemas/ConsentCategoryDTO'
      - type: object
        properties:
          itemCounts:
            $ref: '#/components/schemas/ConsentCategory_ItemCountsDTO'
          auditCount:
            description: the number of audits this consent category is assigned to
            type: integer
          labelIds:
            type: array
            items:
              type: integer
    ConsentCategory_CookieEntryItemDTO:
      description: DTO For Cookie under a consent preference bucket
      type: object
      properties:
        nameType:
          $ref: '#/components/schemas/CookieNameMatchType'
        name:
          type: string
        domainType:
          $ref: '#/components/schemas/CookieDomainMatchType'
        domain:
          type: string
        cookieDescription:
          type: string
    WebAudit_ConsentCategories_ResponseDTO:
      type: object
      required:
      - consentCategories
      properties:
        consentCategories:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategoryDTO'
    ConsentCategory_WebAudits_ItemDTO:
      type: object
      properties:
        auditId:
          type: integer
        auditName:
          type: string
        domain:
          type: string
        createdBy:
          type: integer
        access:
          type: boolean
        lastRun:
          type: string
          format: date-time
    WebAudit_ConsentCategorySnapshots_ResponseDTO:
      type: object
      description: 'NOTE: For individual consent category snapshot, Field consentCategoryId is omitted when the consent category is deleted'
      properties:
        consentCategorySnapshots:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategorySnapshotDTO'
    RunId:
      type: integer
      format: int64
      example: 33010
    Label:
      description: DTO for Labels
      type: object
      required:
      - id
      - name
      properties:
        id:
          $ref: '#/components/schemas/LabelId'
        name:
          type: string
    ConsentCategory_Cmp_Data:
      type: object
      required:
      - cmpVendor
      - oneTrustCookieGroupDomain
      - oneTrustCookieGroupId
      - oneTrustCookieGroupGeo
      properties:
        cmpVendor:
          $ref: '#/components/schemas/ConsentCategory_VendorTypeEnum'
        oneTrustCookieGroupDescription:
          type: string
          description: The OneTrust provided description of the group
        oneTrustCookieGroupDomain:
          type: string
          description: The domain reported by OneTrust for which the consent group applies
          example: observepoint.com
        oneTrustCookieGroupId:
          type: string
          description: The OneTrust ID for the group
          example: C001
        oneTrustCookieGroupGeo:
          type: string
          description: The geographic location for which the consent group applies
          example: us, ut
        sourceUrl:
          type: string
          description: The full URL of the page where the CMP import was run
          example: https://example.com
    ErrorModel:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        message:
          type: string
        details:
          type: string
        validationReport:
          type: object
    ConsentCategoryUploadPreviewResult:
      type: object
      required:
      - results
      properties:
        fileId:
          type: string
        results:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategoryFoundResult'
    ConsentCategory_CookieEntryResponseDTO:
      description: DTO for cookie entry response
      type: object
      required:
      - cookies
      properties:
        cookies:
          type: array
          items:
            $ref: '#/components/schemas/ConsentCategory_CookieEntryItemDTO'
    PatchDocument_RequestDTO:
      type: array
      items:
        $ref: '#/components/schemas/PatchDocument_ItemDTO'
    RequestDomainMatchType:
      type: string
      enum:
      - domain_any
      - domain_regex
      - domain_exact_match
    ConsentCategoryId:
      type: integer
      example: 3301
      description: ID of consent category
    ConsentCategory_UpdateRequestDTO:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          minLength: 1
        notes:
          type: string
        isDefaultCC:
          type: boolean
          description: If true, this is the default consent category
        cmpData:
          $ref: '#/components/schemas/ConsentCategory_Cmp_Data'
    CommonIterableResponseMetadata:
      description: Common metadata for iterable
      type: object
      required:
      - pagination
      properties:
        pagination:
          $ref: '#/components/schemas/PaginationMetadata'
    LabelId:
      type: integer
      format: int64
      description: Label identifier
      

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/observepoint/refs/heads/main/openapi/observepoint-consent-categories-api-openapi.yml