---
title: "SIC Patent"
method: POST
path: "/co/sic-ip/patent/v1"
tags: ["Colombia", "SIC, Registro de la Propiedad Industrial"]
---

# SIC Patent

`POST /co/sic-ip/patent/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/sic-ip/patent/v1`
- Auth: HTTP bearer

Read one Colombian patent case in full by its file number (e.g. `NC2026/0006185`): status and dates, grant, title, abstract, technology sector, every party (applicant, inventor, agent, contact) with identification number and address, the public specification, the procedural history, linked requests and every document of the file with Croma's copy. Answers from Croma's copy within a day of the last read; `found: false` when the register has no patent under the number. Find numbers with `sic_ip_patents_search`.

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}`.

**Lookup endpoint**: answers from Croma's copy when it holds a recent answer for the key, otherwise reads the source and keeps the answer; carries `checked_at` and `served_from`.

## Headers

- `Idempotency-Key` string
- `Prefer` string

## Request body

- object
  - `file_number` string, required: The case's file number (expediente), e.g. `SD2026/0031979` for a trademark or `NC2026/0006185` for a patent or a design, or the bare digits of a file opened before 2016 (`16137606`). The year's consecutive may be written without its leading zeros.
  - `callback_url` string, uri: POST the job result here when it finishes.

## Response `200`

Successful response

- SicIpPatentResponse
  - `data` SicIpPatentData, required
    - `found` boolean, required: False when the register has no case of this kind under the number.
    - `file_number` string, required
    - `checked_at` string, nullable, required: When the register was last asked for this case.
    - `served_from` 'copy' | 'upstream' | 'stale', nullable, required: `copy` when Croma answered from what it stored within the last day, `upstream` when the register was read for this request, `stale` when the register could not be read and the last stored answer stood in.
    - `patent` object, nullable, required
      - `file_number` string, required: The case's file number (expediente).
      - `kind` 'trademark' | 'patent' | 'design', required: What the case protects.
      - `procedure_type` string, nullable, required: The kind of request as the register names it, e.g. `SD Solicitud de Signos Distintivos`, `Patente de Invención Nacional`, `NC Solicitud de Diseño Industrial`.
      - `status` string, nullable, required: The case's status as the register words it, e.g. `Registrada`, `Publicada`, `Concedida`.
      - `title` string, nullable, required: The sign (trademarks) or the title (patents, designs).
      - `sign_type` string, nullable, required: Trademarks: the kind of sign, e.g. `Marca`, `Lema Comercial`, `Nombre Comercial`.
      - `sign_nature` string, nullable, required: Trademarks: `Nominativa`, `Mixta`, `Figurativa`, `Tridimensional`, `Sonora` and so on.
      - `filing_date` string, nullable, required: `yyyy-mm-dd` the application was filed (fecha de presentación).
      - `submitted_on` string, nullable, required: `yyyy-mm-dd` the application was received (fecha de radicación).
      - `publication_ordered_on` string, nullable, required: `yyyy-mm-dd` publication was ordered.
      - `gazette_number` string, nullable, required: The Gaceta de Propiedad Industrial that published the application.
      - `published_on` string, nullable, required: `yyyy-mm-dd` of that publication.
      - `certificate_number` string, nullable, required: Registration certificate or grant number.
      - `registered_on` string, nullable, required: `yyyy-mm-dd` the mark was registered or the patent or design granted.
      - `expires_on` string, nullable, required: `yyyy-mm-dd` the right runs out unless renewed (vigencia).
      - `applicant_reference` string, nullable, required: The applicant's own reference for the case.
      - `nice_version` string, nullable, required: Trademarks: the edition of the Nice classification the classes follow.
      - `classes` object[], required: Trademarks: each Nice class with the goods and services the mark covers in it.
        - `code` string, required
        - `description` string, nullable, required
      - `nice_classes` string[], required: Trademarks: the Nice class numbers alone.
      - `locarno` object[], required: Designs: the Locarno classes.
        - `code` string, required
        - `description` string, nullable, required
        - `version` string, nullable, required
      - `patent_type` string, nullable, required: Patents: e.g. `Patente de Invención Nacional`, `Patente de Modelo de Utilidad`, `Patente PCT`.
      - `technology_sector` string, nullable, required: Patents: the technology sector as the register files it.
      - `technology_subsector` string, nullable, required
      - `abstract` string, nullable, required: Patents: the abstract (resumen) as filed.
      - `design_type` string, nullable, required: Designs: `Diseño Industrial 2D` or `3D`.
      - `parties` object[], required: Everyone the case names, with their identification number and address as the register records them.
        - `role` string, required: `owner` (titular), `applicant`, `agent` (apoderado or legal representative), `contact`, `inventor` or `designer`.
        - `document_number` string, nullable, required: The party's identification number as the register records it: NIT for a company, cédula or the register's own number for a person.
        - `wipo_id` string, nullable, required
        - `name` string, nullable, required
        - `address` string, nullable, required: The address the register records for the party.
      - `images` object[], required: The mark's label or the design's figures, kept by Croma.
        - `name` string, nullable, required: The file name the register published the file under.
        - `document_url` string, nullable, required: Croma's copy, byte for byte. Null when the register withholds the file, or when it lies past the copies kept per case (see `documents_kept`).
        - `source_document_url` string, required: The register's own link to the file.
        - `bytes` integer, nullable, required: Size of our copy in bytes.
        - `role` 'label' | 'figure', required
      - `specification` object[], required: Patents: the public specification (description, claims, drawings), kept by Croma.
        - `name` string, nullable, required: The file name the register published the file under.
        - `document_url` string, nullable, required: Croma's copy, byte for byte. Null when the register withholds the file, or when it lies past the copies kept per case (see `documents_kept`).
        - `source_document_url` string, required: The register's own link to the file.
        - `bytes` integer, nullable, required: Size of our copy in bytes.
        - `type` string, nullable, required
      - `history` object[], required: The case's procedural history, newest first.
        - `action` string, nullable, required: Tipo de actuación, e.g. `Solicitud de signo distintivo`, `Marcas`, `Edición de signo distintivo`.
        - `description` string, nullable, required: What happened, as the register words it; a publication carries the full gazette entry, an edit the field with its old and new value.
        - `created_at` string, nullable, required: When the event was recorded, ISO 8601 at -05:00.
        - `gazette_number` string, nullable, required
        - `published_on` string, nullable, required
      - `linked_procedures` object[], required: Oppositions, transfers, licences, name changes, corrections and other requests filed against the case.
        - `file_number` string, required: The linked request's own number.
        - `procedure_type` string, nullable, required: e.g. `SD Oposición de Signos Distintivos`, `SD Transferencia de Signo Distintivo`, `DPI Gestión de personas`.
        - `link_type` string, nullable, required
        - `title` string, nullable, required
        - `filed_on` string, nullable, required
        - `status` string, nullable, required
        - `owner` string, nullable, required: The party that filed it (an opponent, the new owner).
      - `documents` object[], required: Every document of the file, newest first: resolutions, oficios, the applicant's filings, certificates.
        - `name` string, nullable, required: The file name the register published the file under.
        - `document_url` string, nullable, required: Croma's copy, byte for byte. Null when the register withholds the file, or when it lies past the copies kept per case (see `documents_kept`).
        - `source_document_url` string, required: The register's own link to the file.
        - `bytes` integer, nullable, required: Size of our copy in bytes.
        - `title` string, nullable, required: The document's type as the register names it, e.g. `TM5 - Requerimiento Examen de Forma`.
        - `resolution_number` string, nullable, required
        - `document_date` string, nullable, required
        - `act_date` string, nullable, required
        - `sent_date` string, nullable, required
        - `notified_on` string, nullable, required
        - `enforced_on` string, nullable, required
        - `parties` object[], required
          - `name` string, nullable, required: The party the document was notified to, as the register writes it.
          - `notified_on` string, nullable, required: `yyyy-mm-dd` that party was notified.
          - `enforced_on` string, nullable, required: `yyyy-mm-dd` the act became final for that party (ejecutoria).
      - `documents_total` integer, required: Documents the register lists for the case.
      - `documents_kept` integer, required: Documents of which Croma holds a copy; the newest ones are kept when a file has more than the per-case limit.
      - `fields` object[], required: Every labelled field of the case page, as the register prints it, for anything the named fields above do not carry.
        - `label` string, required
        - `value` string, required
      - `checked_at` string, required

## Other responses

- `202`: 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.
- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
