Pular para o conteúdo principal
POST
Pesquisa na web
Cada ação retorna output normalizado; verifique result_status para a entrega. Notícias, lugares, scholar, compras, imagens, vídeos e similares expõem output.items[] com campos fixos por linha; answer expõe output.answer e citations[]. Scrape expõe text, markdown, html e raw_html; formatos ausentes são null. A saída nativa do Provider não é repetida em output; ela permanece no Run e pode ser lida com Get Run. O Glasser não converte HTML em texto nem avalia a qualidade semântica com base na redação ou no tamanho. Search retorna output.results[] e é compatível com time_range: day | week | month | year. Uma resposta vazia, mas válida, é no_result e mantém o formato da ação: results ou items é [], e uma resposta vazia é answer: null com citations: []. Scrape não tem resposta vazia: uma página que não pode ser entregue é error, com output: null e o motivo em error.code. Fetch (scrape) usa Serper e depois Firecrawl dentro de um orçamento padrão de 30 segundos por solicitação. HTML ou solicitações explícitas de idade do cache vão diretamente para o Firecrawl. O enriquecimento de X/Twitter e LinkedIn exclui o Firecrawl. Um Provider nomeado nunca usa fallback. Saída vazia ou inválida, erros do Provider, timeout ou formatos compatíveis ausentes podem acionar o fallback. O conteúdo entregue vem do Run final; conteúdo de capturas diferentes não é mesclado. charge_usd totaliza runs desta resposta, incluindo falhas cobradas e resultados vazios, e é null até que todos os Runs sejam concluídos. O ciclo de vida do Run final permanece em status; somente COMPLETED não comprova a entrega de conteúdo. Para trabalhos pendentes, siga o result_url autenticado para manter a saída normalizada e o total de cobranças. Get Run continua nativo e informa uma cobrança individual. O polling não cria Runs e não retoma o fallback. Uma nova tentativa intencional de POST usa a mesma Idempotency-Key e os mesmos parâmetros de execução, reutiliza Runs existentes e inicia uma nova janela de solicitação. Consulte Provider selection and charges.

Saída por ação

Cada campo está presente em todas as linhas; um valor que o Provider não informa é null. Os campos seguem as convenções de campos.
  • published_at é um timestamp UTC ISO 8601, preenchido somente quando o Provider informa um timestamp de máquina (Exa publishedDate, notícias do SerpApi iso_date). fetched_at tem o mesmo formato.
  • date_text é o texto de exibição do Google exatamente como retornado. Ele pode ser relativo ao completed_at do Run (“3 horas atrás”) e nunca é analisado.
  • search date está obsoleto: contém o texto de exibição do Google para Serper e SerpApi e o publishedDate bruto do Exa para Exa. Use published_at ou date_text.
  • snippet é o trecho curto do Google ou o destaque extraído do Exa para Exa; nunca é o texto completo da página.
  • price_text e duration_text são strings de exibição, não analisadas; a moeda do preço segue country.
  • rating é a média de estrelas de 1 a 5 do Google e reviews é uma contagem. source é o nome do publisher ou do site.
  • address é o texto do próprio Provider; o Serper pode retornar somente a linha do endereço.
  • exa_similarity_score é a pontuação própria do Exa, comparável somente dentro de uma única resposta. Similar exclui páginas do host da URL solicitada.
  • text_character_limit é o limite de caracteres que o Glasser pediu ao Provider para aplicar (10000 para Exa); textos exatamente desse tamanho podem ser truncados. cached informa se o Provider forneceu a página a partir do cache.
  • quality é sempre unverified e será removido na próxima revisão com breaking change.

Cabeçalhos

idempotency-key
string
obrigatório

Gere um valor exclusivo para cada execução pretendida (recomenda-se um UUID). Tente novamente com a mesma chave e os mesmos parâmetros de execução para recuperar o Run original sem uma segunda cobrança. Alterar os parâmetros de execução com a mesma chave retorna 409; alterar task_id ou metadata não atualiza o Run original.

Minimum string length: 1

Corpo

application/json
action
enum<string> | null

Padrão: search.

  • Forneça query para search, news, places, scholar, shopping, images, videos ou answer.
  • Forneça url para scrape ou similar.
Opções disponíveis:
search,
news,
places,
scholar,
shopping,
images,
videos,
answer,
scrape,
similar
provider
enum<string> | null

Padrão auto: seleciona o primeiro provedor de dados elegível na ordem de preferência da Glasser. Um provedor de dados nomeado deve ser compatível com a solicitação e permitido pela sua Key; ele não usa fallback para outro provedor de dados. Os valores disponíveis estão listados abaixo.

Opções disponíveis:
auto,
serper,
serpapi,
exa,
dataforseo,
firecrawl
query
string | null
Required string length: 1 - 500
url
string | null
Required string length: 1 - 2048
formats
enum<string>[]

Somente para scrape. Quando omitido, usa o padrão nativo do provedor de dados selecionado: text para Serper/Exa, markdown para Firecrawl/DataForSEO. Os formatos solicitados orientam o roteamento e o fallback; output expõe os campos fixos text/markdown/html/raw_html. html significa HTML limpo; raw_html significa HTML original. Auto usa Serper e depois Firecrawl. Solicitações de HTML vão diretamente para Firecrawl. Leia result_status e missing_formats para verificar a entrega; um campo null não solicitado não é um resultado parcial. Firecrawl não fornece text; a Glasser não converte HTML em texto. X/Twitter e as rotas de enriquecimento são excluídos do Firecrawl.

Required array length: 1 - 4 elements
Opções disponíveis:
text,
markdown,
html,
raw_html
timeout_ms
integer

Somente para scrape. Padrão 90000. Orçamento de execução para esta solicitação da API, incluindo o fallback sequencial. Cada chamada ao provedor de dados começa com a janela de seu Endpoint, em vez de uma parte do tempo restante; a chamada mantém a janela completa quando ela, junto com o tempo de liquidação, cabe no orçamento restante. Quando a janela completa excederia o orçamento da solicitação, Serper, Firecrawl e Exa usam o tempo restante real até o limite da janela de seu Endpoint, reservando tempo para liquidação e resposta; uma etapa só é ignorada quando resta menos de 1 segundo de tempo de chamada. Uma nova tentativa inicia uma nova janela de solicitação e reutiliza Runs existentes por meio da idempotência do Run.

Intervalo obrigatório: 1000 <= x <= 120000
max_charge_usd
string

String decimal exata em USD (mínimo de 2, máximo de 6 casas decimais, uma única grafia canônica). Faça a soma com aritmética decimal ou multiplique por 10^6 — nunca use números de ponto flutuante.

Pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
cache_max_age_seconds
integer

Somente para scrape. Idade máxima do cache do provedor de dados; 0 exige uma busca ao vivo. Rotas sem esse controle são excluídas. Auto seleciona Firecrawl (milissegundos); Exa explícito recebe horas inteiras arredondadas para baixo. Metadados desconhecidos de cache/busca permanecem null.

Intervalo obrigatório: 0 <= x <= 2592000
time_range
enum<string>

Somente para search: restrinja os resultados ao último dia, semana, mês ou ano usando o filtro de tempo do Google. Omita para qualquer período. Auto usa apenas provedores de dados compatíveis com esse filtro (Serper e SerpApi). Exa é recusado quando este campo é fornecido. Este é um filtro do mecanismo de busca, não uma data de publicação verificada.

Opções disponíveis:
day,
week,
month,
year
country
string | null

País para ações do tipo search, como código ISO de duas letras ou nome do país. Padrão us. Não se aplica a scrape ou similar. É recusado com 400 quando o provedor nomeado não pode aplicá-lo.

Required string length: 2 - 60
language
string | null

Idioma para ações do tipo search, com duas letras, como en, de. Não se aplica a scrape ou similar.

Pattern: ^[A-Za-z]{2}$
limit
integer | null

Linhas a retornar. Mantenha o número pequeno: a regra de cobrança do endpoint roteado pode considerá-lo. Cada capacidade impõe um limite adicional.

Intervalo obrigatório: 1 <= x <= 100
task_id
string | null

Agrupe Runs relacionados, incluindo o fallback automático, sob uma única Task. Reutilize uma string estável e filtre a lista de Runs por task para recuperá-los.

metadata

Campos opcionais de acompanhamento, retornados no Run e disponíveis como filtros. Eles nunca são enviados ao provedor de dados nem afetam o roteamento, o preço ou a idempotência.

  • Até 20 chaves: letras minúsculas, dígitos e sublinhados; comece com uma letra; no máximo 40 caracteres.
  • Valores: strings de 1–500 caracteres.
  • user_id: o ID opaco do seu usuário final, nunca o endereço de e-mail ou o nome dele.

Entradas inválidas são descartadas por inteiro, sem truncamento. A solicitação continua, e o Run retorna os campos armazenados.

Resposta

Sucesso

id
string
obrigatório
run_url
string
obrigatório

Abra este Run no console. Requer associação ao Workspace.

provider
string
obrigatório
Pattern: ^[a-z0-9][a-z0-9-]*$
endpoint
string
obrigatório
Pattern: ^\/.+$
endpoint_version
integer
obrigatório
status
enum<string>
obrigatório

QUEUED ou RUNNING: ainda em andamento. COMPLETED: uma resposta do provedor de dados está disponível, incluindo respostas não 2xx. FAILED: consulte failure. STOPPED: interrompido antes do envio. Leia charge_usd separadamente de status.

Opções disponíveis:
QUEUED,
RUNNING,
COMPLETED,
FAILED,
STOPPED
failure
object | null
obrigatório

Motivo da falha do Run. Não é null somente quando status é FAILED.

input
object
obrigatório
output
object
obrigatório

Campos normalizados por ação. A saída nativa do provedor de dados não é repetida aqui; ela permanece no Run (GET /v1/runs/:id). Os valores que o provedor de dados não informa são null.

  • search: results[]: url, title, snippet (trecho do Google; destaque extraído pelo Exa para o Exa), position, published_at, date_text, date (obsoleto)
  • news: items[]: title, url, source, published_at, date_text, snippet
  • places: items[]: name, address (texto do provedor de dados; pode conter somente a linha da rua), category, rating (1–5), reviews, phone, website, latitude, longitude, google_cid
  • scholar: items[]: title, url, snippet, publication, year, cited_by, pdf_url
  • shopping: items[]: title, url (página do Google Shopping), merchant_url, google_product_id, price_text, seller, rating (1–5), reviews, image_url
  • images: items[]: title, image_url, thumbnail_url, source_url, source, width, height
  • videos: items[]: title, url, channel, source, date_text, duration_text, snippet, thumbnail_url
  • answer: answer, citations[]: url, title, published_at
  • scrape: url, final_url, title, text, markdown, html, raw_html, text_character_limit, cached, fetched_at, quality (obsoleto)
  • similar: items[]: url, title, exa_similarity_score, published_at, author

published_at é um timestamp UTC ISO 8601 e só é definido a partir de um timestamp de máquina do provedor de dados. date_text é o texto de exibição do Google conforme retornado; ele pode ser relativo a completed_at do Run e nunca é interpretado. rating é a média de estrelas de 1–5 do Google; reviews é uma contagem. source é o nome de um editor ou site. exa_similarity_score é a pontuação própria do Exa e só pode ser comparada dentro de uma única resposta.

provider_response
object | null
obrigatório

Não nulo somente quando status é COMPLETED.

  • Para respostas 2xx, output contém JSON nativo do provedor de dados (qualquer formato) ou null para um corpo vazio.
  • Para respostas não 2xx, error contém o corpo de erro do provedor de dados e output é null.

Os campos sensíveis são removidos de ambos os corpos.

charge_usd
string | null
obrigatório

Cobrança total dos Runs nesta resposta de Solution. Null até que todos os Runs listados sejam liquidados. Cada Run mantém sua própria cobrança; falhas também podem ser cobradas.

Pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
charge_basis
object | null
obrigatório

Base de cobrança de um único Run ou null para um total de vários Runs. Leia runs[].charge_basis para cada cobrança.

stoppable
boolean
obrigatório

Indica se uma solicitação de parada pode ser aceita no momento. Isso não garante que o Run possa ser interrompido antes do dispatch.

stop_requested_at
string<date-time> | null
obrigatório

Momento em que uma parada foi solicitada. O Run ainda pode continuar se o dispatch já tiver começado.

created_at
string<date-time>
obrigatório

Timestamp UTC ISO-8601

started_at
string<date-time> | null
obrigatório

Timestamp UTC ISO-8601

completed_at
string<date-time> | null
obrigatório

Timestamp UTC ISO-8601

task_id
string | null
obrigatório
metadata
object
obrigatório

Seus campos de acompanhamento armazenados. Use-os para filtrar Runs. Eles nunca são enviados ao provedor de dados nem afetam o roteamento, o Price ou a idempotência.

  • Até 20 chaves: letras minúsculas, dígitos e sublinhados; comece com uma letra; no máximo 40 caracteres.
  • Valores: strings de 1–500 caracteres.
  • user_id: o ID opaco do seu usuário final, nunca o endereço de e-mail ou o nome dele.
action
enum<string>
obrigatório
Opções disponíveis:
search,
news,
places,
scholar,
shopping,
images,
videos,
answer,
scrape,
similar
result_status
enum<string>
obrigatório

Status de entrega comercial, independente do ciclo de vida final do Run em status. success não é um veredito semântico sobre a qualidade do conteúdo.

Opções disponíveis:
success,
partial,
no_result,
error,
pending
missing_formats
enum<string>[]
obrigatório
Opções disponíveis:
text,
markdown,
html,
raw_html
error
object | null
obrigatório
runs
object[]
obrigatório
result_url
string
obrigatório

Caminho de URL autenticado e somente leitura para consultar este resultado normalizado e a cobrança total. Use-o com a origem da API. Não cria Runs nem retoma o fallback. GET /v1/runs/:id ainda retorna o Run individual nativo.