Obtener la documentación
GET https://seerepo.com/api/v1/repos/:repo/docs y GET https://seerepo.com/api/v1/repos/:repo/docs/:page
Devuelve la carpeta Documentación tal como se lee en la app. La primera da el árbol de la wiki: la clave, el título y el nivel de cada página, y el commit registrado por la lectura de documentación. La segunda da una página: su markdown, donde cada afirmación termina con el archivo y las líneas de donde sale, el índice de sus secciones, sus fuentes con la parte del mapa que tiene cada archivo y su enlace a GitHub en el commit que escribió la página, y el diagrama que SeeRepo dibujó desde el mapa. Cada página se escribe primero con lo que SeeRepo leyó, sin IA; la prosa de una página con plan llega después y reemplaza su apertura.
Petición
| Parámetro | Dónde | Descripción |
|---|---|---|
repo |
ruta | El id del repo, o dueño/nombre con %2F. |
page |
ruta | La clave de una página del árbol: 1 es el proyecto, 2 un mundo, 2.3 un mundo dentro de él. |
curl "https://seerepo.com/api/v1/repos/6ad79fd8e89233277ded17c9/docs/2" \
-H "Authorization: Bearer $SEEREPO_KEY"
Respuesta
El árbol:
| Campo | Tipo | Descripción |
|---|---|---|
data.repo |
objeto | El repo: su id y su nombre. |
data.sha |
texto|null | El commit registrado por la lectura de documentación. Null hasta su primera escritura. |
data.at |
texto|null | Cuándo se escribió por última vez. |
data.pages[] |
objeto | Cada página en orden: su key, title, level (1 o 2), parent, factsAt (cuándo cambió por última vez lo que dice; null si fue antes de que SeeRepo lo guardara), locked (true en las páginas que un repo gratis abre con un plan) y phrase (lo que hace su módulo, en la frase del mapa; null en el proyecto, el glosario y una página con candado). |
Una página:
| Campo | Tipo | Descripción |
|---|---|---|
data.key, data.title, data.level, data.parent |
Dónde está la página en el árbol. | |
data.world |
texto|null | El mundo del mapa que cuenta. Null en el proyecto y el glosario. |
data.body |
texto | La página en markdown. Cada afirmación termina con [ruta desde-hasta]. |
data.outline[] |
objeto | El id, el level y el title de cada sección, en orden. |
data.sources[] |
objeto | Cada archivo que cita la página: su path, from, to, su url en GitHub en el commit que escribió la página y su part en el mapa (world e id), o null. |
data.diagram |
texto|null | El diagrama de la página en Mermaid, dibujado por SeeRepo desde las conexiones del mapa. |
data.lang |
texto | El idioma registrado del capítulo. |
data.by |
texto | facts mientras la página está escrita solo con lo que SeeRepo leyó; si no, el modelo que escribió su prosa. |
data.sha, data.at |
El commit de origen y la fecha de escritura del documento (no la del commit). | |
data.changes[] |
objeto | Lo que la forma de la página ganó y perdió cada vez que cambió lo que dice, lo más nuevo primero, diez como mucho. Cada uno: at, sha (el commit de esa lectura), parts (added, cada una con su name y su part en el mapa, o null; removed, los nombres), connections (added y removed, en número), y pages, data, services y modules (added y removed, los nombres). Una lista de nombres trae cinco como mucho, y el resto va contado en addedMore y removedMore. touched es true cuando cambió lo que dice y su forma no. Vacío hasta que eso pase después de que SeeRepo empezó a guardarlo, y en un repo gratis. |
Ejemplo
{
"status": "success",
"data": {
"key": "2",
"title": "Billing",
"level": 1,
"parent": null,
"world": "/billing",
"body": "# Billing\n\nCharges people [app/api/pay/route.ts 1-25]. It has 3 parts; open to anyone through `/pricing` [app/pricing/page.tsx 3-3].\n\n## Its parts\n- **/pricing** — Shows the plans [app/pricing/page.tsx 1-40]\n",
"outline": [{ "id": "parts", "level": 2, "title": "Its parts" }],
"sources": [{ "path": "app/pricing/page.tsx", "from": 1, "to": 40, "url": "https://github.com/acme/shop/blob/abc1234/app/pricing/page.tsx#L1-L40", "part": { "world": "/billing", "id": "app/pricing/page.tsx" } }],
"diagram": "flowchart LR\n n0([\"Visitors\"])\n n1[\"/pricing\"]\n n0 -->|enters| n1",
"lang": "en",
"by": "facts",
"sha": "abc1234",
"at": "2026-10-22T05:40:39.836Z",
"changes": [{ "at": "2026-10-22T05:40:39.836Z", "sha": "abc1234", "parts": { "added": [{ "name": "/pricing", "part": { "world": "/billing", "id": "app/pricing/page.tsx" } }], "addedMore": 0, "removed": [], "removedMore": 0 }, "connections": { "added": 1, "removed": 0 }, "pages": { "added": ["/pricing"], "addedMore": 0, "removed": [], "removedMore": 0 }, "data": { "added": [], "addedMore": 0, "removed": [], "removedMore": 0 }, "services": { "added": [], "addedMore": 0, "removed": [], "removedMore": 0 }, "modules": { "added": [], "addedMore": 0, "removed": [], "removedMore": 0 }, "touched": false }]
}
}
Un repo gratis recibe el árbol entero y la página del proyecto; cualquier otra página es un not_found, como en la app.
Autenticación
Una clave de API como Authorization: Bearer sr_…. Mira Autenticación.
La versión y la fecha del índice corresponden a la lectura de documentación. Cada capítulo conserva su propio sha (código de origen), at (fecha de escritura del documento, no del commit) y lang (idioma). Si sus hechos no cambiaron, puede conservar una versión anterior sin que eso implique que esté desactualizado.