Colombia
SECOP

SECOP Contracts Search

Search every contract the Colombian state has signed, across SECOP II (2015 onward) and SECOP I (2004 onward), in one shape. Full-text over the contract object and the parties, plus filters on the contractor's document (NIT or cédula, in any of the spellings SECOP prints), the cédula of the contractor's legal representative, the entity NIT, department, sector, contract type, modality, status, UNSPSC category, year, signature-date range and amount. This is the endpoint for "everything this company or person has contracted with the Colombian state".

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

post/co/secop/contracts-search/v1

Request

  • Base URL: https://api.croma.run
  • URL: https://api.croma.run/co/secop/contracts-search/v1
  • Auth: HTTP bearer

Headers

Idempotency-Keystring
Example:0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b

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.

Request body

querystring

Optional search terms matched against the free text of the record (what is being bought, the entity and the supplier). Leave empty to filter without searching.

platform'any' | 'secop_i' | 'secop_ii'

Restrict to one system: secop_ii (the transactional platform, 2015 onward), secop_i (the publication register, 2004 onward), or any for both.

entity_nitstring

Optional document filter: a NIT or a cédula, with or without dots and verification digit (900195855, 900.195.855-1 and 900195855-1 all match the same records).

departmentstring

Optional department of the contracting entity, as SECOP writes it (Antioquia, Bogotá D.C., ...). Empty for the whole country.

modalitystring

Optional modalidad de contratación, exactly as SECOP writes it (Contratación directa, Licitación pública, Mínima cuantía, ...). Empty for every modality.

contract_typestring

Optional tipo de contrato, exactly as SECOP writes it (Prestación de servicios, Obra, Suministros, ...). Empty for every type.

statusstring

Optional estado, exactly as SECOP writes it (Adjudicado, Celebrado, En ejecución, Terminado, ...). Empty for every status.

unspsc_codestring

Optional main UNSPSC category code of the purchase (V1.80101500). Empty for every category.

yearinteger

Optional calendar year. 0 searches every year.

from_datestring date

Optional date filter in yyyy-mm-dd format.

to_datestring date

Optional date filter in yyyy-mm-dd format.

min_valuenumber

Optional lower bound on the amount, in COP. 0 means no lower bound.

max_valuenumber

Optional upper bound on the amount, in COP. 0 means no upper bound.

sort'recent' | 'oldest' | 'value_desc' | 'value_asc'

Order of the results: recent (newest first, the default), oldest, value_desc (largest amount first) or value_asc.

pageinteger

1-based page number for paginated results.

per_pageinteger

Results per page (1-100).

provider_documentstring

Optional document filter: a NIT or a cédula, with or without dots and verification digit (900195855, 900.195.855-1 and 900195855-1 all match the same records).

legal_rep_documentstring

Optional document filter: a NIT or a cédula, with or without dots and verification digit (900195855, 900.195.855-1 and 900195855-1 all match the same records).

sectorstring

Optional sector of the contracting entity (Salud y Protección Social, Educación Nacional, ...). Published on SECOP II contracts only. Empty for every sector.

Response

Successful response

Changes

No recorded changes to this operation across all 1 revision of this API.