Colombia · co_cce_secop_procurement_search
OpenAPI

Search cce · secop-procurement

GET https://api.latinfo.dev/co/cce/secop-procurement/search

Search the published search_blob index. Results are candidates, not confirmed identity matches. Confirm the country and identifier before fetching a profile. An empty list is not proof of absence. For a reproducible integration check, fetch the documented lookup example for this source and choose one complete whitespace-separated word of at least three letters from its search_blob value as q. Choose a word containing only letters, avoiding damaged publisher text or partial words; keep q within 200 characters. Search returns a bounded candidate list, not an exhaustive export. Candidate names and status text may be truncated. Fetch the source lookup to obtain the complete record and interpret its status vocabulary; do not classify a company from candidate text alone.

Source contract

Publisher
Colombia Compra Eficiente
Coverage
Published SECOP II processes in the staged snapshot; excludes SECOP I and the offers dataset. Not an exhaustive contract history.
Record meaning
One procurement process in the REQ namespace. Contracts join through its BDOS portfolio identifier; where several contracts match, only one selected contract is retained.
Identifier
Use the public process ID, for example CO1.REQ.100001. coSecopProcess normalizes it to the stored zero-padded numeric-first ID. Search hits expose the stored ID; convert it back to the documented public form before lookup.
Accepted pattern
^CO\d\.REQ\.\d{1,10}$
Normalization
coSecopProcess
Cardinality
one
License
Reuse permission has not been verified. Public access is not a reuse license.

Known limitations

  • Corporate identity is a reviewed NIT-shape predicate, not confirmation against RUES or proof of current legal status.
  • Natural-person contractor and awardee names/documents and contractor addresses are redacted; affected free text is scrubbed. Empty fields may be missing, unmatched or redacted and do not establish a negative finding.
  • Only one contract is selected per portfolio; contract values are not totals across all related contracts. bidder_count counts distinct corporate-shaped NITs, not every submission or participant.
  • Process and contract dates are publisher timestamps, never import time. Numbered phase timestamp suffixes are original field names, not inferred chronology.
  • Monetary strings preserve the publisher values in COP without scaling or conversion. Truncated field valor_pendiente_de has no inferred financial category.
  • duracion uses the original unidad_de_duracion; duracion_del_contrato is unparsed publisher text. Funding-source fields are indicators rather than monetary amounts.
  • PPI, PCI, agreement-point and agreement-pillar fields are preserved without expanding undocumented abbreviations or categories.
  • Source data, statuses and privacy redactions do not establish legal clearance, eligibility, ownership or complete procurement coverage.

Machine-readable source contract · Source documentation

Authentication required. REST requests use a Latinfo API key. The interactive console builds the authorization header and does not store the key.

Parameters

qstringqueryrequired

Name query, 3–200 characters.

Request example

curl https://api.latinfo.dev/co/cce/secop-procurement/search?q=q \
  -H "Authorization: Bearer $LATINFO_API_KEY"

Responses

200Published source records. Missing data is not a clearance or a negative finding.

Response headers

X-Latinfo-Imported-At

Import time, not the date of the government observation.

X-Source-Updated-At

Publisher update time, when known.

X-Latest-Observation-At

Latest observation date in this response page, when known. For a complete paginated history, preserve each page date or take the maximum date across all pages. Never use import time as observation time.

X-Freshness-Status

string

CURRENT · DELAYED · STALE · UNKNOWN
X-Credits-Cost

Actual credits charged for this request.

X-Source-Generation

Opaque immutable source generation. Follow the guarded next-page Link when collecting a history.

Content-Type: application/json

Response fields

[].id string
[].search_blob string

Search text assembled from redacted process title, description and buying entity, capped at 2000 characters; not the complete original document.

[].estado_del_procedimiento string

Original process status; not a company compliance or tax status.

Response schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "search_blob": {
        "type": "string",
        "description": "Search text assembled from redacted process title, description and buying entity, capped at 2000 characters; not the complete original document.",
        "x-latinfo-meaning": "text"
      },
      "estado_del_procedimiento": {
        "type": "string",
        "description": "Original process status; not a company compliance or tax status.",
        "x-latinfo-meaning": "text"
      }
    }
  }
}
400Invalid identifier or query. Correct the input before retrying.
No response body documented.
401Missing or invalid API key. Authenticate before retrying.
No response body documented.
404No published record, or identifier outside the legal-entity scope. Not proof that the company does not exist.
No response body documented.
429Rate or credit limit exceeded. Inspect the response and rate-limit headers before retrying.
No response body documented.
503Source unavailable. Report unavailable, not an empty result.
No response body documented.
Example JSON

Illustrative schema example. This is not a live response.

[
  {
    "id": "string",
    "search_blob": "string",
    "estado_del_procedimiento": "string"
  }
]

Provenance and limitations

Coverage varies by country and public source. A missing field is not evidence that the underlying fact does not exist. Public registries may be delayed or contain source errors; inspect the returned evidence and source date before relying on a result.