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/eventsChamando em zig.tickets você recebe o catálogo de Zig. Cada marca serve a própria cópia destes documentos.
Endpoints de leitura
| Objetivo | Chamada |
|---|---|
| Listar eventos à venda | GET /events |
| Buscar por termo | GET /events?q=<termo> |
| Filtrar por cidade | GET /events?city=<cidade> |
| Filtrar por estado | GET /events?state=<UF> |
| Filtrar por organizador | GET /events?organization=<slug> |
| Detalhe do evento | GET /events/<slug> |
| Health check | GET /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.