> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cookiechimp.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the regional compliance report

> Evaluate the account's banners against every regulation CookieChimp
tracks, and report what is outstanding — the same evaluation the
dashboard's compliance screen renders.

Regulations the account has chosen to ignore are reported separately in
`ignored_jurisdictions` rather than dropped, and are excluded from the
top-level `compliant` verdict.

Requires a plan that includes the compliance report.




## OpenAPI

````yaml get /compliance
openapi: 3.1.0
info:
  title: CookieChimp API
  description: |
    API for CookieChimp.com.

    ## Request bodies

    Resource endpoints expect the resource wrapped under its own key, e.g.
    `{"category": {"name": "Analytics"}}` rather than a bare object.
    `PUT /password` wraps in `user`. Two endpoints take their body unwrapped:
    `POST /auth`, which takes `email` and `password` at the top level, and
    `POST /consent-banners/from-template`, which takes `jurisdiction_id` —
    a selector for which template to build from, not an attribute of the
    banner it creates.

    ## Response envelopes

    Listing endpoints — including `GET /groups` and `GET /accounts` — return
    `{"pagination": {...}, "data": [...]}`. `GET /banner-templates` is the
    exception: it returns `{"data": [...]}` with no pagination, being a fixed
    catalogue rather than a collection of the account's records.
    Most single-resource endpoints
    return `{"data": {...}}`; a single group or account is returned unwrapped.
    Resource-deletion endpoints return `{"message": "..."}`; `DELETE /auth`
    returns an empty object.
  version: 1.2.0
servers:
  - url: https://cookiechimp.com/api/v1
security:
  - authorization: []
paths:
  /compliance:
    get:
      tags:
        - Compliance
      summary: Get the regional compliance report
      description: |
        Evaluate the account's banners against every regulation CookieChimp
        tracks, and report what is outstanding — the same evaluation the
        dashboard's compliance screen renders.

        Regulations the account has chosen to ignore are reported separately in
        `ignored_jurisdictions` rather than dropped, and are excluded from the
        top-level `compliant` verdict.

        Requires a plan that includes the compliance report.
      operationId: getComplianceReport
      parameters:
        - $ref: '#/components/parameters/account_id'
      responses:
        '200':
          description: The compliance report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComplianceReportResponse'
        '401':
          $ref: '#/components/responses/AccountTokenRequired'
        '403':
          description: The account's plan does not include the compliance report
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                errors:
                  - code: 403
                    message: The compliance report is not available on this plan
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    account_id:
      name: account_id
      in: query
      description: |
        Which account to act on, as the account's API id. Only meaningful for a
        user API key, which may reach several accounts — an account key already
        identifies exactly one and ignores this.

        Accepted by the endpoints that declare it; others act on the account the
        key resolves to on its own.

        Optional for reads, where it narrows the request to that account.
        Required for writes that declare it when the key can reach more than one
        account: without it the request would act on an account it picked rather
        than one you named, so it is refused with a `400`.
      required: false
      schema:
        type: string
  schemas:
    ComplianceReportResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            compliant:
              type: boolean
              description: |
                True when every regulation not ignored is satisfied.
            jurisdictions:
              type: array
              items:
                $ref: '#/components/schemas/ComplianceJurisdiction'
            ignored_jurisdictions:
              type: array
              description: |
                Regulations the account has chosen to ignore. Reported so a
                client can see what was excluded from `compliant`.
              items:
                $ref: '#/components/schemas/ComplianceJurisdiction'
    Error:
      type: object
      description: |
        The standard error envelope, used for authentication, authorization,
        pagination and not-found errors.
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: integer
              message:
                type: string
      example:
        errors:
          - code: 401
            message: Invalid API Key
    ComplianceJurisdiction:
      type: object
      properties:
        id:
          type: string
          description: Identifier for the regulation, e.g. `gdpr`
        name:
          type: string
        region:
          type: string
        flag:
          type:
            - string
            - 'null'
        applicability:
          type:
            - string
            - 'null'
          description: Who the regulation applies to
        legal_refs:
          type:
            - array
            - 'null'
          items:
            type: object
            additionalProperties: true
        compliant:
          type: boolean
          description: Whether the banner covering this regulation satisfies it
        issues:
          type: array
          description: Requirements not currently met
          items:
            type: object
            additionalProperties: true
        warnings:
          type: array
          description: Things worth attention that do not by themselves fail the check
          items:
            type: object
            additionalProperties: true
        compliant_items:
          type: array
          description: Requirements already satisfied
          items:
            type: object
            additionalProperties: true
        matched_region:
          type:
            - string
            - 'null'
          description: The targeted region that caused this banner to be selected
        banner:
          type: object
          description: |
            The banner evaluated for this regulation. Both fields are null when
            no banner targets it, which is itself a compliance issue.
          properties:
            id:
              type:
                - string
                - 'null'
            name:
              type:
                - string
                - 'null'
  responses:
    AccountTokenRequired:
      description: |
        Missing or invalid API token, or a token that does not resolve to an
        account. Account-scoped endpoints accept an account token, or a user
        token whose user belongs to an account; partner tokens are rejected.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - code: 401
                message: API key must belong to an account
    RateLimited:
      description: |
        Too many requests. The general limit is 300 requests per 5 minutes per
        API token; the auth endpoints are throttled more tightly per IP.
      headers:
        Retry-After:
          description: Seconds until the current rate-limit window resets
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - code: 429
                message: Too many requests. Please retry later.
  securitySchemes:
    authorization:
      type: http
      scheme: bearer
      description: API token obtained from the login endpoint or the dashboard

````