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

# ICFES

> Saber 11 results 2010-2022 by school and stratum: students and mean scores, global and by area, per school and per municipality and socioeconomic stratum.

The Instituto Colombiano para la Evaluación de la Educación (ICFES) runs Saber 11, the exam every student takes at the end of secondary school. This is its published results from 2010 to 2022, aggregated two ways: per school (about 10,000 schools a year), and per municipality and the socioeconomic stratum the students reported for their homes. Each group carries how many students sat the exam, each counted once, and their mean global score (0 to 500) and mean score in mathematics, critical reading, natural sciences, social studies and English (0 to 100). The exam took its current form in the second sitting of 2014: before it, only mathematics and English are published, on the earlier exam's scale, and there is no global score.

ICFES has published results through the second sitting of 2022. Two second sittings are missing from what it has published, 2018-2 and 2021-2, so those periods return nothing.

Search schools by name, DANE code, municipality, period or sector; read the stratum breakdown by municipality, department, period or stratum.

<Note>
  The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries `as_of`: how current the data is. [How datasets work](/datasets).
</Note>

## Search results by school

`POST /co/icfes/saber11-schools-search/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

One row per school and period, newest period first and the highest mean global score first within it.

| Field | Type | Notes |
| - | - | - |
| `query` | string | Optional words matched against the school's name and its municipality. |
| `school_code` | string | Optional DANE code of the school, 12 digits, e.g. `111001000078`. |
| `territory_code` | string | Optional DIVIPOLA code of the school's location: 5 digits for one municipality (e.g. `11001`, Bogotá), 2 digits for a whole department (e.g. `05`). |
| `year` | integer | Optional exam year, 2010 to 2022. `0` returns every year. Default `0`. |
| `period` | string | Optional period: `yyyy-1` (first sitting) or `yyyy-2` (second sitting), e.g. `2022-2`. |
| `school_sector` | enum | Optional sector: `oficial` (public) or `no_oficial` (private). |
| `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/icfes/saber11-schools-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "territory_code": "11001",
        "period": "2022-2",
        "school_sector": "oficial"
      }'
```

Returns `as_of` (how current the data is), the applied filters, `total`, `page`, `per_page`, `total_pages`, `count` and `results[]`. Every result carries `id`, `period`, `year`, `sitting`, `school_code` (DANE), `school_name`, `school_sector` (`oficial` or `no_oficial`), `calendar`, `area`, `territory_code`, `territory_name`, `department_code`, `department_name`, `students` (each counted once), `mean_global` (0 to 500), `mean_mathematics`, `mean_critical_reading`, `mean_natural_sciences`, `mean_social_studies` and `mean_english` (0 to 100 each).

<Note>
  Compare like with like. The first sitting of each year (`yyyy-1`) is small and mostly calendar B private schools, whose students score far higher than the national average; the second (`yyyy-2`) is most of the country. Stratum is what each student reported for their home, and in the second sitting about half of those reporting strata 5 and 6 attend public schools and score well below private-school peers, so a municipality's stratum 5 and 6 means can fall below stratum 4.
</Note>

## Results by stratum

`POST /co/icfes/saber11-strata-search/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

One row per municipality, stratum and period, newest period first.

| Field | Type | Notes |
| - | - | - |
| `territory_code` | string | Optional DIVIPOLA code of the school's location: 5 digits for one municipality (e.g. `11001`, Bogotá), 2 digits for a whole department (e.g. `05`). |
| `year` | integer | Optional exam year, 2010 to 2022. `0` returns every year. Default `0`. |
| `period` | string | Optional period: `yyyy-1` (first sitting) or `yyyy-2` (second sitting), e.g. `2022-2`. |
| `stratum` | enum | Optional stratum: `1` to `6`, `sin_estrato` (the home has none) or `no_reportado` (not answered). |
| `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/icfes/saber11-strata-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "territory_code": "11001", "period": "2022-2" }'
```

Returns `as_of`, the applied filters, `total`, `page`, `per_page`, `total_pages`, `count` and `results[]`. Every result carries `id`, `period`, `year`, `sitting`, `territory_code`, `territory_name`, `department_code`, `department_name`, `stratum`, `students` (each counted once), `mean_global` (0 to 500), `mean_mathematics`, `mean_critical_reading`, `mean_natural_sciences`, `mean_social_studies` and `mean_english` (0 to 100 each).

<Note>
  Compare like with like. The first sitting of each year (`yyyy-1`) is small and mostly calendar B private schools, whose students score far higher than the national average; the second (`yyyy-2`) is most of the country. Stratum is what each student reported for their home, and in the second sitting about half of those reporting strata 5 and 6 attend public schools and score well below private-school peers, so a municipality's stratum 5 and 6 means can fall below stratum 4.
</Note>

<Card title="Full reference" icon="code" href="/api-reference/overview">
  Schemas, all response fields, and an interactive playground.
</Card>


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