# Início rápido

Da documentação da API do Lero: https://lero.studio/docs#inicio. Tudo num arquivo só: https://lero.studio/docs/llms-full.txt.

1. Crie uma chave em [app.lero.studio/desenvolvedores](https://app.lero.studio/desenvolvedores?aba=chaves). A API está nos planos Creator e Dev.
2. Guarde a chave no seu servidor, na variável `LERO_API_KEY`.
3. Peça a primeira fala:

cURL:

```bash
curl -X POST "https://app.lero.studio/api/v1/tts" \
  -H "Authorization: Bearer $LERO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"texto": "Fala, tudo bem? Aqui é o Lero, direto do Rio.", "voz": "rio"}' \
  --output fala.mp3
```

Python:

```python
import os

import requests

r = requests.post(
    "https://app.lero.studio/api/v1/tts",
    headers={"Authorization": f"Bearer {os.environ['LERO_API_KEY']}"},
    json={"texto": "Fala, tudo bem? Aqui é o Lero, direto do Rio.", "voz": "rio"},
    timeout=300,
)
r.raise_for_status()
with open("fala.mp3", "wb") as f:
    f.write(r.content)
print("restam", r.headers["X-Creditos-Restantes"])
```

JavaScript:

```javascript
import { writeFile } from "node:fs/promises";

const res = await fetch("https://app.lero.studio/api/v1/tts", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.LERO_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ texto: "Fala, tudo bem? Aqui é o Lero, direto do Rio.", voz: "rio" }),
});
if (!res.ok) throw new Error(`${res.status} ${(await res.json()).erro}`);
await writeFile("fala.mp3", Buffer.from(await res.arrayBuffer()));
```

Base URL de todas as rotas: `https://app.lero.studio/api/v1`. Pedidos e respostas em JSON (UTF-8), menos o áudio: a fala devolve MP3 e a [transcrição](https://lero.studio/docs#transcricao) recebe o arquivo em `multipart/form-data`.

As rotas têm nome em inglês: `/v1/tts`, `/v1/stt`, `/v1/voices`, `/v1/balance`, `/v1/agents` e `/v1/agents/conversation`. Os caminhos antigos, em português (`/v1/fala`, `/v1/transcricao`, `/v1/vozes`, `/v1/saldo`, `/v1/agentes` e `/v1/agentes/conversa`), seguem funcionando igual.
