Saltar para o conteúdo
NORMAS ABERTAS

Uma forma de descrever um carro.
Aberta a todos.

O AVS, AutoUncle Vehicle Schema, é um JSON Schema aberto e versionado para descrever um carro: o que é, como é construído e com que está equipado. Use-o nos seus próprios sistemas, valide-o em sete linguagens e construa sobre uma API que fala o mesmo modelo de identidade.

AVS · AUTOUNCLE VEHICLE SCHEMA

Só factos.
Cada nível, um facto à parte.

O AVS tem dois tipos de documento: um documento de tipo descreve um carro tal como é construído, por exemplo um BMW 320e G20 berlina com M Sport; um documento de veículo descreve um carro físico concreto desse tipo, com o VIN, o conta-quilómetros, a cor e o histórico. Licenciado sob Apache-2.0, sem dados do catálogo.

Factos, não opiniões

O AVS diz o que o carro é. Quanto vale e onde está à venda pertence a outro lugar.

O desconhecido fica de fora

Só a marca e o modelo são obrigatórios. Nada é adivinhado, e a ausência tem de ser declarada.

Qualquer sistema de códigos

Cada registo do catálogo lista os seus IDs em qualquer esquema, como AutoUncle, Wikidata ou KBA HSN/TSN, e nenhum é privilegiado.

Convenções da UE

As unidades fazem parte dos nomes dos campos, os valores seguem o Certificado de Conformidade da UE e o WLTP, e países, moedas e VIN usam códigos ISO.

Ler o esquema ↗
examples/type-bmw-320e-g20-m-sport.json
{
  "avs": { "version": "0.3", "kind": "type" },
  "identity": {
    "brand": {
      "name": "BMW",
      "ids": [
        { "scheme": "autouncle", "value": "b-example0001" },
        { "scheme": "wikidata", "value": "Q26678" }
      ]
    },
    "model": {
      "name": "3 Series",
      "localNames": { "DK": "3-serie" }
    },
    "generation": { "name": "3 Series (G20/G21)", "code": "G20" },
    "drivetrain": {
      "name": "320e (204 Hp) Plug-in Hybrid Steptronic"
    }
  },
  "specification": {
    "powertrain": {
      "energy": ["petrol", "electricity"],
      "electrification": "phev",
      "powerKw": 150, "torqueNm": 300
    }
  },
  "equipment": {
    "trim": {
      "name": "M Sport",
      "variations": ["M Sportpakke", "M-Sport"]
    }
  }
}
Um excerto do exemplo do BMW 320e no repositório do AVS.
O MODELO DE IDENTIDADE

A mesma estrutura
que a nossa API resolve.

Marca, modelo, geração e fase; depois carroçaria e motorização como factos independentes, e a versão, os pacotes e as opções pelo nome. As nossas APIs identificam os carros pelo mesmo caminho, da marca e do modelo à geração, à motorização e à versão, com IDs estáveis que pode guardar no AVS sob o esquema autouncle.

VALIDADORES

Valide o AVS
em sete linguagens.

Cada pacote inclui o esquema e um validador que devolve cada erro com um JSON Pointer para a sua localização. São gerados a partir do esquema, nunca escritos à mão, e a sua versão é sempre igual à do esquema.

LinguagemPacoteValidar
Rubyautouncle-avsAVS.validate(doc)
TypeScript / JavaScript@autouncle/avsvalidate(doc)
Pythonautouncle-avsavs.validate(doc)
Gogithub.com/AutoUncle/avs/packages/goavs.Validate(b)
Java / JVMcom.autouncle:avsAvs.validate(json)
.NETAutoUncle.AvsAvsSchema.Validate(json)
PHPautouncle/avsAvs::validate($doc)
A API

Normas abertas
em toda a API.

Contrato OpenAPI

Gere um cliente tipado na sua linguagem a partir do documento OpenAPI e valide os pedidos com ele.

Problem details

Os erros são documentos de problema segundo o RFC 9457, com um código estável, uma referência ao campo e uma correção sugerida.

Códigos ISO

Países ISO 3166, moedas ISO 4217 e VIN ISO 3779, nos pedidos e nos resultados.

Idempotente por natureza

Cada avaliação aceita uma chave de idempotência, para que um pedido repetido nunca seja cobrado duas vezes.

MCP para agentes

A mesma API como ferramentas para agentes de IA, além de uma skill de integração e de llms.txt para assistentes de programação.

Referência da API →

CONSTRUA SOBRE ISTO

Descreva os carros uma vez.
Use-os em todo o lado.

Leia o esquema, gere um cliente a partir do contrato OpenAPI e avalie o seu primeiro carro com uma chave de teste gratuita.

Obter a sua chave de API →