> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.basement.chat/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.basement.chat/_mcp/server.

# Conectar um programa

Um programa é um sistema da sua organização que usa o Basement por código: uma integração, um script, um serviço de back-end. Ele usa as mesmas ferramentas que um agente, com uma chave própria, e assim o registro de atividade mostra o sistema pelo nome dele.

### Crie uma chave para o programa

No Basement, abra **Agentes** e clique em **Conectar agente**. Selecione **Programa**, dê um nome ao sistema (por exemplo, "Sistema de faturamento") e selecione o nível de acesso dele.

O Basement mostra a chave uma única vez. Copie a chave agora e guarde em um cofre de segredos ou em uma variável de ambiente. Não coloque a chave no código-fonte.

### Instale o SDK

**`TypeScript`**

```bash title="TypeScript"
npm install @basementai/gateway
```

**`Python`**

```bash title="Python"
pip install basement-gateway
```

### Faça a primeira chamada

**`TypeScript`**

```typescript title="TypeScript"
import { BasementGatewayClient } from "@basementai/gateway";

const basement = new BasementGatewayClient({
  apiKey: process.env.BASEMENT_API_KEY,
});

const me = await basement.whoami();
console.log(me.orgName);

const { docs } = await basement.docs.list();
const doc = await basement.docs.read({ docId: docs[0].id });
console.log(doc.title, doc.bodyMarkdown);
```

**`Python`**

```python title="Python"
import os
from basement_gateway import BasementGateway

basement = BasementGateway(api_key=os.environ["BASEMENT_API_KEY"])

me = basement.whoami()
print(me.org_name)

docs = basement.docs.list().docs
doc = basement.docs.read(doc_id=docs[0].id)
print(doc.title, doc.body_markdown)
```

**`HTTP`**

```bash title="HTTP"
curl -X POST https://mcp.basement.chat/v1/tools/whoami \
  -H "Authorization: Bearer $BASEMENT_API_KEY"

curl -X POST https://mcp.basement.chat/v1/tools/read_doc \
  -H "Authorization: Bearer $BASEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"docId": "o_id_do_documento"}'
```

Os dois SDKs leem a chave da variável de ambiente `BASEMENT_API_KEY` quando você não informa uma.

## O que acontece depois

* O programa só consegue chamar o que o nível de acesso dele permite. Uma chamada fora disso responde `403`. Veja [Erros e limites](/pt-br/sdks/errors-and-limits).
* Cada chamada aparece em **Agentes**, **Atividade**, marcada como programa, com o SDK e a versão dele. Veja [Registro de atividade](/pt-br/concepts/activity-log).
* A lista completa de operações está na [Referência da API](/pt-br/api-reference).