GET
/meQuem sou eu
qualquer chave
A organização, a chave (escopos, validade), os limites e as caixas com o estado das conexões.
GET /me
curl "https://chat.forsi.com.br/api/v1/me" \
-H "Authorization: Bearer $FORSI_CHAVE"const resposta = await fetch('https://chat.forsi.com.br/api/v1/me', {
headers: {
Authorization: `Bearer ${process.env.FORSI_CHAVE}`,
},
});
const json = await resposta.json();
if (!resposta.ok) throw new Error(`${resposta.status} ${json.erro.codigo}: ${json.erro.mensagem}`);
console.log(json.dados);import os
import requests
resposta = requests.get(
"https://chat.forsi.com.br/api/v1/me",
headers={
"Authorization": f"Bearer {os.environ['FORSI_CHAVE']}",
},
timeout=30,
)
corpo = resposta.json()
if not resposta.ok:
raise RuntimeError(f"{resposta.status_code} {corpo['erro']['codigo']}: {corpo['erro']['mensagem']}")
print(corpo["dados"])Resposta 200
{
"dados": {
"organizacao": {
"id": "dddecb67-6b55-43da-94f6-18c8d6680571",
"nome": "Maria Souza"
},
"chave": {
"id": "71c5c606-a9d7-4270-8891-45d783aa9b71",
"nome": "Maria Souza",
"prefixo": "fcv2_live_EXAMPLE",
"escopos": ["texto"],
"expira_em": "2026-10-04T13:05:12.481Z"
},
"limites": {
"por_minuto": 300,
"org_por_minuto": 600,
"envios_por_minuto": 60,
"envios_org_por_minuto": 120
},
"trava_spam_meta": {"ligada":false,"horas":12},
"caixas": [
{
"id": "7a9d53e9-9d1b-4122-923b-fac67958f445",
"nome": "Maria Souza",
"canal": "whatsapp",
"telefone": "+5531988887777",
"conexoes": [
{
"tipo": "texto",
"estado": "texto",
"sem_acesso_meta": {
"desde": "2026-10-04T13:05:12.481Z",
"ultima_leitura_ok": "2026-10-04T13:05:12.481Z"
},
"restricao_meta": {}
}
]
}
]
}
}Resposta#
200 com {"dados": ...}: Eu.
organizacaoobjectopcional—organizacao.iduuidopcional—organizacao.nomestringopcional—chaveobjectopcional—chave.iduuidopcional—chave.nomestringopcional—chave.prefixostringopcional—chave.escoposlista de stringopcional—chave.expira_emdata e hora ISO 8601 ou nullopcional—limitesobjectopcional—limites.por_minutointegeropcional—limites.org_por_minutointegeropcional—limites.envios_por_minutointegeropcional—limites.envios_org_por_minutointegeropcional—trava_spam_metaobjectopcionalTrava de spam da Meta da organização (Configurações > API).
trava_spam_meta.ligadabooleanopcional—trava_spam_meta.horasintegeropcionalDuração da restrição quando a Meta não manda data.
caixaslista de objectopcional—caixas[].iduuidopcional—caixas[].nomestringopcional—caixas[].canalstringopcional—caixas[].telefonestring ou nullopcional—caixas[].conexoeslista de objectopcional—
Erros#
Todo erro vem como {"erro": {"codigo", "mensagem"}}. Trate pelo codigo: ele não muda.
| Status | Quando |
|---|---|
| 401 | Chave ausente ou inválida (resposta igual para qualquer motivo). |
| 403 | Plano sem API, escopo insuficiente ou https/origem recusados. |
| 422 | Dados inválidos ou regra de negócio (ex.: janela_fechada; conta_restrita = a Meta restringiu a conta por spam: erro traz os campos de RestricaoMeta, como ate, escopo, motivo e retry_after_s). |
| 429 | Limite de requisições. Veja Retry-After. |
Códigos de erro que esta área pode devolver2
nao_autorizadoChave de API ausente, inválida, revogada, vencida ou fora dos IPs permitidos. Mande "Authorization: Bearer fcv2_live_...".muitas_falhasMuitas tentativas com chave errada deste endereço. Espere o tempo de Retry-After.
Os erros que valem para qualquer rota (chave, limite, JSON) estão em Erros.