Programadores
Construa sobre os seus dados de calibração.
A API Pública do Axiospec é uma interface REST para os seus instrumentos e registos de calibração. Leia e crie instrumentos, registe calibrações no registo com deteção de adulteração e traga os seus locais e normas para os seus próprios sistemas. Autentique-se com uma chave de API do espaço de trabalho e avance.
Primeiros passos
Tudo o que precisa antes da primeira chamada
Leia isto uma vez e depois abra a referência interativa completa para ver a forma exata do pedido e da resposta de cada endpoint.
O que a API faz
A API Pública do Axiospec é uma interface REST para o seu programa de calibração. Leia e crie instrumentos, registe calibrações no registo com deteção de adulteração e leia os locais do seu espaço de trabalho e as normas de conformidade que selecionou.
É um contrato estável e selecionado, separado dos endpoints internos que as aplicações web e móvel usam. Assim a sua integração continua a funcionar à medida que o produto evolui. Todas as respostas são JSON.
URL base
Todos os endpoints vivem sob um único URL base. Todos os caminhos na referência abaixo são relativos a ele.
https://axiospec.com/api/public/v1
Autenticação
Autentique cada pedido com uma chave de API por espaço de trabalho. Um administrador do espaço de trabalho cria uma na aplicação em Definições e depois Chaves de API. As chaves são mostradas uma única vez, na criação, e têm o prefixo ctk_. Guarde a chave como um segredo e nunca a inclua em código do lado do cliente.
Envie a chave em cada pedido como token bearer:
Authorization: Bearer ctk_your_api_key
Se preferir, também é aceite um cabeçalho X-API-Key padrão: X-API-Key: ctk_your_api_key. Um pedido sem chave devolve 401.
Requisito de plano
A API está disponível nos planos Professional e superiores. Uma chave que pertença a um espaço de trabalho no plano Free ou Starter recebe um 403 com o código API_ACCESS_TIER_REQUIRED. Faça o upgrade do espaço de trabalho para a ativar.
Âmbitos
Cada chave é emitida com um âmbito. Uma chave de leitura pode listar e obter. Uma chave de escrita pode também criar instrumentos, atualizá-los e registar calibrações (escrita implica sempre leitura).
Uma chave só de leitura que tente uma escrita recebe um 403 com o código INSUFFICIENT_SCOPE, que indica o âmbito necessário. Emita chaves só de leitura para integrações de relatórios, para que nunca possam alterar um registo.
Limites de pedidos e os seus cabeçalhos
Os pedidos estão limitados a 120 por minuto, contados por chave de API e não por IP. Assim uma integração não esgota outra e várias chaves atrás da mesma rede de escritório não são limitadas em conjunto.
Cada resposta da API traz a janela atual em cabeçalhos, para que possa regular o ritmo sem adivinhar. X-RateLimit-Limit é o teto (120), X-RateLimit-Remaining é quantos pedidos restam na janela atual e X-RateLimit-Reset é o número de segundos até a janela reiniciar e Remaining voltar ao limite completo.
Exceder o limite devolve um 429 com o código RATE_LIMITED. No 429, um cabeçalho Retry-After (em segundos) diz-lhe exatamente quanto tempo esperar. Respeite-o e depois repita. Ler estes cabeçalhos em vez de fixar um atraso no código mantém-no rápido quando há margem e contido quando não há.
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 118
X-RateLimit-Reset: 41
Retry-After: 41 (present only on a 429)
Sincronização incremental
Para manter um sistema externo em dia sem reler tudo, obtenha apenas o que mudou desde a última execução. Cada coleção aceita um parâmetro updated_since (um carimbo temporal ISO-8601 em UTC) que devolve apenas os registos modificados nesse instante ou depois dele, e um parâmetro sort para os percorrer do mais antigo para o mais recente e avançar uma marca de água à medida que avança.
O feed de calibrações de todo o tenant, GET /calibrations, foi feito exatamente para isto: devolve todas as calibrações de todos os seus instrumentos num único fluxo paginado, por isso não precisa de iterar instrumento a instrumento. Ordene de forma ascendente por updated_at, percorra as páginas e guarde o created_at do último registo que viu. O registo é só de acréscimo, por isso um registo de calibração nunca muda depois de escrito e o seu created_at é a sua hora de última modificação. sort=updated_at corresponde a esse instante.
Na execução seguinte, passe esse valor guardado como updated_since. Sobreponha a fronteira em um ou dois segundos e elimine duplicados pelo id do registo, para se proteger de desvios de relógio. Guarde a marca de água só depois de ter processado a página de forma durável.
Os instrumentos suportam os mesmos parâmetros updated_since e sort (GET /instruments), filtrando pela hora de última modificação do instrumento. As linhas da lista não incluem um campo de carimbo temporal, por isso, para instrumentos, use como próximo updated_since a hora de relógio que capturou imediatamente antes do pedido. O GET /instruments/{id} de um único instrumento devolve created_at e updated_at, caso precise deles.
# First run: no watermark, oldest-first, page through.
GET /api/public/v1/calibrations?sort=updated_at&limit=100
# Save the created_at of the LAST record you processed, e.g.
# watermark = "2026-07-09T15:30:00Z"
# Next run: only what is new since the watermark.
GET /api/public/v1/calibrations?updated_since=2026-07-09T15:30:00Z&sort=updated_at&limit=100
Filtrar instrumentos
GET /instruments aceita filtros para que possa obter uma fatia precisa em vez de paginar todo o inventário. asset_tag e serial_number correspondem a um valor exato (útil para reconciliar um único instrumento com um registo do ERP). status filtra pelo estado do ciclo de vida, por exemplo active ou retired. site_id restringe a um local.
Dois filtros derivam do estado de calibração. compliance_status filtra pelo token calculado, um de COMPLIANT, WARNING, NON_COMPLIANT ou NOT_CALIBRATED. next_due_before recebe uma data (YYYY-MM-DD) e devolve os instrumentos cuja próxima calibração vence antes dela, que é a consulta por trás de uma lista de trabalho de vencimentos próximos ou em atraso. Os filtros combinam-se, por isso pode pedir instrumentos ativos e não conformes num local numa única chamada.
# Everything overdue or due before a date, oldest instruments first:
GET /api/public/v1/instruments?compliance_status=NON_COMPLIANT&next_due_before=2026-08-01
# Reconcile one instrument by its asset tag:
GET /api/public/v1/instruments?asset_tag=MM-0042
Idempotência
Registar uma calibração é a única escrita que nunca pode ser duplicada: o registo é só de acréscimo, por isso não há forma de anular um envio duplo. Por essa razão, POST /instruments/{id}/calibrations exige um cabeçalho Idempotency-Key (qualquer cadeia única que gere, por exemplo um UUID). É obrigatório, não opcional.
Se um pedido for interrompido e o repetir com a mesma chave, a API devolve o registo que já escreveu em vez de escrever um segundo. Uma chave em falta devolve um 400 com o código IDEMPOTENCY_KEY_REQUIRED. Gere uma chave nova por cada calibração que pretende registar.
Criar um instrumento (POST /instruments) também respeita um Idempotency-Key, mas aqui é opcional. Envie um e uma repetição com a mesma chave devolve o instrumento que a primeira chamada criou em vez de um duplicado, exatamente como no registo de calibração. A única diferença é que a chave não é obrigatória. Se preferir não gerir chaves nas criações, pode em vez disso eliminar duplicados do seu lado usando o asset_tag ou o serial_number do instrumento, que são únicos dentro de um espaço de trabalho, antes de fazer o POST.
Idempotency-Key: 6f9619ff-8b86-d011-b42d-00cf4fc964ff
Certificados
Cada calibração aprovada tem um certificado PDF com a sua marca. Obtenha-o com GET /calibrations/{calibration_id}/certificate. A resposta é o próprio PDF (Content-Type application/pdf) como anexo, byte a byte idêntico ao certificado que a aplicação produz, por isso pode arquivá-lo ou anexá-lo a uma ordem de trabalho.
Um certificado existe apenas para uma calibração aprovada e atual. Se o registo for anulado, substituído por uma entrada posterior ou por outro motivo não certificável, o pedido devolve um 404 com o código CERTIFICATE_UNAVAILABLE. Um id de calibração que não é seu, ou que não existe, devolve um 404 simples que nada revela sobre ele.
curl "https://axiospec.com/api/public/v1/calibrations/CALIBRATION_ID/certificate" \
-H "Authorization: Bearer ctk_your_api_key" \
-o certificate.pdf
Retirar um instrumento de serviço
Quando um instrumento sai de serviço, retire-o com POST /instruments/{id}/retire (uma chamada de âmbito de escrita). É uma desativação suave: o estado do instrumento passa a retired e ele sai da lista ativa por defeito, mas nada é apagado e o seu histórico de calibração no registo fica totalmente intacto para auditoria. Não há eliminação definitiva na API.
A chamada devolve o instrumento atualizado. É idempotente: retirar um instrumento que já está retirado não faz nada e devolve o mesmo registo retirado, por isso repetir é sempre seguro. Retirar exige uma chave de gestor ou administrador. Uma chave só de leitura ou de técnico recebe um 403.
curl -X POST "https://axiospec.com/api/public/v1/instruments/INSTRUMENT_ID/retire" \
-H "Authorization: Bearer ctk_your_api_key"
Paginação
Os endpoints de lista devolvem um envelope consistente. Percorra os resultados com os parâmetros de consulta limit e offset. total é a contagem completa e has_more diz-lhe se existe outra página.
{
"data": [ /* ... */ ],
"pagination": { "limit": 25, "offset": 0, "total": 142, "has_more": true }
}
Carimbos temporais e fusos horários
Todos os carimbos temporais que a API devolve são ISO-8601 em UTC, terminados em Z, por exemplo 2026-07-09T15:30:00Z. Envie os carimbos temporais da mesma forma. Não há respostas com desvio ou hora local para normalizar.
Um campo é uma data simples, não um carimbo temporal: a data de vencimento da calibração de um instrumento. As datas de vencimento são calculadas no fuso horário configurado no seu espaço de trabalho, por isso uma data de vencimento é o dia de calendário em que vence aí, e o filtro next_due_before recebe uma data (YYYY-MM-DD) e não um carimbo temporal. Se os seus sistemas correm noutro fuso, compare pela data e não por um instante de meia-noite UTC.
O envelope de erro
Todos os erros, em todos os endpoints, têm a mesma forma JSON: um code legível por máquina, uma message legível por pessoas e, para alguns erros, um objeto details com os pormenores. Ramifique pelo code, nunca pelo texto da mensagem, que pode ser reescrito. O estado HTTP continua a ter significado (401 contra 403 contra 404), por isso use-o também.
Registar uma calibração também aplica os requisitos de campos das normas que o seu espaço de trabalho selecionou. Se um campo obrigatório estiver em branco, o pedido devolve um 422 com o código FIELD_REQUIREMENTS_UNMET e um array missing_fields, em que cada entrada indica o campo e qual a norma que o exige, para que possa pedir exatamente o que falta.
{
"code": "FIELD_REQUIREMENTS_UNMET",
"message": "This calibration is missing fields your workspace's selected standard(s) require: measurement_uncertainty, decision_rule.",
"details": {
"missing_fields": [
{ "field": "measurement_uncertainty", "required_by": ["ISO/IEC 17025"] },
{ "field": "decision_rule", "required_by": ["ISO/IEC 17025"] }
]
}
}
Webhooks
Em vez de consultar a API periodicamente para descobrir o que mudou, subscreva um endpoint de webhook uma vez e o Axiospec entrega cada evento no seu URL à medida que acontece. Tem menor latência e muito menos tráfego desperdiçado do que reler coleções que já viu, e nunca perde uma alteração entre duas consultas.
Subscreva com POST /webhooks, passando um url e uma lista opcional de tipos de evento a receber. Omita o campo events para receber todos os eventos (o catálogo completo está abaixo). A resposta devolve o segredo de assinatura do endpoint exatamente uma vez e nunca mais, por isso copie-o diretamente para o seu cofre de segredos. Gerir webhooks exige uma chave de âmbito de escrita de administrador ou gestor, porque o endpoint recebe os dados de calibração e de instrumentos do seu espaço de trabalho.
curl -X POST "https://axiospec.com/api/public/v1/webhooks" \
-H "Authorization: Bearer ctk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/axiospec",
"events": ["calibration.approved", "calibration.overdue"],
"description": "Sync approvals into our QMS"
}'
Cada evento é entregue como um HTTP POST cujo corpo JSON é um envelope fixo: { "id", "type", "created_at", "data" }. O id é o id estável do evento, enviado de novo como cabeçalho Axiospec-Event-Id, juntamente com Axiospec-Event-Type, Axiospec-Webhook-Id e Axiospec-Delivery-Attempt. A entrega é pelo menos uma vez, por isso o mesmo evento pode chegar mais do que uma vez (por exemplo após uma repetição). Elimine duplicados pelo id do envelope.
Uma entrega conta como falhada em qualquer resposta que não seja 2xx, e isso inclui um redirecionamento 3xx: um redirecionamento podia apontar para um endereço interno, por isso nunca é seguido. Erros de transporte e tempos de espera esgotados também contam como falhas. As entregas falhadas são repetidas com recuo exponencial ao longo de cerca de três dias, após o que a entrega é marcada como esgotada. Um endpoint cujas entregas recentes se esgotem todas é desativado automaticamente, para que um URL morto ou hostil deixe de consumir capacidade. Os endpoints têm de ser HTTPS, e um URL que resolva para um endereço privado ou interno é rejeitado na subscrição.
Inspecione o que foi enviado com GET /webhooks/{id}/deliveries, que pagina o histórico de entregas de um endpoint e aceita um filtro status (pending, failed, succeeded, exhausted). Para reenviar uma entrega, POST /webhooks/{id}/deliveries/{delivery_id}/retry: repõe essa entrega em pending e com vencimento imediato, para que o próximo despacho a reenvie com um novo horizonte de repetições. Rode o segredo de um endpoint com POST /webhooks/{id}/rotate-secret (o segredo antigo deixa de verificar de imediato) e pare as entregas com DELETE /webhooks/{id}.
Catálogo de eventos de webhook
Estes são os tipos de evento que um webhook pode subscrever. Liste os que quer ao subscrever, ou omita o campo events para receber todos. O mesmo catálogo está disponível em GET /webhooks/events para descoberta programática.
calibration.created
calibration.approved
calibration.rejected
calibration.corrected
calibration.voided
calibration.due_soon
calibration.overdue
instrument.created
instrument.updated
instrument.retired
instrument.status_changed
Verificar assinaturas de webhook
Cada entrega traz um cabeçalho Axiospec-Signature na forma t=<unix-seconds>,v1=<hex>. Verifique-o antes de confiar num payload: uma assinatura válida prova que o pedido veio do Axiospec e que o corpo não foi alterado em trânsito.
Leia o cabeçalho Axiospec-Signature e divida-o na vírgula na sua parte t= (um carimbo temporal Unix em segundos) e na sua parte v1= (um HMAC hexadecimal em minúsculas). Recalcule o HMAC-SHA256, com o segredo de assinatura do seu endpoint como chave, sobre a cadeia formada pelo carimbo temporal, um ponto literal e o corpo bruto exato do pedido, isto é, f"{t}.{raw_body}". Compare o seu resumo hexadecimal com o valor v1 usando uma comparação em tempo constante, nunca uma verificação de igualdade comum.
Assine os bytes brutos exatamente como recebidos, antes de qualquer análise ou reserialização JSON, para que a sua entrada corresponda ao que foi assinado. Rejeite a entrega se os resumos não coincidirem, ou se t tiver mais de cerca de cinco minutos, o que limita durante quanto tempo um pedido capturado poderia ser reproduzido contra si.
# Axiospec-Signature: t=1720625400,v1=3f6a9c...e1
t, v1 = split the header on "," then read the "t=" and "v1=" values
signed = t + "." + raw_request_body # the exact bytes received
expected = hex(hmac_sha256(secret, signed)) # lowercase hex digest
if not constant_time_equals(expected, v1):
reject # signature mismatch, do not trust the payload
if now_unix_seconds() - int(t) > 300:
reject # older than ~5 minutes, treat as a possible replay
accept # then dedupe on the envelope id (Axiospec-Event-Id)
Experimente: dois exemplos
Substitua ctk_your_api_key pela sua chave e INSTRUMENT_ID por um id de instrumento da chamada de listagem.
1. Listar instrumentos
curl "https://axiospec.com/api/public/v1/instruments?status=active&limit=25" \
-H "Authorization: Bearer ctk_your_api_key"
2. Registar uma calibração
Note o cabeçalho obrigatório Idempotency-Key. Repetir com a mesma chave devolve o registo que já foi escrito em vez de registar um duplicado.
curl -X POST "https://axiospec.com/api/public/v1/instruments/INSTRUMENT_ID/calibrations" \
-H "Authorization: Bearer ctk_your_api_key" \
-H "Idempotency-Key: 6f9619ff-8b86-d011-b42d-00cf4fc964ff" \
-H "Content-Type: application/json" \
-d '{
"result": "PASS",
"performed_at": "2026-07-09T15:30:00Z",
"nominal_value": "10.00 V",
"tolerance": "±0.1%",
"as_found_reading": "10.01 V",
"as_left_reading": "10.00 V",
"certificate_number": "CERT-2026-0142"
}'
Códigos de erro
Todos os códigos que a API devolve, o seu estado HTTP e o que significam. Ramifique pelo código.
| Código | HTTP | Significado |
|---|---|---|
| UNAUTHORIZED | 401 | Sem chave de API, ou a chave é inválida, foi revogada ou expirou. |
| API_ACCESS_TIER_REQUIRED | 403 | O espaço de trabalho está no plano Free ou Starter. A API exige Professional ou superior. |
| INSUFFICIENT_SCOPE | 403 | Uma chave só de leitura tentou uma escrita. Emita uma chave de âmbito de escrita. |
| ACCESS_ENDED | 403 | A chave pertence a um auditor cuja data de fim do acesso já passou. Um administrador do espaço de trabalho pode alterar ou remover a data de fim. |
| FORBIDDEN | 403 | A chave é válida, mas a ação não é permitida para a sua função, por exemplo uma chave que não é de gestor a retirar um instrumento. |
| INSUFFICIENT_ROLE | 403 | A ação exige uma função de administrador ou gestor e a função da chave é inferior, por exemplo uma chave de técnico a gerir um webhook. |
| NOT_FOUND | 404 | O recurso não existe, ou está fora do âmbito de tenant ou de local desta chave. Devolvido de forma idêntica nos dois casos, para que nada seja revelado. |
| CERTIFICATE_UNAVAILABLE | 404 | A calibração existe, mas não é certificável (não aprovada, anulada ou substituída). |
| IDEMPOTENCY_KEY_REQUIRED | 400 | Um registo de calibração foi enviado sem o cabeçalho obrigatório Idempotency-Key. |
| INVALID_REQUEST | 400 ou 422 | Um pedido mal formado ou que falhou uma validação com código, por exemplo um token de consulta inválido, uma chave de documento inutilizável ou um campo de webhook inválido. A validação de documentos e webhooks devolve 422. Um pedido inválido genérico devolve 400. Ramifique pelo código, o estado é secundário. |
| VALIDATION_ERROR | 422 | Um ou mais campos falharam a validação. details.errors lista cada campo e o motivo. |
| FIELD_REQUIREMENTS_UNMET | 422 | Faltava a uma calibração um campo exigido pela norma ou normas que selecionou. details.missing_fields lista-os. |
| INVALID_WEBHOOK_URL | 422 | O url do webhook não é utilizável: tem de ser HTTPS, e um URL que resolva para um endereço privado ou interno é rejeitado. |
| CONFLICT | 409 | O pedido entra em conflito com o estado atual do recurso. |
| WEBHOOK_LIMIT_REACHED | 409 | O espaço de trabalho já tem o número máximo de endpoints de webhook. Elimine um antes de adicionar outro. |
| DELIVERY_CONFLICT | 409 | Uma entrega de webhook não pode ser repetida no seu estado atual, por exemplo reenviar uma entrega que ainda não está resolvida. |
| OBJECT_NOT_UPLOADED | 409 | Um documento foi registado para uma chave cujo ficheiro nunca foi carregado. Carregue primeiro o ficheiro para o URL pré-assinado e depois registe-o. |
| METHOD_NOT_ALLOWED | 405 | Esse método HTTP não é suportado neste caminho. |
| RATE_LIMITED | 429 | O limite de 120 por minuto foi excedido. Espere os segundos indicados em Retry-After e depois repita. |
| INTERNAL_ERROR | 500 | Um erro inesperado do servidor. É seguro repetir uma leitura. Repita um registo de calibração com o mesmo Idempotency-Key. |
Versões e estabilidade
Esta é a v1, refletida no caminho base /api/public/v1. É um contrato estável e selecionado, mantido deliberadamente separado dos endpoints internos que as aplicações usam.
Alterações aditivas não são disruptivas e fazemo-las sem mudar a versão: novos endpoints, novos campos opcionais no pedido, novos campos numa resposta e novos valores num campo enumerado (por exemplo um novo token de compliance_status). Escreva o seu cliente para as tolerar. Ignore campos de resposta que não reconheça em vez de falhar, e trate um valor de enumeração desconhecido como uma cadeia de passagem em vez de um erro fatal.
Alterações disruptivas, que evitamos, incluiriam remover ou renomear um campo, mudar o tipo de um campo ou mudar o significado de um endpoint. Se alguma vez tivéssemos de fazer uma, sairia sob um novo caminho de versão (/api/public/v2), a versão antiga continuaria a funcionar durante um período de descontinuação claramente comunicado, e anunciaríamos a alteração no changelog abaixo antes de remover o que fosse.
Rotação e guarda de chaves
Uma chave é mostrada por inteiro exatamente uma vez, no momento em que a cria. Guardamos apenas um hash com sal (SHA-256), nunca a chave em si, por isso não pode ser recuperada nem enviada por e-mail mais tarde. Copie-a para o seu cofre de segredos nesse momento. A aplicação pode mostrar-lhe depois um prefixo não secreto (ctk_AbC1…) para o ajudar a distinguir as chaves, mas nunca mais a chave inteira.
Para rodar uma chave, crie uma nova, implemente-a e depois revogue a antiga. A revogação é imediata e permanente. A chave é desativada (nunca eliminada de forma definitiva, para que o seu histórico de auditoria fique intacto) e cada pedido posterior com ela devolve 401 UNAUTHORIZED. Emita chaves separadas por integração e chaves só de leitura para tudo o que apenas gera relatórios, para poder rodar ou revogar uma sem perturbar as outras.
Registo de alterações
v1.1 2026-07-10
- Webhooks: subscreva eventos (calibração registada/aprovada, instrumento perto do vencimento/em atraso e mais) com entrega assinada por HMAC e com repetições.
- Requisitos de campos: GET /standards/field-requirements publica os campos de calibração que as normas que selecionou exigem, para que possa construir um payload de calibração válido antes de fazer o POST.
- Lista de trabalho de vencimentos: GET /due devolve os instrumentos a vencer ou em atraso dentro de um horizonte, cada um com o seu estado de conformidade autoritativo, para agendamento e painéis.
- Marcadores de eliminação: passe include=retired (instrumentos) ou include=voided (calibrações) nos feeds incrementais para que um registo retirado ou anulado apareça no delta em vez de desaparecer em silêncio. Desligado por defeito. As sincronizações existentes não mudam.
- Anexos: peça um URL de carregamento pré-assinado, anexe um documento a um instrumento (opcionalmente a uma calibração específica), liste os documentos de um registo e obtenha um URL de transferência de curta duração.
v1 2026-07-09
- Sincronização incremental: updated_since e sort em instrumentos e calibrações, mais um feed GET /calibrations de todo o tenant.
- Filtragem de instrumentos: asset_tag, serial_number, compliance_status e next_due_before.
- Obtenção de certificados: GET /calibrations/{id}/certificate devolve o PDF da calibração.
- Retirada de instrumentos: POST /instruments/{id}/retire desativa um instrumento de forma suave, deixando o registo intacto.
- Cabeçalhos de limite de pedidos (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset e Retry-After num 429) em todas as respostas.
- Um envelope de erro uniforme ({ code, message, details? }) em todos os endpoints.
v1 Versão inicial
- Leia e crie instrumentos, registe calibrações no registo com deteção de adulteração e leia locais e normas selecionadas.
- Autenticação Bearer ou X-API-Key, âmbitos de leitura e escrita, acesso a partir do Professional, limite de 120 pedidos por minuto e o envelope de lista paginada.
Referência
A referência REST completa
Todos os endpoints, parâmetros, corpos de pedido e respostas, gerados a partir da especificação OpenAPI da API e apresentados como uma referência pesquisável em ecrã inteiro.
A referência abre num novo separador com um navegador pesquisável, esquemas de pedido e resposta e exemplos para copiar e colar de cada operação. Prefere gerar um cliente? A especificação OpenAPI acima alimenta geradores de código em todas as linguagens principais.