Skip to content
Vai integrar a API do Collector com ajuda de IA? Copie a instrução que aponta o modelo para esta documentação.
Ver a instrução
Você vai integrar a API do Collector. Use a documentação oficial como fonte da verdade.

- Página desta integração: https://developers.zarv.com/api/collector/authentication
- Spec OpenAPI (fonte da verdade para rotas e schemas): https://developers.zarv.com/openapi/collector-api.json
- Autenticação: https://developers.zarv.com/api/collector/authentication
- Índice da documentação em markdown: https://developers.zarv.com/llms.txt
- Documentação completa em um arquivo: https://developers.zarv.com/llms-full.txt

O spec OpenAPI acima é a fonte da verdade para rotas, parâmetros e schemas — confira nele antes de escrever qualquer request.

Antes de escrever qualquer código, leia a página desta integração. Siga exatamente os nomes de campos, endpoints, callbacks e formatos que estiverem documentados — não invente parâmetros nem endpoints, e não deduza comportamento a partir de outras APIs que você conhece. Se algo de que você precisa não estiver na documentação, diga que não está em vez de supor.

Minha tarefa: [ex.: enviar eventos de telemetria do meu backend]

Autenticação ​

A API do Collector utiliza autenticação HTTP Basic para garantir acesso seguro. Todas as requisições à API devem incluir suas credenciais de usuário codificadas em Base64 no cabeçalho Authorization.

Como Funciona a Autenticação Basic ​

A autenticação HTTP Basic é um método simples onde suas credenciais (nome de usuário e senha) são codificadas em Base64 e enviadas no cabeçalho Authorization de cada requisição.

Formato do Cabeçalho ​

Authorization: Basic <credenciais_em_base64>

Onde <credenciais_em_base64> é a codificação Base64 de username:password.

Preparando suas Credenciais ​

Para usar a API, você precisa:

  1. Ter uma conta válida na Zarv
  2. Conhecer seu nome de usuário (email) e senha
  3. Codificar suas credenciais em Base64

Codificação Base64 ​

Para codificar suas credenciais, combine seu nome de usuário e senha com dois pontos (:) e codifique em Base64:

echo -n "[email protected]:sua_senha" | base64

Resultado: c2V1LmVtYWlsQHphcnYuY29tOnN1YV9zZW5oYQ==

Exemplos de Uso ​

Fazendo Requisições com Basic Auth ​

js
const axios = require("axios");

// Método 1: Codificação manual
const credentials = Buffer.from("[email protected]:sua_senha").toString(
  "base64",
);
axios
  .get("https://collector.zarv.com/api/v3/gps-signal", {
    headers: {
      Authorization: `Basic ${credentials}`,
    },
  })
  .then((response) => console.log(response.data))
  .catch((error) => console.error(error));

// Método 2: Usando auth do axios
axios
  .get("https://collector.zarv.com/api/v3/gps-signal", {
    auth: {
      username: "[email protected]",
      password: "sua_senha",
    },
  })
  .then((response) => console.log(response.data))
  .catch((error) => console.error(error));
go
package main

import (
  "encoding/base64"
  "fmt"
  "net/http"
)

func main() {
  username := "[email protected]"
  password := "sua_senha"

  // Codificar credenciais em Base64
  credentials := base64.StdEncoding.EncodeToString([]byte(username + ":" + password))

  req, err := http.NewRequest("GET", "https://collector.zarv.com/api/v3/gps-signal", nil)
  if err != nil {
    fmt.Println("Erro ao criar requisição:", err)
    return
  }

  req.Header.Set("Host", "collector.zarv.com")
  req.Header.Set("Authorization", "Basic "+credentials)

  client := &http.Client{}
  resp, err := client.Do(req)
  if err != nil {
    fmt.Println("Erro ao fazer requisição:", err)
    return
  }
  defer resp.Body.Close()

  fmt.Println("Status da resposta:", resp.Status)
}

Exemplo de Requisição HTTP ​

http
GET /api/v3/gps-signal HTTP/1.1
Host: collector.zarv.com
Authorization: Basic c2V1LmVtYWlsQHphcnYuY29tOnN1YV9zZW5oYQ==
Content-Type: application/json

Segurança e Boas Práticas ​

Segurança das Credenciais ​

  • HTTPS Obrigatório: Sempre use HTTPS para proteger suas credenciais em trânsito
  • Armazenamento Seguro: Nunca armazene credenciais em código-fonte ou logs
  • Variáveis de Ambiente: Use variáveis de ambiente para armazenar credenciais

Exemplo com Variáveis de Ambiente ​

bash
# Definir variáveis de ambiente
export ZARV_USERNAME="[email protected]"
export ZARV_PASSWORD="sua_senha"

# Usar nas requisições
curl -X GET "https://collector.zarv.com/api/v3/gps-signal" \
-u "$ZARV_USERNAME:$ZARV_PASSWORD"
js
const axios = require("axios");

const username = process.env.ZARV_USERNAME;
const password = process.env.ZARV_PASSWORD;

axios
  .get("https://collector.zarv.com/api/v3/gps-signal", {
    auth: {
      username: username,
      password: password,
    },
  })
  .then((response) => console.log(response.data))
  .catch((error) => console.error(error));
py
import os
import requests

username = os.getenv('ZARV_USERNAME')
password = os.getenv('ZARV_PASSWORD')

response = requests.get(
    "https://collector.zarv.com/api/v3/gps-signal",
    auth=(username, password)
)
print(response.status_code, response.json())

Respostas de Erro ​

Se a autenticação falhar, a API retornará uma resposta de erro:

401 Não Autorizado ​

Retornado quando:

  • Credenciais são inválidas
  • Nome de usuário ou senha incorretos
  • Cabeçalho Authorization está ausente ou malformado

HTTP Status code: 401

json
{
  "error": "Unauthorized",
  "message": "Credenciais inválidas"
}

403 Proibido ​

Retornado quando:

  • Credenciais são válidas, mas não têm permissão para acessar o recurso
  • Conta está suspensa ou inativa

HTTP Status code: 403

json
{
  "error": "Forbidden",
  "message": "Acesso negado ao recurso solicitado"
}

Uma resposta bem-sucedida (status 200) indica que suas credenciais estão corretas.

Solução de Problemas ​

Problemas Comuns ​

  1. Erro 401: Verifique se suas credenciais estão corretas
  2. Codificação Incorreta: Certifique-se de que a codificação Base64 está correta
  3. HTTPS: Sempre use HTTPS, nunca HTTP
  4. Caracteres Especiais: Certifique-se de que caracteres especiais na senha estão sendo tratados corretamente

Verificação de Codificação ​

Para verificar se sua codificação Base64 está correta:

bash
# Codificar
echo -n "[email protected]:sua_senha" | base64

# Decodificar para verificar
echo "c2V1LmVtYWlsQHphcnYuY29tOnN1YV9zZW5oYQ==" | base64 -d

Para obter ajuda, consulte o time da zarv.