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

# SIGEP II

> Search Colombia's directory of public servants and contractors, read a person's hoja de vida, and look up any state entity in SIGEP II.

SIGEP II is the Departamento Administrativo de la Función Pública's register of
who works for the Colombian state. Every entity reports its public servants and
contractors there, with the post they hold, their education and work history,
the contracts in force and the entity's salary scale, and the directory of
entities records each one's NIT, legal nature, order, sector and location.

Search people by name, entity or city and narrow by department, municipality,
entity or employment type; read one hoja de vida in full; search the entities;
and read one entity's record.

## Search people

`POST /co/sigep/servants-search/v1` [Live](https://docs.usecroma.com/live-lookups.md)

One search over every person an entity reports to SIGEP II, servants and contractors alike.

| Field | Type | Notes |
| - | - | - |
| `query` | string | Names and surnames, an entity or a city. Optional when a filter is given. |
| `department` | string | Optional department of the post, e.g. `CÓRDOBA`. Accents and case are optional. |
| `municipality` | string | Optional municipality of the post, e.g. `MONTERÍA`. Accents and case are optional. |
| `entity_code` | string | Optional SIGEP code of an entity: `facets.entities[].code`, or `sigep_code` from the entity endpoints. |
| `employment_type` | enum | Optional: `servidor_publico` or `contratista`. |
| `page` | integer | 1-based page number. Default `1`. |
| `per_page` | integer | Results per page (1-100). Default `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/sigep/servants-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "query": "alcaldia de monteria",
        "employment_type": "servidor_publico"
      }'
```

Returns the applied filters, `total`, `total_pages`, `page`, `per_page`, `count`, `results[]` and `facets`.

| Field | Notes |
| - | - |
| `results[].id` | Hoja de vida id: pass it as `servant_id` to SIGEP II Person. |
| `results[].full_name` | Names and surnames as published. |
| `results[].employment_type` | `servidor_publico` or `contratista`, with the directory's own `employment_type_label`. |
| `results[].entity` / `entity_code` | The entity the person is linked to and its SIGEP code. |
| `results[].phone`, `city`, `department` | Contact phone and place of the post, as the entity reported them. |
| `results[].url` | The person's page in the public directory. |
| `facets` | `departments[]`, `municipalities[]`, `entities[]` (with `code`) and `employment_types[]`, each with `name` and `count`: how the matches break down, and the exact values the filters accept. |

> [!NOTE]
>
> Department and municipality filters are matched against the directory's own
> spelling. `cordoba` and `CÓRDOBA` both work: the response echoes the
> spelling that was applied.

## One hoja de vida

`POST /co/sigep/servant/v1` [Live](https://docs.usecroma.com/live-lookups.md)

| Field | Type | Notes |
| - | - | - |
| `servant_id` | string | **Required.** The `id` from SIGEP II People Search, e.g. `S2060152-4395-4`. |

```bash theme={"dark"}
curl https://api.croma.run/co/sigep/servant/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "servant_id": "S2060152-4395-4" }'
```

Returns `found`, `servant_id` and `servant`:

| Field | Notes |
| - | - |
| `full_name`, `position`, `employment_type` | Who the person is and the post they hold. |
| `entity`, `dependency` | The entity and the office inside it. |
| `email`, `phone`, `fax` | Contact details as the entity reported them; `null` when not reported. |
| `birthplace` | `municipality`, `department`, `country`. |
| `education[]` | `level`, `program`, `status` and the `raw` line. |
| `experience[]` | `position`, `entity`, `start_date`, `end_date` (`yyyy-mm-dd`) and `current`. |
| `contracts[]` | Contracts in force: `entity`, `object`, `start_date`, `end_date`, `amount` (COP) and `amount_text`. |
| `salary_scale[]` | The entity's salary scale (`salary_scale_entity`): `level`, `denomination`, `grade`, `total` (COP monthly). |

> [!NOTE]
>
> An id the directory does not hold returns `found: false` with HTTP 200.

## Search entities

`POST /co/sigep/entities-search/v1` [Live](https://docs.usecroma.com/live-lookups.md)

| Field | Type | Notes |
| - | - | - |
| `query` | string | Optional words in the entity's name. Empty lists every entity. |
| `department` | string | Optional department. Accents, case and punctuation are ignored. |
| `municipality` | string | Optional municipality. Accents, case and punctuation are ignored. |
| `order` | enum | Optional: `nacional` or `territorial`. |
| `page` | integer | 1-based page number. Default `1`. |
| `per_page` | integer | Results per page (1-100). Default `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/sigep/entities-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "alcaldia", "department": "antioquia" }'
```

Returns the applied filters, `total`, `total_pages`, `page`, `per_page`, `count` and `results[]`. Each entity carries `entity_id`, `sigep_code`, `name`, `nit` and `verification_digit`, `status`, `entity_type`, `order` and `sub_order`, `organic_classification`, `administrative_sector`, `legal_nature`, `administrative_level`, `legal_personality`, `own_assets`, `post_conflict`, `department`, `municipality`, `dane_code`, `cuin_code`, `dnp_category`, `zone_type`, `address`, `email`, `website`, `phone`, `mobile`, `legal_representative`, `parent_entity`, `latitude` and `longitude`.

## One entity

`POST /co/sigep/entity/v1` [Live](https://docs.usecroma.com/live-lookups.md)

| Field | Type | Notes |
| - | - | - |
| `entity_id` | integer | **Required.** The `entity_id` from SIGEP II Entities Search, e.g. `3098`. |

```bash theme={"dark"}
curl https://api.croma.run/co/sigep/entity/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "entity_id": 3098 }'
```

Returns `found`, `entity_id` and `entity`. Each entity carries `entity_id`, `sigep_code`, `name`, `nit` and `verification_digit`, `status`, `entity_type`, `order` and `sub_order`, `organic_classification`, `administrative_sector`, `legal_nature`, `administrative_level`, `legal_personality`, `own_assets`, `post_conflict`, `department`, `municipality`, `dane_code`, `cuin_code`, `dnp_category`, `zone_type`, `address`, `email`, `website`, `phone`, `mobile`, `legal_representative`, `parent_entity`, `latitude` and `longitude`. It adds `career_systems[]` (`code`, `name`), `salary_regimes[]` and `employment_natures[]`.

> [!NOTE]
>
> An id the directory does not hold returns `found: false` with HTTP 200.

> [card] [Full reference](https://docs.usecroma.com/api-reference/overview.md)
>
> Schemas, all response fields, and an interactive playground.


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