> 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/pt/acoes/workflow-concepts/workflow-steps/logic-steps/api.md).

# Chamar API

Chame APIs externas no seu workflow

O passo de utilitário "API" permite que os seus Workflows da AirOps comuniquem com serviços externos através das respetivas APIs. Isto permite-lhe integrar e interagir com dados e funcionalidades que estão fora do seu Workflow.

## Configuração

Escolha o método exigido pela API externa:

| Método    | Uso comum                                                                 |
| --------- | ------------------------------------------------------------------------- |
| **GET**   | Recuperar dados. Este é o método predefinido e não envia corpo do pedido. |
| **POST**  | Criar um recurso ou submeter dados.                                       |
| **PUT**   | Substituir ou atualizar um recurso.                                       |
| **PATCH** | Atualizar campos selecionados num recurso.                                |

**POST**, **PUT**, e **PATCH** aceitar um **Corpo** com referências Liquid. O passo não suporta DELETE. As tentativas configuradas aplicam-se aos quatro métodos suportados.

### Referenciar Entradas ou Saídas no Passo API

Para definir variáveis dinamicamente na sua API e referenciar uma entrada (definida no passo "Start") ou uma variável de saída (gerada por qualquer passo), terá de usar a sintaxe Liquid. Além disso, terá de especificar os valores dos seus Cabeçalhos e Corpo.

#### Cabeçalhos

Ao introduzir o valor do cabeçalho, é importante que formate a informação como JSON. Definiremos sempre o nosso Content-Type como mostrado abaixo, e pode incluir a API Key para quaisquer chamadas que exijam autorização:

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

#### Corpo

O corpo permite-nos especificar quaisquer parâmetros adicionais (ou seja, variáveis ou saídas) a incluir na chamada da API. Utilizamos a mesma sintaxe do cabeçalho, em que tanto as nossas chaves como os valores são colocados entre aspas. Se estivermos a փոխանցir quaisquer entradas ou saídas de passos, usamos a sintaxe Liquid mantendo as aspas duplas, por exemplo:

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

#### Exemplos

Vamos juntar tudo isto com alguns exemplos. Se tiver uma entrada do utilizador definida como localização no início do seu Workflow, pode incluir {{ location }} no URL ou no corpo do seu passo de API para fazer um pedido a uma API meteorológica:

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

Da mesma forma, pode usar saídas de outros passos como variáveis. Se tiver um passo que recupera o ID de um utilizador, pode usar a saída desse passo como variável no passo de API:

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

Isto permite-lhe criar pedidos de API dinâmicos que se ajustam com base nas entradas e saídas no seu workflow. Como exemplo, pode referenciar o Passo de API mostrado no nosso modelo "Sales Call Lead Qualifier" abaixo:

<figure><img src="https://31915162-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>O nosso Passo API chama a API da Fireflies</p></figcaption></figure>

## Como continuar se o passo API falhar

Por predefinição, o passo API terminará o workflow se falhar. No entanto, para continuar o workflow se o passo falhar, basta clicar em `Continuar` na parte inferior do passo.

<figure><img src="https://31915162-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>Clique em continuar para continuar o workflow</p></figcaption></figure>

O passo devolverá as seguintes chaves:

* `saída` : este será `null`
* `erro` :
  * `mensagem`: a mensagem retornada pela etapa
  * `código` : o código de erro que representa o erro

<figure><img src="https://31915162-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>

## Como tentar novamente se o passo API falhar

Pode tentar novamente o passo API até 3 vezes ao clicar em **Definições Avançadas**

No entanto, se o passo continuar a falhar após 3 tentativas, pode:

1. Selecione `Continuar` em vez de `Terminar Workflow` se o passo falhar
2. Adicione uma condição em que a condição verifica se o `erro` do passo existe, por exemplo `step_1.error`
3. Adicione o passo que pretende tentar novamente caso tenha ocorrido um erro

<figure><img src="https://31915162-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>

## Precisa de mais controlo?

Para pedidos de API avançados, use o nosso passo Python com código personalizado, usando o [Passo de Código](https://docs.airops.com/docs/code-step), que pode fazer pedidos externos.


---

# 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/pt/acoes/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.
