Voltar ao inicio
Plano Business

API REST - Referencia

Integre o MotorOps com seus sistemas. Acesso somente leitura a clientes, veiculos, ordens de servico e orcamentos via HTTP REST.

Autenticacao

Todas as requisicoes precisam do header Authorization com sua chave de API no formato Bearer <chave>.

Gere suas chaves em Configuracoes → API. As chaves tem o prefixo mtops_live_.

curl -X GET "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/clientes" \
  -H "Authorization: Bearer mtops_live_sua_chave_aqui"
Sua chave da API e exibida apenas uma vez. Guarde-a com seguranca. Nunca a exponha no codigo frontend.

Rate limit

Maximo de 100 requisicoes por minuto por chave de API. O contador reseta a cada minuto.

Quando o limite e atingido, a API retorna HTTP 429 com o header Retry-After indicando quantos segundos aguardar.

HTTP/1.1 429 Too Many Requests
Retry-After: 37

{
  "erro": "Limite de requisicoes atingido. Maximo: 100 req/min",
  "code": "RATE_LIMITED"
}

Paginacao

Todos os endpoints de listagem suportam paginacao via query params.

ParametroTipoPadraoDescricao
limitinteger50Maximo de itens por pagina (max: 100)
offsetinteger0Numero de itens a pular

Todas as respostas seguem o formato:

{
  "data": [...],
  "pagination": {
    "limit": 50,
    "offset": 0,
    "total": 248,
    "has_more": true
  }
}
# Pagina 2 com 25 itens por pagina
curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/clientes?limit=25&offset=25" \
  -H "Authorization: Bearer mtops_live_..."

GET /clientes

GEThttps://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/clientes

Lista todos os clientes do tenant autenticado, ordenados por data de criacao (mais recente primeiro).

curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/clientes?limit=10&offset=0" \
  -H "Authorization: Bearer mtops_live_..."

Resposta

{
  "data": [
    {
      "id": "uuid",
      "nome": "Joao Silva",
      "telefone": "62999990000",
      "email": "joao@exemplo.com",
      "documento": "000.000.000-00",
      "created_at": "2025-03-01T10:00:00Z",
      "updated_at": "2025-03-01T10:00:00Z"
    }
  ],
  "pagination": { "limit": 10, "offset": 0, "total": 42, "has_more": true }
}

GET /veiculos

GEThttps://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/veiculos

Lista todos os veiculos do tenant. Como compatibilidade, o alias /motos tambem retorna estes dados.

ParâmetroTipoObrigatórioDescrição
cliente_iduuidopcionalFiltra veiculos de um cliente específico
# Todos os veiculos
curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/veiculos" \
  -H "Authorization: Bearer mtops_live_..."

# Alias legado para motos
curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/motos?cliente_id=uuid-do-cliente" \
  -H "Authorization: Bearer mtops_live_..."

Resposta

{
  "data": [
    {
      "id": "uuid",
      "marca": "Honda",
      "modelo": "CG 160",
      "ano": 2022,
      "placa": "ABC-1234",
      "chassi": "9C2KC2200NR000000",
      "cilindrada": 160,
      "tipo": "street",
      "cor": "Preta",
      "km_atual": 18400,
      "cliente_id": "uuid-do-cliente",
      "created_at": "2025-03-01T10:00:00Z",
      "updated_at": "2025-03-01T10:00:00Z"
    }
  ],
  "pagination": { "limit": 50, "offset": 0, "total": 5, "has_more": false }
}

GET /ordens-servico

GEThttps://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/ordens-servico

Lista ordens de serviço do tenant. Filtrável por status e cliente.

ParâmetroTipoObrigatórioDescrição
statusstringopcionalaberta, em_analise, aguardando_peca, em_execucao, finalizada, entregue, cancelada
cliente_iduuidopcionalFiltra ordens de um cliente específico
# Ordens em execucao
curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/ordens-servico?status=em_execucao" \
  -H "Authorization: Bearer mtops_live_..."

# Ordens finalizadas de um cliente
curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/ordens-servico?status=finalizada&cliente_id=uuid" \
  -H "Authorization: Bearer mtops_live_..."

Resposta

{
  "data": [
    {
      "id": "uuid",
      "numero": "OS-00123",
	      "status": "em_execucao",
	      "cliente_id": "uuid",
	      "veiculo_id": "uuid",
	      "total": 350.00,
	      "data_entrada": "2025-03-01",
	      "data_previsao": "2025-03-04",
	      "data_saida": null,
	      "created_at": "2025-03-01T10:00:00Z",
      "updated_at": "2025-03-02T14:30:00Z"
    }
  ],
  "pagination": { "limit": 50, "offset": 0, "total": 18, "has_more": false }
}

GET /orcamentos

GEThttps://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/orcamentos

Lista orçamentos do tenant. Filtrável por status e cliente.

ParâmetroTipoObrigatórioDescrição
statusstringopcionalrascunho, aprovado, cancelado
cliente_iduuidopcionalFiltra orçamentos de um cliente específico
curl "https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/orcamentos?status=aprovado" \
  -H "Authorization: Bearer mtops_live_..."

Resposta

{
  "data": [
    {
      "id": "uuid",
      "numero": "ORC-00045",
	      "status": "aprovado",
	      "cliente_id": "uuid",
	      "veiculo_id": "uuid",
	      "total": 520.00,
	      "validade": "2025-03-10",
	      "aprovado_em": "2025-03-01T11:00:00Z",
	      "cancelado_em": null,
	      "created_at": "2025-03-01T10:00:00Z",
      "updated_at": "2025-03-01T11:00:00Z"
    }
  ],
  "pagination": { "limit": 50, "offset": 0, "total": 7, "has_more": false }
}

Códigos de erro

codeHTTPDescrição
MISSING_TOKEN401Header Authorization ausente ou sem prefixo Bearer
INVALID_KEY401Chave inválida, não encontrada ou revogada
PLAN_REQUIRED403Tenant não está no plano Business
RATE_LIMITED429Limite de 100 req/min atingido. Ver header Retry-After
METHOD_NOT_ALLOWED405Método diferente de GET utilizado
NOT_FOUND404Endpoint não existe. Ver campo endpoints_disponiveis

Formato de erro

{
  "erro": "Descricao do erro em portugues",
  "code": "CODIGO_DO_ERRO"
}
MotorOps Business API v1 - Suporte: suporte@motorops.com.br