Integre o MotorOps com seus sistemas. Acesso somente leitura a clientes, veiculos, ordens de servico e orcamentos via HTTP REST.
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"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"
}Todos os endpoints de listagem suportam paginacao via query params.
| Parametro | Tipo | Padrao | Descricao |
|---|---|---|---|
| limit | integer | 50 | Maximo de itens por pagina (max: 100) |
| offset | integer | 0 | Numero 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_..."https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/clientesLista 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 }
}https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/veiculosLista todos os veiculos do tenant. Como compatibilidade, o alias /motos tambem retorna estes dados.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| cliente_id | uuid | opcional | Filtra 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 }
}https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/ordens-servicoLista ordens de serviço do tenant. Filtrável por status e cliente.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| status | string | opcional | aberta, em_analise, aguardando_peca, em_execucao, finalizada, entregue, cancelada |
| cliente_id | uuid | opcional | Filtra 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 }
}https://yddbbbpnnruttuwhdgxe.supabase.co/functions/v1/api-v1/orcamentosLista orçamentos do tenant. Filtrável por status e cliente.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| status | string | opcional | rascunho, aprovado, cancelado |
| cliente_id | uuid | opcional | Filtra 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 }
}| code | HTTP | Descrição |
|---|---|---|
| MISSING_TOKEN | 401 | Header Authorization ausente ou sem prefixo Bearer |
| INVALID_KEY | 401 | Chave inválida, não encontrada ou revogada |
| PLAN_REQUIRED | 403 | Tenant não está no plano Business |
| RATE_LIMITED | 429 | Limite de 100 req/min atingido. Ver header Retry-After |
| METHOD_NOT_ALLOWED | 405 | Método diferente de GET utilizado |
| NOT_FOUND | 404 | Endpoint não existe. Ver campo endpoints_disponiveis |
Formato de erro
{
"erro": "Descricao do erro em portugues",
"code": "CODIGO_DO_ERRO"
}