Referencia da API
O GoConverso disponibiliza uma API REST construida sobre o Supabase , oferecendo acesso programatico aos seus agendamentos, servicos, clientes, produtos e muito mais. Toda acao que voce pode realizar no painel tambem esta disponivel atraves da API.
A API do GoConverso segue as convencoes RESTful e retorna respostas em JSON. Todas as requisicoes devem ser autenticadas usando um token JWT ou sua chave de API do projeto.
URL Base
Todas as requisicoes da API sao feitas para o endpoint do seu projeto Supabase:
https://<project-id>.supabase.co/rest/v1/Para edge functions (webhooks, logica personalizada):
https://<project-id>.supabase.co/functions/v1/Autenticacao
Toda requisicao deve incluir cabecalhos de autenticacao. O GoConverso suporta dois metodos:
| Metodo | Caso de uso | Cabecalho |
|---|---|---|
| Chave de API | Integracoes servidor-a-servidor | apikey: <sua-anon-key> |
| Token JWT | Requisicoes com escopo de usuario | Authorization: Bearer <jwt-token> |
Ambos os cabecalhos devem ser incluidos na maioria das requisicoes. A chave de API identifica seu projeto, e o token JWT identifica o usuario autenticado.
curl -X GET "https://<project-id>.supabase.co/rest/v1/services" \
-H "apikey: <your-anon-key>" \
-H "Authorization: Bearer <jwt-token>" \
-H "Content-Type: application/json"Saiba mais no guia de Autenticacao.
Limites de taxa
O GoConverso aplica limites de taxa para garantir a estabilidade da plataforma:
| Plano | Requisicoes por minuto | Conexoes simultaneas |
|---|---|---|
| Free | 60 | 5 |
| Plus | 300 | 20 |
| Pro | 1.000 | 50 |
| Max | 5.000 | 100 |
| Ultra | 10.000 | 200 |
Quando voce excede o limite de taxa, a API retorna uma resposta 429 Too Many Requests com um cabecalho Retry-After indicando quantos segundos aguardar.
Formato de resposta
Todas as respostas bem-sucedidas retornam JSON com codigos de status HTTP padrao:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2026-01-15T10:30:00.000Z",
"name": "Haircut",
"price": 35.00,
"duration": 30
}Respostas de erro seguem uma estrutura consistente:
{
"code": "PGRST301",
"message": "Row not found",
"details": null,
"hint": null
}Row Level Security
O GoConverso usa o Row Level Security (RLS) do Supabase em todas as tabelas. Isso significa:
- Usuarios autenticados so podem acessar seus proprios dados
- Endpoints publicos (como paginas de agendamento) usam a chave anon com politicas restritas
- Chave service role ignora completamente o RLS — nunca exponha esta chave em codigo do lado do cliente
Nunca exponha sua chave service_role em codigo frontend ou repositorios publicos. Esta chave ignora todas as politicas de Row Level Security e concede acesso total ao seu banco de dados.
Secoes da API
Tokens JWT, chaves de API, provedores OAuth e gerenciamento de sessoes.
AutenticacaoCrie, leia, atualize e cancele compromissos de forma programatica.
AgendamentosGerencie seu catalogo de servicos, precos, duracoes e categorias.
ServicosAcesse seu banco de dados de clientes, historico de agendamentos e dados de CRM.
ClientesGerencie seu catalogo de produtos, variantes, estoque e precos.
ProdutosAcompanhe pedidos de e-commerce, ordens de servico e status de pagamento.
PedidosReceba notificacoes em tempo real para pagamentos, agendamentos e eventos.
WebhooksLogica personalizada no servidor para emails, pagamentos e integracoes.
Edge FunctionsExemplo rapido
Aqui esta um exemplo completo que busca todos os servicos do usuario autenticado:
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
'https://<project-id>.supabase.co',
'<your-anon-key>'
)
// Sign in
const { data: auth } = await supabase.auth.signInWithPassword({
email: 'you@example.com',
password: 'your-password'
})
// Fetch services
const { data: services, error } = await supabase
.from('services')
.select('*')
.eq('professional_id', auth.user.id)
.order('created_at', { ascending: false })
if (error) {
console.error('Error fetching services:', error.message)
} else {
console.log('Services:', services)
}Precisa de ajuda para comecar? Veja o guia de Autenticacao para obter suas credenciais de API.