# Primeiros passos com a IaBula API

Crie sua conta, configure uma chave de API e faça uma busca de medicamentos com exemplos cURL, JavaScript e Python.

Canonical: https://iabula.com/docs/getting-started

## 1. Escolha seu canal de acesso

No acesso direto, crie sua conta e utilize a gestão de chaves do Customer Portal. Na RapidAPI, abra o listing da IaBula, escolha um plano e siga o mecanismo nativo de autenticação do marketplace. Não envie sua chave a esta documentação.

- [Criar conta](https://iabula.com/signup)
- [Abrir o portal](https://iabula.com/account)
- [Integração RapidAPI](https://iabula.com/docs/rapidapi)

## 2. Configure seu ambiente

Defina IABULA_API_BASE como https://api.iabula.com para o serviço publicado. Configure IABULA_API_KEY em um gerenciador de segredos ou variável de ambiente no servidor. Os exemplos pressupõem que você já possui uma chave válida; nenhuma credencial é incluída aqui.

```bash
export IABULA_API_BASE="https://api.iabula.com"
```

> Uma sessão no portal não autentica automaticamente chamadas /v1. No canal direto, envie X-API-Key. Chaves secretas devem permanecer fora de código público e bundles de frontend.

## 3. Faça sua primeira busca

```bash
curl --fail-with-body --get "$IABULA_API_BASE/v1/medications/search" \
  --header "X-API-Key: $IABULA_API_KEY" \
  --data-urlencode 'q=dipirona' \
  --data-urlencode 'limit=20'
```

```javascript
// Run on your server. Keep the API key out of browser bundles.
const url = new URL("/v1/medications/search", process.env.IABULA_API_BASE);
url.search = new URLSearchParams({ q: "dipirona", limit: "20" });
const response = await fetch(url, {
  headers: { "X-API-Key": process.env.IABULA_API_KEY },
});
const page = await response.json();
if (!response.ok) throw new Error(`${response.status}: ${page.code}`);
console.log(page.data, page.next_cursor);
```

```python
import json
import os
from urllib.parse import urlencode
from urllib.request import Request, urlopen

base = os.environ["IABULA_API_BASE"].rstrip("/")
query = urlencode({"q": "dipirona", "limit": 20})
request = Request(
    f"{base}/v1/medications/search?{query}",
    headers={"X-API-Key": os.environ["IABULA_API_KEY"]},
)
with urlopen(request, timeout=15) as response:
    page = json.load(response)
print(page["data"], page["next_cursor"])
```

A resposta é uma página com data e next_cursor. data contém registros MedicationSummary; uma busca sem correspondências pode retornar uma lista vazia. Para continuar, envie next_cursor em cursor e mantenha os filtros originais.

## 4. Inspecione e integre

No Playground, entre com uma conta ativa e e-mail verificado. A execução usa a sessão e o acesso vinculado à conta, com os limites do plano; você não precisa colar uma chave no modo padrão. Para uma integração fora do Playground, continue usando X-API-Key no canal direto ou as credenciais nativas da RapidAPI.

- [Parâmetros de busca](https://iabula.com/docs/medications)
- [Playground](https://iabula.com/playground)
- [Swagger interativo](https://iabula.com/docs/swagger)
- [Erros e retries](https://iabula.com/docs/errors)

Antes de integrar, defina como tratar listas vazias, campos nulos, cursores e respostas 429. Faça retries limitados e respeite Retry-After. Leia a proveniência antes de atribuir significado regulatório a um campo.

## Recursos

- [OpenAPI JSON](https://iabula.com/openapi.json)
- [Swagger](https://iabula.com/docs/swagger)
- [Documentation index](https://iabula.com/llms.txt)
