> ## 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.

# Consejo de Estado Jurisprudence Search

> Search the Relatoría del Consejo de Estado's traditional jurisprudence corpus (broadly providencias before December 2021) by section, type, date window, radicado, ponente, party or challenged rule. Each row carries the providencia's metadata plus a `url` permalink to feed to `consejo-estado-providencia`. For December 2021 onward use the SAMAI endpoints.

Supports async delivery: set `Prefer: wait=N` for an inline result, pass `callback_url` to receive a POST when ready, or poll `GET /jobs/{id}`.



## OpenAPI

````yaml /api-reference/openapi.json post /co/consejo-estado/search/v1
openapi: 3.1.0
info:
  title: Croma Marketplace API
  version: 1.0.0
  description: >-
    Government-data APIs for Colombia, Peru, Mexico, United States, Brazil, El
    Salvador, Bolivia, and Japan, plus 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: support@usecroma.com
servers:
  - url: https://api.croma.run
security: []
paths:
  /co/consejo-estado/search/v1:
    post:
      tags:
        - Colombia
        - Consejo de Estado
      summary: Consejo de Estado Jurisprudence Search
      description: >-
        Search the Relatoría del Consejo de Estado's traditional jurisprudence
        corpus (broadly providencias before December 2021) by section, type,
        date window, radicado, ponente, party or challenged rule. Each row
        carries the providencia's metadata plus a `url` permalink to feed to
        `consejo-estado-providencia`. For December 2021 onward use the SAMAI
        endpoints.


        Supports async delivery: set `Prefer: wait=N` for an inline result, pass
        `callback_url` to receive a POST when ready, or poll `GET /jobs/{id}`.
      operationId: consejo_estado_search
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
        - $ref: '#/components/parameters/Prefer'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: []
              properties:
                section:
                  type: string
                  maxLength: 80
                  default: ''
                  description: >-
                    Optional section filter (e.g. `SECCION TERCERA`, `SALA
                    PLENA`). Empty means all sections.
                type:
                  type: string
                  enum:
                    - ''
                    - AUTO
                    - CONCEPTO
                    - SENTENCIA
                  default: ''
                  description: Filter by providencia type; empty means any.
                registration_number:
                  type: string
                  maxLength: 40
                  default: ''
                  description: Optional número de proceso (radicado) filter.
                reporting_judge:
                  type: string
                  maxLength: 120
                  default: ''
                  description: Optional consejero ponente filter.
                plaintiff:
                  type: string
                  maxLength: 120
                  default: ''
                  description: Optional demandante (actor) filter.
                defendant:
                  type: string
                  maxLength: 120
                  default: ''
                  description: Optional demandado filter.
                statute:
                  type: string
                  maxLength: 120
                  default: ''
                  description: Optional norma o acto demandado filter.
                from_date:
                  type: string
                  format: date
                  default: ''
                  description: Optional date filter in yyyy-mm-dd format.
                to_date:
                  type: string
                  format: date
                  default: ''
                  description: Optional date filter in yyyy-mm-dd format.
                page:
                  type: integer
                  minimum: 1
                  maximum: 1000
                  default: 1
                  description: 1-based page number for paginated results.
                per_page:
                  type: integer
                  minimum: 1
                  maximum: 20
                  default: 5
                  description: >-
                    Results per page (max 20). The source returns one record per
                    view, so larger pages take proportionally longer.
                callback_url:
                  type: string
                  format: uri
                  description: POST the job result here when it finishes.
              additionalProperties: false
            example:
              section: SECCION TERCERA
              type: SENTENCIA
              from_date: '2020-01-01'
              to_date: '2020-12-31'
      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/ConsejoEstadoSearchResponse'
        '202':
          description: >-
            Accepted — the result is being computed asynchronously. Poll
            `job.status_url` (GET /jobs/{id}) or supply `callback_url` to have
            the result POSTed to you. Returned when `Prefer: wait` elapses
            before completion, or immediately when `callback_url` is set.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
            Location:
              description: Absolute URL to poll for job status.
              schema:
                type: string
                format: uri
                example: https://api.croma.run/jobs/run_123
            X-Job-Id:
              description: Id of the created job.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobEnvelope'
        '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/colombia/consejo-estado
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
    Prefer:
      name: Prefer
      in: header
      required: false
      description: >-
        Set `wait=N` to hold the connection up to N seconds for an inline
        result. If the job finishes in time you get the normal 200 body;
        otherwise a 202 with a `status_url` to poll.
      schema:
        type: string
        example: wait=30
  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=100;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 spend no credits, but still count toward an
        hourly ceiling.
      schema:
        type: string
        enum:
          - HIT
          - MISS
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  schemas:
    ConsejoEstadoSearchResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/ConsejoEstadoSearchData'
    JobEnvelope:
      type: object
      required:
        - job
        - data
        - error
      description: >-
        Returned by async-capable endpoints (202) and by GET /jobs/{id}. `data`
        holds the endpoint's normal result once `status` is `completed`; `error`
        is populated once `status` is `failed`.
      properties:
        job:
          type: object
          required:
            - id
            - status
            - endpoint
            - created_at
            - finished_at
            - status_url
          properties:
            id:
              type: string
            status:
              type: string
              enum:
                - queued
                - running
                - completed
                - failed
                - canceled
                - expired
            endpoint:
              type: string
              description: The endpoint path that created this job.
            created_at:
              type:
                - string
                - 'null'
              format: date-time
            finished_at:
              type:
                - string
                - 'null'
              format: date-time
            status_url:
              type: string
              format: uri
              description: GET this URL to poll the job.
        data:
          description: The endpoint's normal result object once completed; null until then.
          oneOf:
            - type: object
            - type: 'null'
        error:
          description: Populated once the job has failed; null otherwise.
          oneOf:
            - type: object
              required:
                - type
                - code
                - message
              properties:
                type:
                  type: string
                code:
                  type: string
                message:
                  type: string
            - type: 'null'
    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.
    ConsejoEstadoSearchData:
      type: object
      properties:
        seccion:
          type: string
          description: Echo of the applied filter (empty string when omitted).
        tipo:
          anyOf:
            - type: string
              const: ''
            - type: string
              enum:
                - AUTO
                - CONCEPTO
                - SENTENCIA
        fecha_desde:
          type: string
        fecha_hasta:
          type: string
        numero_proceso:
          type: string
        ponente:
          type: string
        demandante:
          type: string
        demandado:
          type: string
        total:
          anyOf:
            - type: number
            - type: 'null'
          description: Total records the source reports; null when not stated.
        page:
          type: number
        per_page:
          type: number
          description: >-
            Requested page size. The source shows one record per view, so a page
            is assembled by stepping its record navigator; a deep page may
            return fewer rows than requested.
        count:
          type: number
          description: Rows actually returned on this page.
        results:
          type: array
          items:
            type: object
            properties:
              radicado:
                anyOf:
                  - type: string
                  - type: 'null'
                description: Número de proceso / radicado.
              tipo:
                anyOf:
                  - type: string
                    enum:
                      - AUTO
                      - CONCEPTO
                      - SENTENCIA
                  - type: 'null'
              seccion:
                anyOf:
                  - type: string
                  - type: 'null'
                description: Sección or sala that issued the providencia.
              fecha:
                anyOf:
                  - type: string
                  - type: 'null'
                description: Providencia date, ISO yyyy-mm-dd when parseable.
              ponente:
                anyOf:
                  - type: string
                  - type: 'null'
              demandante:
                anyOf:
                  - type: string
                  - type: 'null'
              demandado:
                anyOf:
                  - type: string
                  - type: 'null'
              norma_demandada:
                anyOf:
                  - type: string
                  - type: 'null'
                description: Norma o acto demandado, when the row lists it.
              descriptores:
                type: array
                items:
                  type: string
                description: Descriptores / tema tags attached to the providencia.
              es_unificacion:
                type: boolean
                description: True when the row is flagged as a sentencia de unificación.
              es_extension:
                type: boolean
                description: True when the row is flagged as extensión de jurisprudencia.
              url:
                anyOf:
                  - type: string
                  - type: 'null'
                description: >-
                  Public permalink to the full text. Feed this to the
                  providencia lookup to retrieve `texto`. Null only when the row
                  carries no registration number.
            required:
              - radicado
              - tipo
              - seccion
              - fecha
              - ponente
              - demandante
              - demandado
              - norma_demandada
              - descriptores
              - es_unificacion
              - es_extension
              - url
      required:
        - seccion
        - tipo
        - fecha_desde
        - fecha_hasta
        - numero_proceso
        - ponente
        - demandante
        - demandado
        - total
        - page
        - per_page
        - count
        - results
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Use Authorization: Bearer YOUR_API_KEY'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.