Zum Inhalt springen

Schnellstart: erste Session in fünf Minuten

Lege einen API-Schlüssel an, starte eine gehärtete Browser-Session, navigiere deterministisch und extrahiere typisierte Daten per Modellaufruf.

Zuletzt aktualisiert:

Was du bauen wirst

Diese Seite bringt dich in rund fünf Minuten von null zu strukturierten Daten. Du legst einen API-Schlüssel an, startest eine Browser-Session, navigierst sie mit einem deterministischen Schritt, der keine Inferenz kostet, und führst eine einzelne modellgestützte Extraktion aus, die typisiertes JSON zurückgibt.

Alles läuft über eine HTTP-API. Die SDKs für TypeScript und Python verpacken sie; der cURL-Tab zeigt die rohen Requests, damit du siehst, dass dazwischen keine Magie steckt. Du brauchst nur ein Konto und ein Terminal.

Illustration einer Browserberg-Session: ein Terminal links sendet Verbs an einen gehärteten Browser-Container rechts, der strukturierte Daten zurückliefert.
Eine Session, drei Verbs: deterministisch navigieren, dann liest das Modell die Seite.

Vom Schlüssel zu den Daten

Speichere deinen Schlüssel als BROWSERBERG_API_KEY, wähle einen Tab und führe ihn als eine Datei aus. Jedes Beispiel erstellt eine kurzlebige Session, öffnet example.com und extrahiert die Überschrift.

Voraussetzungen: api-key inference

import { Browserberg } from '@browserberg/sdk';

const bb = new Browserberg({
  apiKey: process.env.BROWSERBERG_API_KEY!,
  baseUrl: 'https://browserberg.com',
  // Extraction is a model call; give it more room than the 30 s default.
  timeoutMs: 180_000,
});

// Released automatically when the block exits, even on an error.
await using session = await bb.sessions.create({ ttlSeconds: 300 });

// Deterministic navigation: a plain step, no model call.
await session.act({
  steps: [{
    encodedId: null, action: 'navigate', role: 'none',
    description: 'open example.com', value: 'https://example.com',
  }],
});

// One instruction against the live page, one typed result back.
const result = await session.extract({
  instruction: 'the page heading and the first paragraph',
  jsonSchema: {
    type: 'object',
    properties: {
      heading: { type: 'string' },
      firstParagraph: { type: 'string' },
    },
    required: ['heading'],
  },
});

console.log(JSON.stringify(result.data, null, 2));
console.log('inference calls:', result.provenance.inferenceCalls);

Was gerade passiert ist

Vier Details in dieser Datei verdienen einen zweiten Blick. await using (und der with-Block in Python) gibt die Session frei, sobald der Block endet — auch bei einem Fehler. Du bezahlst Browserzeit, eine vergessene Session ist also der eine Fehler, der Geld kostet. Der Navigationsaufruf ist ein einfacher Schritt ohne Instruktion: deterministisch, wiederholbar und komplett ohne Modellaufruf.

Der Extract-Aufruf ist die einzige Zeile, die für Inferenz bezahlt. Er trägt ein JSON-Schema, sodass die Antwort als typisierte Daten zurückkommt statt als Prosa, die du ein zweites Mal parsen müsstest.

Jede Verb-Antwort endet mit einem provenance-Block: inferenceCalls, planCacheHit, tier und eine requestId. Daran erkennst du einen Cache-Replay im Unterschied zum bezahlten Modellaufruf — direkt aus der Antwort, nicht erst von der Rechnung.

Tipp · Lieber ganz ohne Code?

Der MCP-Server steuert dieselbe Art Session aus einem Coding-Agenten heraus: sechs Tools, kein SDK, ein Konfigurationsblock. Siehe die MCP-Server-Seite in diesem Abschnitt.

Wie es weitergeht

  • Installation Die drei Oberflächen: TypeScript, Python, rohes HTTP
  • Authentifizierung API-Schlüssel, der Fehlerumschlag und wer was anlegen darf
  • Beobachten, handeln, extrahieren Die drei Verbs hinter jedem Aufruf von eben