# Listar (/docs/developers/api-reference/departments/list)

## Descripcion general [#descripcion-general]

Este endpoint permite obtener un listado paginado de los departamentos pertenecientes a tu organización. Los resultados se devuelven en formato JSON e incluyen metadatos de paginación. Cada departamento incluye su jerarquía mediante los campos `parent_id` y `depth`, y su vínculo con un centro de costos mediante `cost_center_id`. Los departamentos eliminados se excluyen automáticamente.

## Endpoint [#endpoint]

`GET https://app.integranom.com/api/v1/departments`

## Consulta multiples departamentos [#consulta-multiples-departamentos]

***

## Query params [#query-params]

| Parametro | Tipo                  | Requerido | Default | Descripcion                                           |
| --------- | --------------------- | --------- | ------- | ----------------------------------------------------- |
| `page`    | integer ≥ 1           | No        | 1       | Página solicitada. El tamaño de página es fijo en 20. |
| `active`  | `"true"` \| `"false"` | No        | -       | Filtra por el flag `is_active`.                       |

**cURL**

```bash
curl -X GET "https://app.integranom.com/api/v1/departments" \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json"
```

**Respuesta**

```json
{
"count": 42,
"page": 1,
"page_size": 20,
"total_pages": 3,
"next": "https://app.integranom.com/api/v1/departments?page=2",
"previous": null,
"results": [
  {
    "department_number": 1,
    "parent_id": null,
    "depth": 0,
    "name": "Administración",
    "code": "ADM",
    "description": "Administrative root",
    "cost_center_id": "ck...",
    "is_active": true,
    "sort_order": 0,
    "created_at": "2026-05-24T10:00:00.000Z",
    "updated_at": "2026-05-24T10:00:00.000Z"
  }
]
}
```

## Consulta un departamento especifico [#consulta-un-departamento-especifico]

***

Se puede buscar un departamento particular por su número, nombre o código. Los tres filtros hacen coincidencia exacta sin distinguir mayúsculas y minúsculas: el nombre y el código se almacenan en mayúsculas y el filtro se compara también en mayúsculas.

## Query params [#query-params-1]

| Parametro           | Tipo    | Requerido | Default | Descripcion                                          |
| ------------------- | ------- | --------- | ------- | ---------------------------------------------------- |
| `department_number` | integer | No        | -       | Filtra por número de departamento exacto.            |
| `name`              | string  | No        | -       | Filtra por nombre exacto.                            |
| `code`              | string  | No        | -       | Filtra por código exacto (almacenado en mayúsculas). |

**cURL**

```bash
curl -X GET "https://app.integranom.com/api/v1/departments?department_number=1" \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json"
```

**Respuesta**

```json
{
"count": 1,
"page": 1,
"page_size": 20,
"total_pages": 1,
"next": null,
"previous": null,
"results": [
  {
    "department_number": 1,
    "parent_id": null,
    "depth": 0,
    "name": "Administración",
    "code": "ADM",
    "description": "Administrative root",
    "cost_center_id": "ck...",
    "is_active": true,
    "sort_order": 0,
    "created_at": "2026-05-24T10:00:00.000Z",
    "updated_at": "2026-05-24T10:00:00.000Z"
  }
]
}
```

## Errores [#errores]

| Status | Causa                                             |
| ------ | ------------------------------------------------- |
| `400`  | Valor inválido en `department_number` o `active`. |
| `401`  | API key ausente o inválida.                       |
| `403`  | La API key no tiene el permiso `getDepartments`.  |