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

# SDKs e n8n

> SDKs oficiais do Pilot Status para Node.js/TypeScript e Python, além do node nativo da comunidade n8n com um node Trigger para webhooks.

Os SDKs oficiais encapsulam os endpoints públicos `/v1` e ajudam com validação e parsing de webhooks. A autenticação é sempre sua chave de API `ps_`.

## Node.js / TypeScript

Pacote: [`@pilot-status/sdk`](https://www.npmjs.com/package/@pilot-status/sdk)

```bash theme={null}
npm i @pilot-status/sdk
```

```typescript theme={null}
import { PilotStatusClient } from "@pilot-status/sdk";

const client = new PilotStatusClient({
  apiKey: process.env.PILOT_STATUS_API_KEY!,
});

const accepted = await client.messages.send({
  templateId: "onboarding-test",
  destinationNumber: "+5511999999999",
  variables: { name: "John" },
});

const message = await client.messages.get(accepted.id);
```

Parsing de webhook:

```typescript theme={null}
import { parseCustomerWebhook } from "@pilot-status/sdk";

const event = parseCustomerWebhook(payload);
```

## Python

Pacote: [`pilot-status`](https://pypi.org/project/pilot-status/)

```bash theme={null}
pip install pilot-status
```

```python theme={null}
import os
from pilot_status import PilotStatusClient

client = PilotStatusClient(api_key=os.environ["PILOT_STATUS_API_KEY"])

accepted = client.messages.send({
    "templateId": "onboarding-test",
    "destinationNumber": "+5511999999999",
    "variables": {"name": "John"},
})

message = client.messages.get(accepted["id"])
```

## n8n (integração nativa)

Node oficial da comunidade: `n8n-nodes-pilot-status`.

Instale pela interface do n8n: **Settings → Community Nodes → Install → `n8n-nodes-pilot-status`**. A autenticação usa uma chave de API do Pilot Status.

<Note>
  Para eventos de entrada, adicione o node **Pilot Status Trigger** ao seu fluxo de trabalho, copie sua URL de webhook e cole como um novo webhook na página **Webhooks** no painel do Pilot Status. Cada evento assinado então inicia seu fluxo de trabalho.
</Note>

## Boas práticas

* Mantenha a chave de API apenas no backend — nunca em código de navegador.
* Para respostas `429`/`5xx`, tente novamente com backoff exponencial (os SDKs ajudam, mas a política de retentativa fica a cargo do seu sistema).

## Relacionados

* [Enviar Mensagens](/pt-BR/guides/send-messages)
* [Receber Mensagens](/pt-BR/guides/receive-messages)
* [Servidor MCP](/pt-BR/integrations/mcp-server)
