> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.crehana.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.crehana.com/_mcp/server.

## Listar las rutas de aprendizaje de la organizacion

`GET /org/{slug}/learning/content/knowledge-hub/catalog/v2/tracks/` devuelve
las rutas (tracks) de la organización, paginadas por cursor. Es la pieza que
faltaba para armar el flujo completo por API: listar las rutas, elegir una y
asignarla con `POST .../enrollments/v2/assign-track/` — el `id` de cada ruta
es el `track_id` que ese endpoint espera.

Cada ruta trae `id`, `name`, `track_type` (`TRACK` o `ACADEMY`), `is_active`,
`is_hidden`, `created_at`, `updated_at`, `start_date`, `end_date`, `version`,
`has_reward`, `courses_to_complete`, `courses_to_certificate` y
`total_courses_count`. `updated_at` sirve para detectar qué rutas cambiaron
desde tu última sincronización.

```json
{
  "total_count": 7,
  "page_info": {
    "has_next_page": true,
    "has_previous_page": false,
    "start_cursor": "YXJyYXljb25uZWN0aW9uOjA=",
    "end_cursor": "YXJyYXljb25uZWN0aW9uOjQ="
  },
  "edges": [
    {
      "node": {
        "id": "40889",
        "name": "Ruta X",
        "track_type": "TRACK",
        "is_active": true,
        "is_hidden": false,
        "created_at": "2026-01-10T12:00:00",
        "updated_at": "2026-02-01T09:30:00",
        "total_courses_count": 3
      }
    }
  ]
}
```

La paginación es por cursor: pedís `first` (de 1 a 100, por defecto 10) y,
para la página siguiente, reenviás `page_info.end_cursor` en `after` tal cual,
sin interpretarlo. Las rutas ocultas van al final y el resto de más reciente a
más antigua.

Filtros opcionales: `search` (por nombre, sin distinguir mayúsculas),
`track_type` (`TRACK` o `ACADEMY`), `is_draft` e `is_hidden`. Sin `is_draft`
recibís sólo las rutas activas y publicadas; con `is_draft=true`, los
borradores. Un `first` fuera de rango o un `track_type` desconocido responden
`422`.

Sólo se listan rutas de la organización de la api-key: pedir el `slug` de otra
organización responde con error, no con datos.