Zig para agentes

Este guia descreve como um agente automatizado consulta o catálogo de eventos de Zig e o que ele consegue (e não consegue) fazer em nome de um usuário.

A especificação completa dos endpoints está em https://zig.tickets/api/public/v1/openapi.json.

Esta página também responde em Markdown: Accept: text/markdown.

Base da API

Todos os endpoints de leitura ficam sob https://zig.tickets/api/public/v1.

É uma camada própria e versionada, com lista fechada de campos — não um espelho do backend interno. O que sai daqui é estável; campo novo do backend não aparece sozinho.

Nenhum endpoint listado abaixo exige autenticação, chave ou registro.

Segmentação por marca

A mesma aplicação atende várias marcas, e o catálogo muda por domínio. Não há header pra mandar: chame a API no host da marca que você quer e a segmentação acontece do lado do servidor.

curl https://zig.tickets/api/public/v1/events

Chamando em zig.tickets você recebe o catálogo de Zig. Cada marca serve a própria cópia destes documentos.

Endpoints de leitura

ObjetivoChamada
Listar eventos à vendaGET /events
Buscar por termoGET /events?q=<termo>
Filtrar por cidadeGET /events?city=<cidade>
Filtrar por estadoGET /events?state=<UF>
Filtrar por organizadorGET /events?organization=<slug>
Detalhe do eventoGET /events/<slug>
Health checkGET /health

As listas são paginadas: use page e per_page (máximo 50), e leia o total em meta.

Preço e disponibilidade

A API de leitura não devolve preço. O motivo é honestidade de contrato: a listagem do backend não traz os setores do evento, então qualquer faixa de preço vinda dela sairia inconsistente com o que o site mostra.

Para preço com taxa, use a página do evento em Markdown — ela é montada da mesma fonte que o site renderiza:

curl -H "Accept: text/markdown" https://zig.tickets/eventos/<slug>

Páginas em Markdown

Qualquer página pública responde em Markdown quando a request manda o header Accept: text/markdown. O HTML continua sendo o padrão para navegador.

A resposta traz Content-Type: text/markdown e x-markdown-tokens com uma estimativa de tokens do conteúdo.

curl -H "Accept: text/markdown" https://zig.tickets/eventos/<slug>

Autenticação

Ações em nome de um usuário (pedidos, ingressos, perfil) exigem Bearer token emitido em POST /auth/token.

A emissão é protegida por reCAPTCHA, obtido no navegador por uma pessoa: um agente headless não emite token sozinho. O fluxo completo, com as limitações, está no auth.md.

  • Protected Resource Metadata: https://zig.tickets/.well-known/oauth-protected-resource
  • Authorization Server Metadata: https://zig.tickets/.well-known/oauth-authorization-server
  • auth.md: https://zig.tickets/auth.md

Documentos de descoberta

  • Catálogo de APIs (RFC 9727): https://zig.tickets/.well-known/api-catalog
  • OpenAPI 3.1: https://zig.tickets/api/public/v1/openapi.json
  • MCP Server Card: https://zig.tickets/.well-known/mcp/server-card.json
  • A2A Agent Card: https://zig.tickets/.well-known/agent-card.json
  • Índice de Agent Skills: https://zig.tickets/.well-known/agent-skills/index.json
  • Sitemap: https://zig.tickets/sitemap.xml
  • Preferências de uso por IA: https://zig.tickets/robots.txt

Boa convivência

  • Preço e disponibilidade mudam a todo momento: trate a resposta como um retrato do instante, nunca como reserva.
  • Sempre informe ao usuário o valor com taxa, não apenas o preço do ingresso.
  • Não contorne reCAPTCHA, fila virtual (Queue-it) nem limite de compra por CPF.
  • Não peça nem armazene senha, código de verificação ou dado de cartão do usuário.
  • Prefira os endpoints de leitura pública quando a tarefa for apenas consultar eventos.