Response-Header

Jede Response der FourA-API enthält eine kleine Auswahl benutzerdefinierter Header. Sie sind nützlich für Tracing, Support und nachträgliche Analysen.

Von FourA gesetzte Header

Header Gesetzt bei Beschreibung
X-Foura-Request-Id Jeder /api/*-Response, inklusive Fehlern und 401s Eine UUID, die diesen Request identifiziert. Logge sie auf deiner Seite.
Content-Type Jeder Response Immer application/json für den Envelope. Der Content-Type des Ziels wird im headers-Feld des Envelopes zurückgegeben.

X-Foura-Request-Id

Jeder Aufruf von POST /api/single/, POST /api/proxy/ oder POST /api/browser/ wird mit einer UUID versehen. Der Header wird selbst bei fehlgeschlagener Authentifizierung gesetzt, sodass du auch fehlerhaft konfigurierte Aufrufe korrelieren kannst.

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
...

Wann du ihn nutzt

  • Support-Tickets: Gib die Request-ID an, damit wir den genauen Aufruf in unseren Logs finden können.
  • Eigene Logs: Speichere sie neben deiner Anwendungs-Logzeile. Wenn eine Kundenbeschwerde besagt „die Daten waren um 14:32 Uhr falsch“, kannst du den genauen Request rekonstruieren.
  • Dashboard-Tracing: Dieselbe ID erscheint im Aktivitätsfeed für die von dir verwalteten Keys. Du kannst die passende Zeile öffnen und den erfassten Request sowie die Response einsehen.

Beispiel: Loggen auf deiner Seite

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();
}

Cache-Verhalten

Die API setzt kein Cache-Control oder ETag bei Responses. Jeder Aufruf erreicht das Backend. Wenn du Caching benötigst, implementiere es auf deiner Seite.

Response-Header des Ziels

Die von der Zielseite zurückgegebenen Header befinden sich nicht in der Response der FourA-API. Sie werden innerhalb des JSON-Envelopes im Feld headers zurückgegeben. Für die Single- und Proxy-Endpoints ist dies ein Array von Header-Objekten pro Hop (ein Eintrag pro Redirect-Schritt). Für den Browser-Endpoint ist es ein flaches Objekt der finalen Response-Header.

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

Wenn du einen bestimmten Ziel-Header benötigst, lies ihn aus dem headers-Feld des Envelopes aus, nicht aus der HTTP-Response des API-Aufrufs selbst.

Verwandte Themen

Aktualisiert: 30. Juni 2026