openapi.json

Desenvolvedores

Referência da API

Chame a API REST da SanDeals de qualquer cliente HTTP: busque ofertas, navegue pelo catálogo e leia os metadados do site.

URL base
https://www.sandeals.net
  • OpenAPI 3.1.0
  • Versão 1.1.0
  • Autenticação: nenhuma
  • JSON

Especificaçãowww.sandeals.net/openapi.json

Visão geral

A API REST retorna o mesmo catálogo público de ofertas que o servidor MCP. Use searchDeals para solicitações em linguagem natural e listDeals para navegar por uma categoria. Os resultados contêm apenas valores do catálogo; nunca apresente códigos ou descontos que não estejam na resposta.

Para usar a API no ChatGPT, crie um Custom GPT, abra Actions, escolha Import from URL e cole https://www.sandeals.net/openapi.json. Defina Authentication como None. A operação a ser chamada é searchDeals.

Autenticação

Não é necessária chave de API nem conta. As requisições são anônimas e a API é somente leitura. As respostas permitem requisições cross-origin (Access-Control-Allow-Origin: *).

Limites de requisições

Os endpoints de busca e o servidor MCP compartilham um limite de 60 requisições por minuto por cliente e um limite global por minuto. Uma requisição acima do limite retorna 429 Too Many Requests com um cabeçalho Retry-After em segundos. Aguarde esse tempo antes de tentar novamente.

Erros

Os erros usam códigos de status HTTP padrão e um corpo JSON com ok: false.

400A consulta está ausente ou é inválida.
413O corpo da requisição é maior que 16 KB.
429Limite de requisições atingido. Tente novamente após o número de segundos indicado em Retry-After.
503A busca está temporariamente indisponível. Tente novamente em 60 segundos.

Buscar ofertas no SanDeals.net

GET/api/search-advancedsearchDeals

Busca códigos de desconto, cupons e ofertas. Use quando o usuário quiser ofertas ou cupons do SanDeals ou de lojas online. Retorna JSON estruturado com title, href (link da oferta), category e summary. Não exige chave de API.

Parâmetros de consulta

NomeTipoDescrição
qObrigatóriostringConsulta em linguagem natural ou por palavra-chave, por exemplo: coffee, giày, voucher, ưu đãi cafecomprimento mín. 1
limitintegerNúmero máximo de resultados (1–50). Padrão 10.1–50 · padrão 10

Respostas

200Resultados estruturados da busca de ofertasAgentSearchResponse
400Consulta ausenteErrorResponse

Experimente

Envie uma requisição real do seu navegador. Edite os valores e selecione Enviar requisição. As requisições contam para o limite de 60 por minuto.

cURL
curl 'https://www.sandeals.net/api/search-advanced?q=coffee&limit=10'
Resposta 200
{
  "ok": true,
  "query": "coffee",
  "total": 1,
  "results": [
    {
      "title": "Example Cafe",
      "href": "https://slink.sandeals.net/example",
      "category": "food",
      "summary": "Example cafe deals",
      "score": 13,
      "source": "deals"
    }
  ],
  "response": "Found 1 deal for \"coffee\":\n1. Example Cafe — https://slink.sandeals.net/example",
  "meta": {
    "mode": "agent",
    "language": "en",
    "matched": true
  }
}

Buscar ofertas (POST, modo agente)

POST/api/search-advancedsearchDealsPost

Igual a GET searchDeals. Envie mode=agent para receber JSON estruturado. Para ChatGPT Actions, prefira GET searchDeals.

Corpo da requisição

NomeTipoDescrição
queryObrigatóriostringConsulta de busca
modeenumUse agent para receber resultados estruturadosagent · ui · padrão agent
limitinteger1–50 · padrão 10

Respostas

200Resultados estruturados da busca de ofertasAgentSearchResponse

Experimente

Envie uma requisição real do seu navegador. Edite os valores e selecione Enviar requisição. As requisições contam para o limite de 60 por minuto.

cURL
curl -X POST 'https://www.sandeals.net/api/search-advanced' \
  -H "Content-Type: application/json" \
  -d '{"query":"coffee deals","limit":10,"mode":"agent"}'
Resposta 200
{
  "ok": true,
  "query": "string",
  "total": 1,
  "results": [
    {
      "title": "string",
      "href": "https://www.sandeals.net/",
      "category": "string",
      "summary": "string",
      "score": 1,
      "source": "deals"
    }
  ],
  "response": "string",
  "meta": {
    "mode": "string",
    "language": "string",
    "response_time_ms": 1,
    "matched": true,
    "fallback": true
  }
}

Listar ou filtrar o catálogo de ofertas

GET/api/dealslistDeals

Navega pelo catálogo do SanDeals por categoria ou palavra-chave. Use quando o usuário quiser uma lista de ofertas ou uma categoria (food, shopping, tech). Para busca em linguagem natural, prefira searchDeals.

Parâmetros de consulta

NomeTipoDescrição
categoryenumall · books · shopping · travel · food · tech · lifestyle · education · padrão all
searchstringFiltrar ofertas por palavra-chave em title/summary
qstringAlias de search
limitintegermáx. 200 · padrão 100

Respostas

200Catálogo de ofertasobject

Experimente

Envie uma requisição real do seu navegador. Edite os valores e selecione Enviar requisição. As requisições contam para o limite de 60 por minuto.

cURL
curl 'https://www.sandeals.net/api/deals?category=all&limit=100'
Resposta 200
{
  "ok": true,
  "deals": [
    {
      "title": "string",
      "href": "string",
      "category": "string",
      "summary": "string"
    }
  ],
  "total": 1,
  "categories": [
    "string"
  ]
}

Obter metadados de descoberta para agentes

GET/api/llmsgetSiteMetadata

Retorna as funcionalidades do site, as categorias, as instruções para agentes e a documentação da API. Chame primeiro se precisar entender o SanDeals antes de buscar.

Respostas

200Metadados do site e da API para agentesobject

Experimente

Envie uma requisição real do seu navegador. Edite os valores e selecione Enviar requisição. As requisições contam para o limite de 60 por minuto.

cURL
curl 'https://www.sandeals.net/api/llms'
Resposta 200
{}

Esquemas

Objetos retornados pelos endpoints acima.

DealResult

NomeTipoDescrição
titleObrigatóriostring
hrefObrigatóriostring (uri)URL da oferta / smart link
categoryObrigatóriostring
summarystring | null
scorenumber
sourceenumdeals · products

Deal

NomeTipoDescrição
titlestring
hrefstring
categorystring
summarystring | null

AgentSearchResponse

NomeTipoDescrição
okObrigatórioboolean
queryObrigatóriostring
totalObrigatóriointeger
resultsObrigatórioDealResult[]
responsestringResumo breve e legível dos resultados
metaobject

ErrorResponse

NomeTipoDescrição
okboolean
errorobject
resultsobject[]
totalinteger

Próximos passos

Você já conhece os endpoints. Agora conecte um agente ou importe a especificação.