# SECOP I and SECOP II, finally in one place

**Published:** August 30, 2026 | **Authors:** Cristian Correa

---

Colombia runs public procurement on two systems and both are still live. SECOP I, from 2004, is a publication register: an entity uploads what it did. SECOP II, from 2015, is a transactional platform: the process happens inside it. They publish different columns, in different words, at different grains.

That turned every serious question into two questions. "Everything this company has contracted with the state" meant searching twice and then reconciling two shapes that do not agree on a single field name.

As of today they are one corpus, in one vocabulary.

## Ten datasets

| Dataset | What it holds |
| --- | --- |
| `processes` | Every procurement process, from both systems |
| `contracts` | Every signed contract, from both systems |
| `awards` | Every awarded provider, not just the first one |
| `modifications` | Additions and extensions made after signature |
| `guarantees` | The insurance policies backing the contracts |
| `deliveries` | The delivery plan: what was promised and what arrived |
| `bidders` | Who bid on each process, losers included |
| `suppliers` | The SECOP II supplier register |
| `sanctions` | Fines and sanctions against contractors |
| `plans` | Each entity's annual purchasing plan |

A SECOP I contract and a SECOP II contract come back with the same field names. A contractor's document is stored in one canonical form, so it makes no difference whether you write `1234567890`, `1234567890-1` or `1.234.567.890-1`: all three find the same records. Every response carries `as_of`, which says how current the data is.

## One NIT, one call

The most common question about public procurement is also the most awkward to assemble: what has this company done with the state. It used to be four searches and a manual reconciliation. Now it is one:

```bash
curl https://api.croma.run/co/secop/profile/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "document": "1234567890" }'
```

It returns the supplier account if there is one, how many contracts have been signed and the largest of them, how many awards were won, how many processes were bid on, and every sanction on record. If the document turns out to belong to a public entity, it answers for the other side of the market too: what it has bought and how many processes it has published.

The counts are exact. The lists are the largest few, and the field names say so: `contracts` can be 412 while `largest_contracts` holds five. To page through the rest, take the same document to the contracts search.

## What you can ask now

Full-text search over what is being bought, combined with the entity, the department, the modality, the contract type, the category, the year, a date range and a value range. Sortable by amount:

```bash
curl https://api.croma.run/co/secop/contracts-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "waste collection",
    "department": "Antioquia",
    "year": 2025,
    "sort": "value_desc"
  }'
```

Two questions that had no answer before:

**Who else showed up.** `bidders` is the only published view of the losing bidders, so how contested a tender actually was can be measured rather than assumed.

**Which contracts grew after they were awarded.** `modifications-search` sorted by amount, with a floor, is the most direct way to find them.

All of it is on MCP as well, with the same names and the same filters.

## Endpoints being retired

Three endpoints each answered one question about SECOP II alone. The search that replaces each one answers the same question across both systems, with filters, paging and ordering. They keep working until 1 December 2026:

| Retiring | Use instead |
| --- | --- |
| `secop-contracts-by-provider` | `secop-contracts-search` |
| `secop-processes-by-entity` | `secop-processes-search` |
| `secop-sanctions-by-provider` | `secop-sanctions-search` |

The [documentation](https://docs.usecroma.com) has the detail of every field, and the [source page](/co/fuentes/secop) summarizes what SECOP publishes and since when.

---

**More updates:** [View all changelog entries](/en/changelog/sitemap.md) | [Croma](https://usecroma.com)
