# Resumen de la API

> Automatiza PentAGI mediante REST y GraphQL: crea un token Bearer, inicia flows desde CI/CD, extrae los resultados a tus propias herramientas y genera un cliente.

La mayor parte de lo que puedes hacer en la interfaz web está disponible a través de la API: inicia [flows](https://pentagi.com/es/docs/glossary/#flow) desde CI/CD, lleva los resultados a tus propias herramientas o crea integraciones.

| API     | Endpoint          | Documentación interactiva    |
| ------- | ----------------- | ---------------------------- |
| GraphQL | `/api/v1/graphql` | `/api/v1/graphql/playground` |
| REST    | `/api/v1/...`     | `/api/v1/swagger/index.html` |

## [Crea un token](https://pentagi.com/es/docs/api/overview/#create-a-token)

1. Abre **Settings → API Tokens** en la interfaz web.
2. Haz clic en **Create Token**, opcionalmente ponle un nombre y define una caducidad entre 1 minuto y 3 años.
3. Copia el token de inmediato: solo se muestra una vez.

Un token pertenece a tu cuenta y hereda los permisos de tu rol. Los usuarios, roles y tokens de API, las plantillas de flow, los favoritos y tu configuración se gestionan únicamente desde una sesión de navegador con sesión iniciada: un token obtiene un 403 en las rutas REST `/users`, `/roles` y `/tokens` y un error en esas operaciones de GraphQL.

## [Llama a la API](https://pentagi.com/es/docs/api/overview/#call-the-api)

```bash
curl -X POST https://your-pentagi-host:8443/api/v1/graphql \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "{ flows { id title status } }"}'

curl https://your-pentagi-host:8443/api/v1/flows/ \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

Inicia un flow con una mutación de GraphQL:

```graphql
mutation CreateFlow {
  createFlow(modelProvider: "openai", input: "Test the security of https://example.com") {
    id
    title
    status
    createdAt
  }
}
```

## [Genera un cliente](https://pentagi.com/es/docs/api/overview/#generate-a-client)

* **GraphQL**: el esquema está en `backend/pkg/graph/schema.graphqls` del repositorio; usa GraphQL Code Generator, genqlient o Apollo.
* **REST**: la especificación OpenAPI se sirve en `/api/v1/swagger/doc.json`:

```bash
openapi-generator-cli generate \
  -i https://your-pentagi-host:8443/api/v1/swagger/doc.json \
  -g python \
  -o ./pentagi-client
```