Quickstart

Faça sua primeira chamada IA via Tokia em ~3 minutos. Você vai precisar de uma conta Google e R$ 10 pra recarga PIX (saldo não expira).

Última verificação: 2026-05-19 · funcional contra `api.usetokia.com/v1`

Já tem conta? Pula pra primeira chamada →

Passo 1
Criar conta
~30s
Passo 2
Recarregar PIX
~1min
Passo 3
Criar API key
~30s
Passo 4
Primeira chamada
~10s

1. Criar conta

  1. Acesse usetokia.com/dashboard — você será redirecionado pra login Google.
  2. Autorize o acesso (Tokia recebe email + nome + foto).
  3. Dashboard aparece com saldo R$ 0,00.

2. Recarregar via PIX

  1. Na tela "Saldo", digite R$ 10 (mínimo) ou clique em um preset.
  2. Clique Gerar QR PIX. Na primeira vez, aparece o modal Complete seu cadastro pedindo CPF ou CNPJ — preencha (Asaas exige pra antifraude/nota fiscal).
  3. Pague o QR pelo app do banco. Saldo cai em até 30 segundos.
Saldo não expira e você pode recarregar a qualquer momento. Cada chamada IA debita o valor proporcional (markup decrescente — modelos baratos pagam 3x, caros pagam 1.5x).

3. Criar API key

  1. Vá em API Keys na sidebar do dashboard.
  2. Clique Criar key. Dê um nome (produção-app) e opcionalmente desmarque modelos que você não usa (ex: deixar só LLM).
  3. A key plaintext aparece uma vez — copie e salve em .env ou cofre seguro. Depois você só vê o prefixo (sk-tokia-AbCdEf12...).

4. Primeira chamada

Cole no terminal substituindo $TOKIA_KEY pela key copiada:

bash
curl https://api.usetokia.com/v1/chat/completions \
  -H "Authorization: Bearer $TOKIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openrouter/openai/gpt-4o-mini",
    "messages": [
      { "role": "user", "content": "Diga oi em 1 palavra" }
    ],
    "max_tokens": 5
  }'

Resposta esperada:

json
{
  "id": "chatcmpl-...",
  "model": "openrouter/openai/gpt-4o-mini",
  "choices": [
    { "message": { "role": "assistant", "content": "Olá!" }, "finish_reason": "stop" }
  ],
  "usage": { "prompt_tokens": 17, "completion_tokens": 2, "total_tokens": 19 }
}

Após ~60s (cron de reconcile do Tokia), o gasto aparece no dashboard em Uso. O custo BRL é calculado como spend_usd × fx_BCB × markup_modelo.

5. Em Python (OpenAI SDK)

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-tokia-...",       # sua key Tokia
    base_url="https://api.usetokia.com/v1",
)

response = client.chat.completions.create(
    model="openrouter/openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Diga oi"}],
)
print(response.choices[0].message.content)

6. Em Node.js (OpenAI SDK)

typescript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.TOKIA_KEY,
  baseURL: "https://api.usetokia.com/v1",
});

const res = await client.chat.completions.create({
  model: "openrouter/openai/gpt-4o-mini",
  messages: [{ role: "user", content: "Diga oi" }],
});
console.log(res.choices[0].message.content);

Cookbook · receitas práticas

Snippets prontos pros casos de uso mais comuns. Copie, troque a key e roda.

Chat com tool calling (function calling)

python
from openai import OpenAI

client = OpenAI(api_key="sk-tokia-...", base_url="https://api.usetokia.com/v1")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Consulta clima atual",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"]
        }
    }
}]

resp = client.chat.completions.create(
    model="openrouter/openai/gpt-4o-mini",  # ou claude, gemini — todos suportam tools
    messages=[{"role": "user", "content": "Qual a temperatura em Brasília?"}],
    tools=tools,
)
print(resp.choices[0].message.tool_calls)  # [{name: 'get_weather', arguments: '{"city":"Brasília"}'}]

Embeddings + busca semântica

python
from openai import OpenAI
import numpy as np

client = OpenAI(api_key="sk-tokia-...", base_url="https://api.usetokia.com/v1")

# Gera embeddings em batch (1 chamada, N textos)
texts = ["Tokia gateway IA brasileiro", "Pague em BRL via PIX", "API OpenAI-compatible"]
result = client.embeddings.create(
    model="openrouter/openai/text-embedding-3-small",
    input=texts,
)
vectors = np.array([e.embedding for e in result.data])

# Busca: cosine similarity entre query e corpus
query_vec = client.embeddings.create(
    model="openrouter/openai/text-embedding-3-small",
    input="como pagar?",
).data[0].embedding

sims = np.dot(vectors, query_vec) / (np.linalg.norm(vectors, axis=1) * np.linalg.norm(query_vec))
print(texts[np.argmax(sims)])  # → "Pague em BRL via PIX"

Whisper · transcrever áudio pt-BR

bash
curl https://api.usetokia.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $TOKIA_KEY" \
  -F file=@reuniao.mp3 \
  -F model=openrouter/openai/whisper-large-v3 \
  -F language=pt

Streaming (SSE) — token-by-token

typescript
const stream = await client.chat.completions.create({
  model: "openrouter/openai/gpt-4o-mini",
  messages: [{ role: "user", content: "Conte uma piada curta" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Próximos passos