# Quaerion Public Information API

API pública de leitura para consultar serviços, jornadas do cliente, preços de referência, condições comerciais e aplicações por segmento. Usa HTTPS e JSON UTF-8, sem chave, cookie ou cadastro. As respostas são derivadas do conteúdo publicado no site.

## Endpoints

| Método | URL | Resposta |
| --- | --- | --- |
| GET / HEAD | https://quaerion.com.br/api/public/catalog.json | Índice com `operations`, documentação e limites de uso. |
| GET / HEAD | https://quaerion.com.br/api/public/prices.json | Objeto com `services`: serviços, unidade, preço e condições. |
| GET / HEAD | https://quaerion.com.br/api/public/solutions.json | Objeto com `solutions`: aplicações por segmento, públicos, FAQs e URLs. |
| GET / HEAD | https://quaerion.com.br/api/public/services | Busca paginada de resumos, objetivos, destaques de entrega e preços. |
| GET / HEAD | https://quaerion.com.br/api/public/services/{sku} | Guia completo, preço, encontros e FAQs do serviço identificado. |
| GET / HEAD | https://quaerion.com.br/api/public/service-briefs/{sku} | Modelo de solicitação para avaliação humana, sem envio pela API. |

Substitua `{sku}` pelo identificador publicado, por exemplo `AUT-01`. `HEAD` retorna o mesmo status e cabeçalhos de `GET`, sem corpo. Métodos de escrita são recusados com HTTP 405. A leitura aceita CORS público (`Access-Control-Allow-Origin: *`), sem credenciais.

## Buscar serviços

`GET /api/public/services` aceita apenas os parâmetros abaixo, sem repetições:

| Parâmetro | Regra |
| --- | --- |
| `query` | Até 120 caracteres, sem caracteres de controle. Busca todos os termos em SKU, nome, categoria, descrição, público e objetivo. Ignora acentos e caixa. |
| `category` | Código de três letras da família, sem diferenciar caixa: PAC, AUD, ANS, RAD, LOC, WEB, CNT, TEC, CRM, AUT, SYS, DAT, ADS, CON, DES ou SUP. |
| `limit` | Inteiro de 1 a 50. Padrão: 20. |
| `cursor` | Deslocamento decimal retornado em `nextCursor`, limitado a 1000. Omita na primeira consulta e mantenha os mesmos filtros nas páginas seguintes. |

A resposta contém `services`, `total`, `nextCursor`, `query`, `category`, `limit`, `cursor`, `currency`, `source`, `conditions`, `referenceOnly: true`, `contractual: false`, `publishedAt` e `updatedAt`. `total` considera os filtros; `nextCursor: null` indica o fim. Confira `updatedAt` se continuar uma leitura após atualização do catálogo. Sem correspondência, a resposta é HTTP 200 com `services: []`.

Cada resumo mantém os campos comerciais, `purpose`, até três `deliveryHighlights` e os URLs `guideUrl`, `requestUrl`, `apiUrl` e `briefUrl`. A lista não carrega o guia completo de cada item. Os documentos `prices.json` e `solutions.json` continuam disponíveis para leitura integral e filtros locais.

## Jornada e escopo por serviço

`GET /api/public/services/AUT-01` retorna `service` com os campos comerciais, `guide`, `meetings` e `faqs`, além da fonte, condições e método público. O guia preserva `clientInputs`, `deliverables`, `stages`, `acceptanceCriteria`, `scopeBoundaries`, `metrics` e `comparison`. `method` apresenta o AI Referral Engine™; `journey` situa a conversa inicial, proposta, preparação, etapas, aceite e continuidade.

As datas de publicação e revisão de cada serviço aparecem em `service` e `service.guide`. Elas acompanham alterações materiais do conteúdo. As quatro fases — Diagnóstico, Estratégia, Execução e Monitoramento — se adaptam à modalidade contratada; não criam reuniões ou obrigações adicionais por conta própria. Quantidades, revisões, responsabilidades, investimento e agenda dependem da proposta e da confirmação da equipe. O documento público explica a experiência do cliente, sem incluir prompts, fórmulas ou procedimentos proprietários.

## Modelo de solicitação humana

`GET /api/public/service-briefs/AUT-01` retorna o resumo do serviço e `brief`, com campos de contexto, objetivo, escopo e condições para discutir com a equipe. `preparation` apresenta os insumos de referência; `questionsForTeam` orienta dúvidas sobre proposta, custos e início.

`brief.submission.url` aponta ao contato humano. `acceptedViaThisApi`, `createsContract`, `createsPayment` e `reservesTime` são sempre `false`. A API entrega um modelo vazio: não recebe o briefing, envia mensagens, confirma reunião, aceita contrato ou cobra valores. Não envie corpo de requisição, senhas ou dados sensíveis. As informações devem ser compartilhadas no canal e no momento adequados ao atendimento.

## Preços

O documento usa `currency: "BRL"`, `referenceOnly: true`, `source`, `conditions`, `families` e `services`. Cada serviço informa `sku`, `name`, `category`, `categoryCode`, `type`, `description`, `idealFor`, `billingModel`, `setup`, `recurrence`, `timeframe`, `contract` e a URL pública para consulta.

`setup` e `recurrence` preservam as bases de cobrança separadas, com `label`, `min`, `max`, `openEnded`, `unit` e `kind`. Use o texto de `label` ao apresentar a referência. `min` e `max`, quando definidos, representam reais brasileiros; não substitua campos ausentes por zero. `openEnded` indica se a faixa não possui teto publicado. Consulte `billingModel`, `unit`, `timeframe`, `contract`, `conditions` e a data em `source` para entender valores mensais, por projeto, hora ou outras bases.

Preços de referência não constituem contratação automática. Leia condições e data da fonte. Não some unidades diferentes ou assuma que mídia, ferramentas, impostos, produção e integrações estão incluídos sem indicação explícita. A página para consulta humana é https://quaerion.com.br/precos.

## Soluções por segmento

Cada solução contém `slug`, `title`, `sector`, `publishedAt`, `updatedAt`, `url`, `summary`, `audience` e `faqs`. As datas indicam a publicação original e a revisão material de cada página, sem atualizar todo o acervo a cada build. As aplicações são possibilidades de trabalho; não são depoimentos, estudos de caso ou garantias de resultado. As URLs apontam para as páginas canônicas correspondentes.

## Exemplo

```javascript
const response = await fetch(
  'https://quaerion.com.br/api/public/services?query=automacao&category=AUT&limit=10',
  { credentials: 'omit' }
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const { services, nextCursor, conditions, source } = await response.json();
// Use setup.label e recurrence.label separadamente, junto às condições.
// Consulte apiUrl para obter o guia completo do serviço escolhido.
```

Use os cabeçalhos `Cache-Control` para reutilizar respostas. Confira novamente preços e condições antes de preparar uma proposta. Estas consultas não precisam de corpo, formulário ou credenciais. Os guias não aceitam parâmetros de busca; os filtros pertencem somente a `/services`.

Nas novas rotas, erros usam JSON `{ "error": { "code": "...", "message": "..." } }`: HTTP 400 para consulta inválida, HTTP 404 para serviço ou endpoint não encontrado, HTTP 405 para método recusado e HTTP 503 quando os dados públicos estão indisponíveis. Respostas de erro usam `Cache-Control: no-store`. Informe a falha em vez de inventar valores ou condições.

## Descoberta automatizada

- Catálogo RFC 9727: https://quaerion.com.br/.well-known/api-catalog
- OpenAPI 3.1: https://quaerion.com.br/openapi.json
- Agent Skills Discovery v0.2: https://quaerion.com.br/.well-known/agent-skills/index.json
- Política de autenticação: https://quaerion.com.br/auth.md
- Conteúdo em Markdown: https://quaerion.com.br/llms.txt

Em navegadores compatíveis, o site registra ferramentas WebMCP somente de leitura para procurar serviços e soluções. A disponibilidade depende da implementação do navegador. Sem WebMCP, os mesmos dados continuam acessíveis pelos endpoints HTTPS acima.

## Escopo

Esta API não cria contas ou propostas, não envia mensagens e não recebe pagamentos. OAuth, A2A, MCP remoto e protocolos de pagamento não são anunciados por este serviço. Uma integração futura só deve publicar esses metadados depois que os respectivos serviços existirem e forem validados.
