Referencia de la API
El análisis vive en un único endpoint. Puedes llamarlo directamente para integrarlo en tus propias herramientas.
POST /api/analyze
Envía código y recibe un grafo { nodes, edges }. Acepta un snippet o varios archivos.
Request — snippet
POST /api/analyze
Content-Type: application/json
{
"language": "python",
"code": "def main():\n helper()\n\ndef helper():\n pass"
}Request — proyecto (varios archivos)
{
"language": "python",
"files": [
{ "path": "main.py", "content": "from util import work\n..." },
{ "path": "util.py", "content": "def work(): ..." }
]
}Response 200
{
"nodes": [
{ "id": "main.py::main", "label": "main", "type": "function", "parent": "mod::main.py" }
],
"edges": [
{ "source": "main.py::main", "target": "util.py::work", "kind": "calls" }
]
}Campos
language— uno de los lenguajes soportados (python,javascript,typescript,go,rust,sql).code— el fragmento a analizar (modo snippet).files— arreglo de{ path, content }(modo proyecto). Si está presente, tiene prioridad sobrecode.
Límites
- Hasta 2 MB de contenido total por petición.
- Hasta 400 archivos en modo proyecto.
Errores
400— JSON inválido o lenguaje no soportado.413— se superó el límite de tamaño o de archivos.
El código se envía al servidor para parsearlo con Tree-sitter y se descarta tras responder. No se almacena nada.