Headers de Response

Cada response da API FourA inclui um pequeno conjunto de headers personalizados. Eles são úteis para rastreamento, suporte e análise posterior.

Headers definidos pelo FourA

Header Definido em Descrição
X-Foura-Request-Id Cada response de /api/*, incluindo erros e 401s Um UUID que identifica este request. Registre-o do seu lado.
Content-Type Cada response Sempre application/json para o envelope. O content-type do destino retorna dentro do campo headers do envelope.

X-Foura-Request-Id

Cada chamada para POST /api/single/, POST /api/proxy/ ou POST /api/browser/ é marcada com um UUID. O header é definido mesmo quando a autenticação falha, para que você possa correlacionar chamadas mal configuradas também.

curl -i -X POST https://eu.api.foura.ai/api/single/ \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method": "GET", "url": "https://example.com"}'
HTTP/1.1 200 OK
X-Foura-Request-Id: 9f1c4e6c-7b2a-4d3e-8a1f-2c9d8e4a3b15
Content-Type: application/json
...

Quando usar

  • Tickets de suporte: inclua o ID do request e poderemos encontrar a chamada exata em nossos registros.
  • Seus próprios logs: armazene-o junto à linha de log da sua aplicação. Se uma reclamação de cliente disser "os dados estavam incorretos às 14:32", você poderá reproduzir o request exato.
  • Rastreamento no Dashboard: o mesmo ID aparece no Activity feed para as chaves que você gerencia, permitindo que você abra a linha correspondente e inspecione o request e o response capturados.

Exemplo: registrar logs do seu lado

import logging
import requests

log = logging.getLogger(__name__)

def fetch(url, api_key):
    resp = requests.post(
        "https://eu.api.foura.ai/api/single/",
        headers={"X-API-Key": api_key, "Content-Type": "application/json"},
        json={"method": "GET", "url": url},
    )
    request_id = resp.headers.get("X-Foura-Request-Id", "no-id")
    log.info("foura request_id=%s url=%s status=%s", request_id, url, resp.status_code)
    resp.raise_for_status()
    return resp.json()
async function fetchPage(url, apiKey) {
  const resp = await fetch('https://eu.api.foura.ai/api/single/', {
    method: 'POST',
    headers: { 'X-API-Key': apiKey, 'Content-Type': 'application/json' },
    body: JSON.stringify({ method: 'GET', url })
  });

  const requestId = resp.headers.get('X-Foura-Request-Id') || 'no-id';
  console.log(`foura request_id=${requestId} url=${url} status=${resp.status}`);

  return resp.json();
}

Comportamento de Cache

A API não define Cache-Control ou ETag nos responses. Cada chamada atinge o backend. Se precisar de cache, adicione-o do seu lado.

Response Headers do Destino

Os headers que o site de destino retornou não estão no response da API FourA. Eles retornam dentro do envelope JSON como o campo headers. Para os endpoints Single e Proxy, este é um array de objetos de header por salto (uma entrada por etapa de redirecionamento). Para o endpoint Browser, é um objeto simples dos headers de response finais.

{
  "status": 200,
  "headers": [
    { "Content-Type": "text/html; charset=utf-8", "Server": "..." }
  ],
  "data": "<!doctype html>...",
  "total_time": 0.42
}

Se precisar de um header de destino específico, leia-o do campo headers do envelope, não do response HTTP da chamada de API em si.

Relacionado

  • API Endpoints: Formatos de envelope de request e response
  • API Errors: Como os responses de erro são estruturados
  • Activity Log: Histórico por request indexado pelo ID do request
Atualizado em: 30 de junho de 2026