API pública da CHOFF
A CHOFF publica duas APIs de escrita: a do formulário de contato e a da candidatura de Motorista fundador. Esta página é o service-doc anunciado no catálogo de APIs.
Catálogo de APIs
O catálogo segue a RFC 9727 e fica em /.well-known/api-catalog, servido como application/linkset+json. Cada entrada traz a descrição OpenAPI (service-desc), esta página (service-doc) e o endpoint de saúde (status).
POST /api/contato
Registra um contato de passageiro, empresa ou motorista. O corpo é JSON e todos os campos são obrigatórios, inclusive o turnstileToken: o endpoint valida o token no Cloudflare Turnstile antes de gravar qualquer coisa. O token só é emitido pelo widget da página de contato, então não há como chamar a API fora do site.
POST /api/contato HTTP/1.1
Host: choff.com.br
Content-Type: application/json
{
"nome": "Ana Ribeiro",
"telefone": "+55 61 99999-0000",
"email": "ana@empresa.com.br",
"perfil": "empresa",
"motivo": "Mobilidade executiva para a diretoria.",
"turnstileToken": "<token emitido pelo widget Turnstile>"
}Resposta de sucesso:
{ "ok": true }Em caso de erro, a resposta usa application/problem+json e o formato RFC 9457. Ela traz type, title, status, code, detail e resolution. O endpoint aceita somente POST com JSON de até 16 KiB. Os códigos atuais são json_invalido, media_type_nao_suportado, corpo_muito_grande, captcha_invalido, captcha_indisponivel, campos_invalidos, metodo_nao_permitido, erro_interno, api_nao_encontrada e api_indisponivel. Campos inválidos retornam HTTP 422; falhas de dependência retornam HTTP 503. O campo perfil aceita passageiro, empresa ou motorista.
POST /api/motorista
Registra uma candidatura de Motorista fundador na lista de espera para contato manual da equipe — não cria conta nem garante contratação. Assim como o contato, exige o turnstileToken, emitido só pelo widget da página de motoristas, e segue os mesmos limites e erros. Com veiculo igual a sim, os campos tipoVeiculo, blindado, modelo, ano e cor são obrigatórios; com nao, ficam de fora. idiomas, cursos, origem e observacao são opcionais. Os valores aceitos em cada lista estão no OpenAPI. Quando as candidaturas estão fechadas, o endpoint responde HTTP 404.
POST /api/motorista HTTP/1.1
Host: choff.com.br
Content-Type: application/json
{
"nome": "Ana Ribeiro",
"telefone": "+55 61 99999-0000",
"email": "ana@exemplo.com",
"uf": "DF",
"cidade": "Brasília",
"cnhCategoria": "D",
"cnhEar": "sim",
"cnpj": "mei",
"veiculo": "sim",
"tipoVeiculo": "suv",
"blindado": "nao",
"modelo": "Corolla Cross",
"ano": 2023,
"cor": "Preto",
"experiencia": "2_a_5_anos",
"disponibilidade": "parcial",
"idiomas": ["ingles"],
"cursos": ["direcao_defensiva"],
"turnstileToken": "<token emitido pelo widget Turnstile>"
}GET /api/status
Responde { "status": "ok" } com HTTP 200 enquanto a API e o banco respondem, e { "status": "degradado" } com HTTP 503 quando o banco está indisponível.
Descrição OpenAPI
O documento OpenAPI 3.1 completo está em /api/openapi.json.
Para agentes
Para conversar com a CHOFF, prefira o WhatsApp +55 11 93623-8436 — a API de contato existe para o formulário do site. O conteúdo das páginas está disponível em Markdown: basta enviar Accept: text/markdown, ou consultar o /llms.txt — inclusive as páginas de motorista particular, mobilidade para empresas e parceria com motoristas.