Recursos
Integrações
Preços
Documentação
Contato
Entrar
Criar minha VA
AviOps Developers · API REST v1

Documentação técnica

Consulte dados operacionais da sua Virtual Airline e conecte sites, dashboards, bots e serviços externos ao AviOps.

COMECE AQUI

Visão geral

A API AviOps é uma interface REST somente para leitura. Todas as rotas atuais usam GET, recebem e devolvem JSON e estão sob o prefixo /v1.

URL base

https://integrations.aviops.io

ProtocoloHTTPS em produção
Formatoapplication/json
Versão/v1
Autorizaçãox-api-key
SEGURANÇA

Autenticação

Envie a chave em todas as requisições no header x-api-key. A chave identifica a Virtual Airline, seleciona seus dados isolados e contabiliza o consumo mensal.

HTTP header
x-api-key: SUA_CHAVE_DE_API
Accept: application/json
Proteja a credencial

Nunca exponha a chave em JavaScript executado no navegador, repositórios ou aplicativos distribuídos. Faça a chamada no backend, armazene a chave em variável de ambiente e aplique rotação em caso de vazamento.

A cota é mensal e vinculada à chave/VA. Ao atingir o limite, a API responde com 429. Cada chamada autenticada com sucesso é contabilizada.

INÍCIO RÁPIDO

Primeira requisição

Teste primeiro a listagem de pilotos. Uma resposta 200 confirma URL, conectividade e credencial.

cURL
curl "https://integrations.aviops.io/v1/pilots" \
  -H "x-api-key: SUA_CHAVE_DE_API" \
  -H "Accept: application/json"
PHP 8+
$ch = curl_init('https://integrations.aviops.io/v1/pilots');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'x-api-key: ' . getenv('AVIOPS_API_KEY'),
        'Accept: application/json',
    ],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);

if ($status !== 200) {
    throw new RuntimeException("AviOps respondeu HTTP {$status}");
}
$pilots = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
Node.js 18+ (backend)
const response = await fetch('https://integrations.aviops.io/v1/pilots', {
  headers: {
    'x-api-key': process.env.AVIOPS_API_KEY,
    'Accept': 'application/json'
  }
});

if (!response.ok) throw new Error(`AviOps HTTP ${response.status}`);
const pilots = await response.json();
CONTRATO

Respostas e erros

Listagens e consultas por ID retornam um array JSON. Portanto, uma busca por ID bem-sucedida contém zero ou um item; ID inexistente resulta em [], não em 404. Estatísticas é a exceção e retorna um objeto JSON.

StatusCorpoAção recomendada
200Array ou objeto JSONProcessar o conteúdo.
401{"error":"API Key is required"}Enviar o header obrigatório.
401{"error":"Invalid API Key"}Revisar ou rotacionar a chave.
429{"error":"API Key limit exceeded"}Aguardar a renovação mensal ou ampliar a cota.
Sem paginação ou filtros

A versão atual não interpreta query strings de filtro, ordenação ou paginação. Para conjuntos grandes, armazene os dados no seu backend e filtre localmente, respeitando sua política de atualização.

REFERÊNCIA

Endpoints da API v1

Use /{id} apenas com o identificador numérico interno retornado pela própria API.

GET

Pilotos

Retorna pilotos ativos e o rank associado.

/v1/pilots/v1/pilots/{id}
Campos da resposta
id:inticao:stringname:stringemail:stringrole:stringva_staff:boolstatus:stringrank_id:intrank_name:stringhub:string|nullactual_airport:stringivao_id:string|nullvatsim_id:string|nullsimbrief_id:string|nulllast_flight:string|nullflight_time:inttotal_pireps:intapproved_pireps:intrejected_pireps:inttotal_distance:intfpm_average:int|nulltotal_points:inttotal_coins:intcreated_at:stringupdated_at:string
GET

Candidatos

Retorna inscrições de candidatos da VA, inclusive dados de contato.

/v1/candidates/v1/candidates/{id}
Campos da resposta
id:intname:stringemail:stringcountry:stringsimulator:stringestimated_hours:stringprefered_aircraft:string|nullnetwork:stringivao_id:string|nullvatsim_id:string|nullsimbrief_id:string|nullprefered_hub:string|nullfleet:stringmotivation:stringreferral_source:stringstatus:stringcreated_at:stringupdated_at:string
GET

Frotas

Retorna as categorias de frota cadastradas.

/v1/fleets/v1/fleets/{id}
Campos da resposta
id:intname:stringaircraft_type:stringaircraft_icao:stringdescription:string|nullactive:boolcreated_at:stringupdated_at:string
GET

Aeronaves

Retorna todas as aeronaves cadastradas, inclusive inativas.

/v1/aircrafts/v1/aircrafts/{id}
Campos da resposta
id:intregistration:stringicao:stringname:stringfleet_id:intpax:intflight_time:intactual_airport:stringstatus:stringactive:boolcreated_at:stringupdated_at:string
GET

Aeroportos

Retorna aeroportos ativos utilizados pela operação.

/v1/airports/v1/airports/{id}
Campos da resposta
id:inticao:stringiata:stringname:stringcity:stringstate:stringcountry:stringcountry_iso:stringlatitude:floatlongitude:floatelevation:intinfo_pilot:string|nullactive:boolcreated_at:stringupdated_at:string
GET

Rotas

Retorna as rotas ativas publicadas pela VA.

/v1/routes/v1/routes/{id}
Campos da resposta
id:intflight_number:stringcallsign:stringtype:stringdeparture:stringarrival:stringdistance:intduration:stringflight_level:intcost_index:intdetails:string|nullactive:boolcreated_at:stringupdated_at:string
GET

Ranks

Retorna os níveis de progressão ativos dos pilotos.

/v1/ranks/v1/ranks/{id}
Campos da resposta
id:intorder:intname:stringdetails:string|nullmin_hours:intmin_pireps:intactive:boolcreated_at:stringupdated_at:string
GET

Badges

Retorna badges ativos e seus critérios de conquista.

/v1/badges/v1/badges/{id}
Campos da resposta
id:intname:stringcategory:stringdetails:string|nullcriteria:string|nullcriteria_value_1:int|nullcriteria_value_2:int|nullbonus_points:intdescription:string|nullactive:boolcreated_at:stringupdated_at:string
GET

Tours

Retorna os tours cadastrados, inclusive os encerrados ou inativos.

/v1/tours/v1/tours/{id}
Campos da resposta
id:intname:stringdescription:string|nullstart_date:stringend_date:stringactive:boolcreated_at:stringupdated_at:string
GET

Estatísticas

Retorna um objeto com indicadores agregados da VA. Este endpoint não aceita ID.

/v1/statistics
Campos da resposta
pilots:intaircrafts:intairports:intpireps:introutes:intflight_time:int (minutos)distance:int (NM)fpm:intpassengers:int
Exemplo de resposta
{
  "pilots": 42,
  "aircrafts": 18,
  "airports": 96,
  "pireps": 1250,
  "routes": 210,
  "flight_time": 84500,
  "distance": 615300,
  "fpm": -184,
  "passengers": 92840
}
PRODUÇÃO

Checklist de implantação

1Configure a URL base via variável de ambiente.
2Mantenha a API key apenas no backend ou cofre de segredos.
3Defina timeout e registre status HTTP sem registrar a chave.
4Trate explicitamente 401, 429, respostas vazias e falhas de rede.
5Aplique cache compatível com a atualização necessária e monitore a cota.