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

# CGU Sanction

> Resolve one sanction on Brazil's federal integrity registers (CGU) by its id and return the full record: the party, its names and document (CPFs masked), the sanction, the sanctioning body, the dates, the legal basis, the process, and the fine, the expelled servant's post or the leniency agreement's terms where they apply. `found: false` when no register carries that id. Served by Croma (`as_of` says how current the data is), brought up to date daily.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.



## OpenAPI

````yaml /api-reference/openapi.json post /br/cgu/sanction/v1
openapi: 3.1.0
info:
  title: Croma Marketplace API
  version: 1.0.0
  description: >-
    Government-data APIs for Colombia, Peru, Mexico, and global web search.
    Croma normalizes public-sector data into structured JSON for product teams
    and AI agents.


    Every operation is a POST with a JSON body and an organization API key as a
    bearer token; every operation is an idempotent lookup and accepts an
    optional `Idempotency-Key` header. Paths carry their major version (`/v1`);
    the versioning and deprecation policy, including the `Deprecation` and
    `Sunset` headers a retiring endpoint sends, is at
    https://docs.usecroma.com/versioning. Rate limits are per organization and
    reported on every response (`RateLimit-Policy`, `X-RateLimit-*`):
    https://docs.usecroma.com/rate-limits.
  termsOfService: https://usecroma.com/en/terms
  contact:
    name: Croma support
    url: https://usecroma.com/en/support
    email: tomas@usecroma.com
servers:
  - url: https://api.croma.run
security: []
paths:
  /br/cgu/sanction/v1:
    post:
      tags:
        - Brazil
        - Controladoria-Geral da União (CGU)
      summary: CGU Sanction
      description: >-
        Resolve one sanction on Brazil's federal integrity registers (CGU) by
        its id and return the full record: the party, its names and document
        (CPFs masked), the sanction, the sanctioning body, the dates, the legal
        basis, the process, and the fine, the expelled servant's post or the
        leniency agreement's terms where they apply. `found: false` when no
        register carries that id. Served by Croma (`as_of` says how current the
        data is), brought up to date daily.


        **Dataset endpoint**: answers from the whole source in milliseconds and
        carries `as_of`.
      operationId: cgu_sanction
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id
              properties:
                id:
                  type: string
                  pattern: ^(?:ceis|cnep|ceaf|cepim|leniency)-[a-z0-9-]{1,80}$
                  description: >-
                    Id de la sanción, p. ej. `ceis-72529`, como lo devuelve la
                    búsqueda.
              additionalProperties: false
            example:
              id: ceis-72529
      responses:
        '200':
          description: Successful response
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Cache:
              $ref: '#/components/headers/X-Cache'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CguSanctionResponse'
        '400':
          description: Invalid request body
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Missing or invalid API key
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Rate limit exceeded
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '502':
          description: Upstream source returned an error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
      externalDocs:
        description: Interactive documentation and examples
        url: https://docs.usecroma.com/guides/brazil/cgu
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      description: >-
        Optional client-chosen key for this request (any string up to 255
        characters, e.g. a UUID). Every Croma operation is an idempotent lookup:
        repeating a request with the same body returns the same result and
        creates nothing, so retrying after a timeout or network failure is
        always safe. The key is echoed back in the `Idempotency-Key` response
        header so you can correlate a retry with its first attempt. Each attempt
        that reaches the API counts against the rate limit.
      schema:
        type: string
        maxLength: 255
        example: 0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b
  headers:
    X-Request-Id:
      description: Unique id for the request (req_…). Include it in support reports.
      schema:
        type: string
    RateLimit-Policy:
      description: >-
        Quota policy for this endpoint as an IETF RateLimit-Policy structured
        field, e.g. `"default";q=100;w=86400` (100 requests per 86400-second
        window per organization). Endpoints with an extra hourly ceiling list
        both policies, e.g. `"webSearch";q=10;w=3600, "default";q=100;w=86400`.
        Present on every response, including 401 and 429.
      schema:
        type: string
        example: '"default";q=100;w=86400'
    Idempotency-Key:
      description: >-
        The `Idempotency-Key` the request carried, echoed back unchanged. Absent
        when the request sent none.
      schema:
        type: string
    Deprecation:
      description: >-
        Present only on an endpoint version scheduled for removal: the date the
        deprecation took effect (RFC 9745). A `Sunset` header and a `Link` with
        `rel="successor-version"` accompany it. Policy:
        https://docs.usecroma.com/versioning
      schema:
        type: string
        example: '@1767225600'
    Sunset:
      description: >-
        Present only on an endpoint version scheduled for removal: the date
        after which it answers 410 (RFC 8594). Announced in the changelog at
        least 90 days ahead.
      schema:
        type: string
        format: date-time
        example: Wed, 01 Apr 2026 00:00:00 GMT
    X-RateLimit-Limit:
      description: Requests allowed in the current window.
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Requests left before you are throttled.
      schema:
        type: integer
    X-RateLimit-Reset:
      description: ISO 8601 timestamp when the window resets.
      schema:
        type: string
        format: date-time
    X-Cache:
      description: HIT or MISS. Cached hits still count against your quota.
      schema:
        type: string
        enum:
          - HIT
          - MISS
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  schemas:
    CguSanctionResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/CguSanctionData'
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              description: >-
                Broad category: invalid_request_error, authentication_error,
                not_found_error, rate_limit_error, upstream_error, api_error.
            code:
              type: string
              description: Machine-readable specific code.
            message:
              type: string
              description: Human-readable explanation, safe to surface in UI.
            param:
              type: string
              description: Field that triggered the error. Present on validation errors.
            details:
              type: object
              description: Free-form structured detail.
    CguSanctionData:
      type: object
      properties:
        found:
          type: boolean
        id:
          type: string
        as_of:
          anyOf:
            - type: string
            - type: 'null'
          description: How current the data in this response is.
        sanction:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  description: >-
                    The register and CGU's own code, joined by a hyphen, e.g.
                    `ceis-72529`: the key.
                list:
                  type: string
                  enum:
                    - ceis
                    - cnep
                    - ceaf
                    - cepim
                    - leniency
                  description: '`ceis`, `cnep`, `ceaf`, `cepim` or `leniency`.'
                sanction_code:
                  type: string
                  description: >-
                    CGU's own code for the sanction; the agreement number for a
                    non-profit's bar; the agreement id for a leniency agreement.
                party_type:
                  anyOf:
                    - type: string
                      enum:
                        - individual
                        - company
                    - type: 'null'
                  description: >-
                    `individual` or `company`; null for a foreign or
                    unidentified party.
                document_type:
                  anyOf:
                    - type: string
                      enum:
                        - cpf
                        - cnpj
                        - foreign
                    - type: 'null'
                  description: >-
                    What `document` is: a Brazilian CPF, a CNPJ, or a foreign
                    identifier.
                document:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The party's document as it can be shown: a CNPJ in full
                    (`12.345.678/0001-90`), a CPF masked the way CGU masks it
                    (`***.456.789-**`), a foreign identifier as published.
                name:
                  type: string
                  description: The party's name as the register records it.
                names:
                  type: array
                  items:
                    type: string
                  description: >-
                    Every name the register gives the party (as sanctioned, as
                    the sanctioning body reported it, the company's registered
                    and trade names), for search.
                sanction_type:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The kind of sanction, as CGU words it, e.g. `Suspensão`,
                    `Multa`, `Demissão`, `Declaração de Inidoneidade sem prazo
                    determinado`.
                start_date:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: '`yyyy-mm-dd` the sanction started.'
                end_date:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    `yyyy-mm-dd` the sanction's term ends, when it has one. A
                    past date does not mean the sanction has ended: CGU removes
                    a sanction from the register when it ends.
                publication_date:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: '`yyyy-mm-dd` the sanction was published.'
                final_judgment_date:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    `yyyy-mm-dd` the decision became final (trânsito em
                    julgado), for a court-imposed sanction.
                information_date:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: '`yyyy-mm-dd` the sanctioning body reported it.'
                publication:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    Where the sanction was published, e.g. `Diário Oficial da
                    União`.
                publication_detail:
                  anyOf:
                    - type: string
                    - type: 'null'
                scope:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: How far the sanction reaches (abrangência), as CGU words it.
                sanctioning_body:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The body that imposed the sanction; for a non-profit's bar,
                    the ministry that granted the transfer.
                sanctioning_body_state:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    Two-letter state (UF) of the sanctioning body, not of the
                    party; null for a federal body.
                sanctioning_body_sphere:
                  anyOf:
                    - type: string
                      enum:
                        - federal
                        - state
                        - municipal
                    - type: 'null'
                  description: '`federal`, `state` or `municipal`.'
                legal_basis:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The legal basis the sanctioning body cites.
                process_number:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The administrative or court process the sanction came from.
                information_source:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    Where CGU received the sanction from, e.g. `Conselho
                    Nacional de Justiça (CNJ-DF)`.
                notes:
                  anyOf:
                    - type: string
                    - type: 'null'
                fine_amount:
                  anyOf:
                    - type: number
                    - type: 'null'
                  description: The fine in reais, for a fine under the Anti-Corruption Law.
                reason:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: Why a non-profit is barred from federal transfers.
                public_servant:
                  anyOf:
                    - type: object
                      properties:
                        position:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: The permanent post the servant held (cargo efetivo).
                        role:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: The appointed role or function, when there was one.
                        unit:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: The federal body the servant worked in.
                        act_number:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: The number of the act that imposed the penalty.
                      required:
                        - position
                        - role
                        - unit
                        - act_number
                    - type: 'null'
                  description: Set only for an expelled federal servant.
                agreement:
                  anyOf:
                    - type: object
                      properties:
                        status:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: '`Em Execução` or `Cumprido`, as CGU words it.'
                        terms:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: The agreement's terms, as CGU summarises them.
                        effects:
                          type: array
                          items:
                            type: object
                            properties:
                              effect:
                                type: string
                                description: >-
                                  What the agreement grants, as CGU words it,
                                  e.g. an exemption from a declaration of
                                  unfitness.
                              detail:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                            required:
                              - effect
                              - detail
                          description: What the agreement grants the company.
                      required:
                        - status
                        - terms
                        - effects
                    - type: 'null'
                  description: Set only for a leniency agreement.
              required:
                - id
                - list
                - sanction_code
                - party_type
                - document_type
                - document
                - name
                - names
                - sanction_type
                - start_date
                - end_date
                - publication_date
                - final_judgment_date
                - information_date
                - publication
                - publication_detail
                - scope
                - sanctioning_body
                - sanctioning_body_state
                - sanctioning_body_sphere
                - legal_basis
                - process_number
                - information_source
                - notes
                - fine_amount
                - reason
                - public_servant
                - agreement
            - type: 'null'
      required:
        - found
        - id
        - as_of
        - sanction
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Use Authorization: Bearer YOUR_API_KEY'

````