> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/docs/es/acciones/workflow-concepts/workflow-steps/logic-steps/api.md).

# Llamar a la API

Llama API externas en tu flujo de trabajo

El paso de utilidad "API" permite que tus flujos de trabajo de AirOps se comuniquen con servicios externos a través de sus API. Esto te permite integrar e interactuar con datos y funcionalidades que están fuera de tu flujo de trabajo.

## Configuración

Elige el método requerido por la API externa:

| Método    | Uso común                                                                           |
| --------- | ----------------------------------------------------------------------------------- |
| **GET**   | Recupera datos. Este es el método predeterminado y no envía un cuerpo de solicitud. |
| **POST**  | Crea un recurso o envía datos.                                                      |
| **PUT**   | Reemplaza o actualiza un recurso.                                                   |
| **PATCH** | Actualiza campos seleccionados de un recurso.                                       |

**POST**, **PUT**, y **PATCH** acepta un **Cuerpo** con referencias de Liquid. El paso no admite DELETE. Los reintentos configurados se aplican a los cuatro métodos compatibles.

### Referenciar entradas o salidas en el paso de API

Para definir dinámicamente variables en tu API y referenciar una entrada (definida en el paso "Start") o una variable de salida (generada por cualquier paso), necesitarás usar la sintaxis de Liquid. Además, deberás especificar los valores de tus encabezados y cuerpo.

#### Encabezados

Para pasar el valor de tu encabezado, es importante que formatees la información como JSON. Siempre estableceremos nuestro Content-Type como se muestra a continuación, y puedes incluir la clave de API para cualquier llamada que requiera autorización:

```javascript
{ 
    "authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
```

#### Cuerpo

El cuerpo nos permite especificar cualquier parámetro adicional (es decir, variables o salidas) que se incluirá en la llamada a la API. Usamos la misma sintaxis que en el encabezado, donde tanto nuestras claves como nuestros valores van entre comillas. Si estamos pasando entradas o salidas de pasos, usamos la sintaxis de Liquid manteniendo las comillas dobles, p. ej.

```javascript
{
  "properties": {
    "amount": "",
    "dealname": "{{ step_2.output.deal_name }}",
    "pipeline": "",
    "closedate": "{{ step_2.output.deal_close_date }}",
    "dealstage": "",
    "hubspot_owner_id": ""
  }
}
```

#### Ejemplos

Pongámoslo todo junto con un par de ejemplos. Si tienes una entrada de usuario definida como location al inicio de tu flujo de trabajo, puedes incluir {{ location }} en la URL o el cuerpo de tu paso de API para hacer una solicitud a una API meteorológica:

```
GET https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&query={{ location }}
```

Del mismo modo, puedes usar salidas de otros pasos como variables. Si tienes un paso que recupera el ID de un usuario, puedes usar la salida de ese paso como una variable en el paso de API:

```
POST https://api.example.com/user/{{ step_1.output }}/profile
```

Esto te permite crear solicitudes de API dinámicas que se ajustan según las entradas y salidas de tu flujo de trabajo. Como ejemplo, puedes hacer referencia al paso de API que se muestra en nuestra plantilla "Sales Call Lead Qualifier" que aparece a continuación:

<figure><img src="https://3036434873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-b1d6cf573dc35bc5b122fd0dc6a947a6beefc0f9%2Futility_api_1.png?alt=media" alt=""><figcaption><p>Nuestro paso de API llama a la API de Fireflies</p></figcaption></figure>

## Cómo continuar si el paso de API falla

De forma predeterminada, el paso de API terminará el flujo de trabajo si falla. Sin embargo, para continuar el flujo de trabajo si el paso falla, simplemente haz clic en `Continuar` en la parte inferior del paso.

<figure><img src="https://3036434873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-909683bdffa53e503c67fcbd3d10be9b91f137e8%2Fimage.png?alt=media" alt=""><figcaption><p>Haz clic en continuar para continuar el flujo de trabajo</p></figcaption></figure>

El paso devolverá las siguientes claves:

* `output` : esto será `null`
* `error` :
  * `message`: el mensaje devuelto por el paso
  * `code` : el código de error que representa el error

<figure><img src="https://3036434873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-efafda7fe1d5464d514822509633ec2c8de54f23%2Fimage.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

## Cómo reintentar si el paso de API falla

Puedes reintentar el paso de API hasta 3 veces haciendo clic en **Configuración avanzada**

Sin embargo, si el paso sigue fallando después de 3 reintentos, puedes:

1. Selecciona `Continuar` en lugar de `Terminar flujo de trabajo` si el paso falla
2. Añade una condición donde la condición compruebe si el `error` del paso existe, por ejemplo: `step_1.error`
3. Añade el paso que quieres reintentar si hubo un error

<figure><img src="https://3036434873-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX2n5yPRPynbnWuO4SH0M%2Fuploads%2Fgit-blob-f551698d248295d68e604a0eaf0092b8d6134100%2Fimage.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

## ¿Necesitas más control?

Para solicitudes avanzadas de API, usa nuestro paso de Python con código personalizado, usando el [Paso de código](https://docs.airops.com/docs/code-step), que puede realizar solicitudes externas.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/docs/es/acciones/workflow-concepts/workflow-steps/logic-steps/api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
