Documentation

API-Referenz

REST-API-Endpunkte für Quota-Verwaltung, Nutzungs-Tracking und Sitzungsverlauf

Quick Start

Connect your existing Puppeteer, Playwright, or CDP automation to BotCloud by swapping your WebSocket endpoint to wss://cloud.bots.win. No code rewrites — just one line change.

import puppeteer from "puppeteer-core";

const params = new URLSearchParams({
  token: process.env.BOTCLOUD_TOKEN,
  "--proxy-server": process.env.BOTCLOUD_PROXY,
  device_type: "mac",
});

const browser = await puppeteer.connect({
  browserWSEndpoint: `wss://cloud.bots.win?${params.toString()}`,
});

const page = await browser.newPage();
await page.goto("https://example.com");
await page.screenshot({ path: "screenshot.png" });
await browser.close();

Authentifizierung

Alle API-Endpunkte erfordern Bearer-Token-Authentifizierung

# All API endpoints require Bearer token authentication
curl -H "Authorization: Bearer your-user-token-here" \
  https://cloud.bots.win/api/quota

GET /api/quota

Überprüfen Sie verbleibende Quota vor dem Starten von Aufträgen

GET/api/quota

Response: Gibt Gesamtquota, verwendete, verbleibende Quota und Prozentsatz verwendet zurück

curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/quota

GET /api/usage

Erhalten Sie Nutzungsstatistiken für Reporting und Kostenanalyse

GET/api/usage

Response: Gibt Gesamtsitzungen, Gesamtminuten und aktive Sitzungsanzahl zurück

curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/usage

GET /api/history

Sitzungsverlauf für Audit-Trails abrufen

GET/api/history

Parameters: Optionale Start- und End-Abfrageparameter (ISO 8601-Zeitstempel)

Response: Gibt Array von Sitzungsobjekten mit Dauer und Disconnect-Gründen zurück

curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/history

POST /api/user-data

Erstellen Sie einen neuen Benutzerdaten-Container für persistenten Browser-Zustand (Cookies, localStorage, etc.)

POST/api/user-data

Response: Gibt die erstellte Benutzerdaten-ID und den Zeitstempel zurück

curl -X POST -H "Authorization: Bearer your-token" https://cloud.bots.win/api/user-data

GET /api/user-data

Listen Sie alle Benutzerdaten-Container für den authentifizierten Benutzer auf

GET/api/user-data

Response: Gibt Array von Benutzerdaten-Objekten mit Quota-Informationen zurück

curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/user-data

DELETE /api/user-data/:id

Löschen Sie einen Benutzerdaten-Container und geben Sie Quota frei

DELETE/api/user-data/:id

Response: Gibt Erfolgsstatus zurück

curl -X DELETE -H "Authorization: Bearer your-token" \
  https://cloud.bots.win/api/user-data/udd_abc123xyz789defg

Framework Integration

Puppeteer, PuppeteerSharp, Playwright (Node.js / Python / .NET), raw CDP, Go (chromedp / rod), Java (native WebSocket), and Ruby (Ferrum) all work without code rewrites. Swap wss://cloud.bots.win as your endpoint and pass your token, proxy, and device type as query parameters.

import puppeteer from "puppeteer-core";

const params = new URLSearchParams({
  token: process.env.BOTCLOUD_TOKEN,
  "--proxy-server": process.env.BOTCLOUD_PROXY,
  device_type: "mac",
});

const browser = await puppeteer.connect({
  browserWSEndpoint: `wss://cloud.bots.win?${params.toString()}`,
});

const page = await browser.newPage();
await page.goto("https://example.com");
await page.screenshot({ path: "screenshot.png" });
await browser.close();

Abrechnungsmodell

Abonnementpläne beinhalten monatliche Browser-Stunden. Nach deren Verbrauch wird die zusätzliche Nutzung aus Ihrem vorausbezahlten Guthaben zum Overage-Tarif des Plans abgerechnet.

Verbindungsfehler

Diese Fehler treten während des Verbindungsaufbaus auf — die Sitzung wird nie erstellt und erscheint daher nicht in /api/history. Prüfen Sie den HTTP-Status und die Meldung im Response-Body, um damit umzugehen.

HTTP StatusCause
400Der --proxy-server Query-Parameter fehlt oder ist fehlerhaft
401Token fehlt oder ist ungültig
401Abonnement ist nicht aktiv (kein Abonnement, abgelaufen oder Zeitraum beendet)
401Trial-Token ist abgelaufen oder das Kontingent ist aufgebraucht
403Kontoguthaben aufgebraucht — keine verbleibenden Abonnementstunden und Guthaben ist null
429Trial-Konten sind auf 1 aktive Sitzung gleichzeitig begrenzt

Disconnect-Gründe

Sobald eine Sitzung geöffnet wurde, endet sie irgendwann mit einem der unten aufgeführten Gründe — aufgezeichnet in /api/history. Verwenden Sie diese Codes für die Fehlerbehandlung und Prüfpfade.

CodeDescription
socket_closeClient hat die Verbindung geschlossen (z. B. browser.close() oder Prozessbeendigung) — häufigster Fall, normale Beendigung
idle_timeoutKeine Aktivität vom Client für längere Zeit — Sitzung wurde vom Gateway beendet
browser_close_gracefulBrowser hat sich selbst geschlossen (z. B. window.close() wurde von der Seite aufgerufen)
trial_exhaustedDas Trial-Token-Kontingent war während der Sitzung aufgebraucht
primary_blocked:Insufficient balanceKontoguthaben war während der Sitzung aufgebraucht — Gateway hat die Sitzung geschlossen
primary_blocked:Subscription lapsed or expiredAbonnement ist während der Sitzung abgelaufen oder wurde inaktiv
browser_disconnectBrowser hat die Verbindung zum Gateway verloren — Neuversuch möglich
browser_crashBrowser-Prozess ist abgestürzt — Neuversuch möglich
gateway_crashGateway wurde neu gestartet — Ihre Sitzung wurde beendet, Neuversuch möglich
socket_errorFehler auf Netzwerkebene (TCP-Reset oder abnormales Schließen)