> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryprofound.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Call API

> Conecta un Agent a cualquier endpoint de API externo

El nodo **Call API** conecta tu [Agent](/es/agents/about) a cualquier endpoint de API externo. Usa este paso para obtener datos, activar servicios externos, enriquecer las entradas del Agent o integrarte con tus sistemas y herramientas internos.

Este nodo admite solicitudes **GET** y **POST**, autenticación opcional y (para solicitudes POST) cuerpos de solicitud en formato JSON.

<img src="https://mintcdn.com/profound-37face47/LU_swtbqvG5kIsMS/images/agents/nodes/call-api-1.png?fit=max&auto=format&n=LU_swtbqvG5kIsMS&q=85&s=d7ebced3d931337a4f07d806de54557f" alt="call api.png" width="1920" height="1200" data-path="images/agents/nodes/call-api-1.png" />

<Tip>Consulta [Primeros pasos con Agents](/es/agents/getting-started) para aprender a añadir este nodo a un Agent.</Tip>

## Cuándo usar este nodo

Usa Call API para tareas como:

* Extraer datos de herramientas de terceros, CRM, sistemas CMS o plataformas de analítica
* Activar automatizaciones externas o Agents
* Obtener datos estructurados para usarlos en pasos de LLM posteriores
* Enriquecer la ejecución del Agent con lógica de negocio personalizada alojada en otro lugar
* Integrar Profound Agents con API internas o microservicios

## Configuración del nodo

Al seleccionar el nodo Call API se abre su panel de configuración en el lado derecho del creador de Agents.

### Method (obligatorio)

Elige el método HTTP de la solicitud:

* **GET**: obtiene datos de un endpoint de API
* **POST**: envía datos a un endpoint; permite incluir un cuerpo de solicitud

Elige el método que corresponda a la API a la que llamas.

### URL (obligatorio)

Introduce la URL completa del endpoint de la API.

Puedes:

* Pegar una URL estática
* Insertar variables de forma dinámica con `/`, haciendo referencia a entradas o a pasos anteriores del Agent

Ejemplos:

* `https://api.example.com/users/{{user_id}}`
* `https://internal.mycompany.com/search?q={{topic}}`

## Configuración adicional para solicitudes POST

Si el método es **POST**, aparecen campos adicionales.

### Request Body

Introduce el payload JSON que se enviará en la solicitud. Es obligatorio para las solicitudes POST.

Ejemplo de payload:

```text expandable wrap theme={null}
{
  "userId": 1234
  "action": "create",
  "payload": {
    "firstName": "Jack",
    "email":"jack@example.com"
  }
}
```

Puedes insertar variables con `/`.

### Content Type (obligatorio para POST)

Elige el tipo de contenido del cuerpo de la solicitud:

* **None**
* **Application/Json**

La mayoría de las API esperan `application/json`.

## Output Label

Proporciona una etiqueta descriptiva para la respuesta de la API. Se convierte en el nombre de la variable a la que hacen referencia los nodos posteriores.

Ejemplos:

* `api_response`
* `user_record`
* `external_data`

## Configuración avanzada

Selecciona **Advanced settings** para configurar la autenticación de la solicitud.<br />La autenticación es obligatoria para las API que no son de acceso público.

### Authentication Type (obligatorio)

Elige el mecanismo de autenticación:

* **None**: sin autenticación
* **Basic**: nombre de usuario y contraseña
* **Bearer**: bearer token
* **API Key**: encabezado de API key personalizado

Cada opción muestra distintos campos obligatorios.

#### Autenticación Basic

Campos:

* Username
* Password

#### Autenticación Bearer

Campos:

* Bearer Token

#### Autenticación con API Key

Campos:

* Header Name
* API Key Value

Ejemplo:

* Header Name: `X-API-Key`
* API Key Value: `<your_key_here>`

Usa los nombres de campo que espera la API a la que llamas.

## Resultado

El nodo Call API devuelve el cuerpo completo de la respuesta de la API como texto. Este resultado puede pasarse a:

* Pasos de LLM para analizar, extraer o resumir
* Nodos de lógica y transformación
* Llamadas a API posteriores
* Cualquier paso que requiera datos externos estructurados o semiestructurados

El resultado puede ser JSON, HTML, texto sin formato o cualquier tipo de contenido que devuelva la API.

## Ejemplos de uso

### 1. Obtener datos del perfil de usuario

1. Añade un nodo **Call API** con:
   * Method: GET
   * URL: `https://api.example.com/users/{{user_id}}`
   * Output Label: `user_profile`
2. Pasa \{\{user\_profile}} a un paso de LLM para su análisis o transformación.

### 2. Enviar datos del Agent a un servicio externo

1. Añade un nodo **Call API** con:
   * Method: POST
   * URL: `https://hooks.example.com/events`
   * Content Type: Application/Json

```text wrap theme={null}
Request Body:{
  "transcript": "{{video_transcript}}", 
  "summary": "{{summary}}"
}
```

* Output Label: `event_response`

### 3. Usar API autenticadas

1. En **Advanced settings**, elige el tipo de autenticación adecuado.
2. Proporciona las credenciales (por ejemplo, Bearer Token o API Key).
3. Usa GET o POST según sea necesario para obtener datos protegidos.

## Prácticas recomendadas

* Verifica siempre el método, los encabezados, la estructura del payload y los requisitos de autenticación que espera la API antes de configurar el nodo.
* Usa variables para crear dinámicamente URL o cuerpos de solicitud y obtener Agents más flexibles.
* Al enviar JSON, asegúrate de que el formato sea correcto: un JSON mal formado hará que la solicitud falle.
* Usa etiquetas de resultado descriptivas, especialmente al encadenar varias llamadas a API.

## Solución de problemas

### La API devuelve un error

Comprueba:

* Que la URL sea correcta
* Los parámetros de consulta obligatorios
* Las credenciales de autenticación
* La estructura del cuerpo JSON (para POST)

### La respuesta está vacía o no es la esperada

Las API pueden devolver páginas de error HTML u objetos contenedores. Usa un paso Prompt LLM para interpretar o extraer las partes relevantes.

### Las variables no se resuelven

Inserta las variables escribiendo `/` y seleccionándolas en el selector de variables.
