---
title: "ICFES Saber 11 Results by School"
method: POST
path: "/co/icfes/saber11-schools-search/v1"
tags: ["Colombia", "ICFES"]
---

# ICFES Saber 11 Results by School

`POST /co/icfes/saber11-schools-search/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/icfes/saber11-schools-search/v1`
- Auth: HTTP bearer

Saber 11 results of every Colombian school per exam period, 2010 to 2022 (Colombia's end-of-secondary exam, run by ICFES): students who sat it (each counted once) and their mean global score (0 to 500) and mean score in mathematics, critical reading, natural sciences, social studies and English, with the school's DANE code, name, sector, calendar, area and municipality. Free text matches the school and municipality names. Filter by `school_code` (12-digit DANE), `territory_code` (5-digit DIVIPOLA municipality or 2-digit department), `year`, `period` (`yyyy-1` or `yyyy-2`) and `school_sector` (`oficial`, `no_oficial`). Newest period first, highest mean global score first within it. 2018-2 and 2021-2 are not published. Served by Croma (`as_of` says how current the data is).

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

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Optional words matched against the school's name and its municipality.
  - `school_code` string: Optional DANE code of the school (establecimiento educativo), 12 digits, e.g. `111001000078`.
  - `territory_code` string: Optional DIVIPOLA code: 5 digits for one municipality (e.g. `05001`, Medellín) or 2 digits for every municipality of a department (e.g. `05`, Antioquia).
  - `year` integer: Optional exam year, 2010 to 2022. 0 returns every year.
  - `period` string: Optional exam period as `yyyy-1` (the first sitting of the year) or `yyyy-2` (the second), e.g. `2022-2`.
  - `school_sector` '' | 'oficial' | 'no_oficial': Optional sector of the school: `oficial` (public) or `no_oficial` (private).
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Results per page (1-100).

## Response `200`

Successful response

- IcfesSaber11SchoolsSearchResponse
  - `data` IcfesSaber11SchoolsSearchData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `school_code` string, nullable, required
    - `territory_code` string, nullable, required
    - `year` number, nullable, required
    - `period` string, nullable, required
    - `school_sector` string, nullable, required
    - `total` number, required
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required
    - `count` number, required
    - `results` object[], required
      - `id` string, required: The period, the school's DANE code and the municipality, e.g. `2022-2:111001000078:11001`.
      - `period` string, required: The exam period: `yyyy-1` for the first sitting of the year (mostly calendar B schools), `yyyy-2` for the second (calendar A, most of the country), e.g. `2022-2`.
      - `year` number, required: The exam year.
      - `sitting` number, required: `1` for the first sitting of the year, `2` for the second.
      - `school_code` string, nullable, required: The school's 12-digit DANE code (establecimiento educativo). Null for students ICFES records without one.
      - `school_name` string, nullable, required: The school's name as ICFES writes it.
      - `school_sector` 'oficial' | 'no_oficial', nullable, required: `oficial` (public) or `no_oficial` (private).
      - `calendar` string, nullable, required: The school calendar: `A` (February to November), `B` (September to June) or `OTRO`.
      - `area` string, nullable, required: `URBANO` or `RURAL`.
      - `territory_code` string, nullable, required: The 5-digit DIVIPOLA code of the municipality where the school is, e.g. `11001`. Null when ICFES records none.
      - `territory_name` string, nullable, required: The municipality's name as ICFES writes it, e.g. `BOGOTÁ D.C.`.
      - `department_code` string, nullable, required: The 2-digit DIVIPOLA code of the department, e.g. `11`.
      - `department_name` string, nullable, required: The department's name as ICFES writes it.
      - `students` number, required: Students who sat the exam, each counted once.
      - `mean_global` number, nullable, required: Mean global score (puntaje global, 0 to 500) of the group's students, rounded to two decimals. Published from 2014-2, when the exam took its current form; null before, and when no student in the group has one.
      - `mean_mathematics` number, nullable, required: Mean mathematics (0 to 100) score of the group's students, rounded to two decimals. Every period has it; before 2014-2 it is on the earlier exam's scale, so compare it only within one form of the exam.
      - `mean_critical_reading` number, nullable, required: Mean critical reading (lectura crítica, 0 to 100) score of the group's students, rounded to two decimals. Published from 2014-2, when the exam took its current form; null before, and when no student in the group has one.
      - `mean_natural_sciences` number, nullable, required: Mean natural sciences (0 to 100) score of the group's students, rounded to two decimals. Published from 2014-2, when the exam took its current form; null before, and when no student in the group has one.
      - `mean_social_studies` number, nullable, required: Mean social studies and citizenship (sociales y ciudadanas, 0 to 100) score of the group's students, rounded to two decimals. Published from 2014-2, when the exam took its current form; null before, and when no student in the group has one.
      - `mean_english` number, nullable, required: Mean English (0 to 100) score of the group's students, rounded to two decimals. Every period has it; before 2014-2 it is on the earlier exam's scale, so compare it only within one form of the exam.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
