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/quotaGET /api/quota
Überprüfen Sie verbleibende Quota vor dem Starten von Aufträgen
/api/quotaResponse: Gibt Gesamtquota, verwendete, verbleibende Quota und Prozentsatz verwendet zurück
curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/quotaGET /api/usage
Erhalten Sie Nutzungsstatistiken für Reporting und Kostenanalyse
/api/usageResponse: Gibt Gesamtsitzungen, Gesamtminuten und aktive Sitzungsanzahl zurück
curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/usageGET /api/history
Sitzungsverlauf für Audit-Trails abrufen
/api/historyParameters: 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/historyPOST /api/user-data
Erstellen Sie einen neuen Benutzerdaten-Container für persistenten Browser-Zustand (Cookies, localStorage, etc.)
/api/user-dataResponse: Gibt die erstellte Benutzerdaten-ID und den Zeitstempel zurück
curl -X POST -H "Authorization: Bearer your-token" https://cloud.bots.win/api/user-dataGET /api/user-data
Listen Sie alle Benutzerdaten-Container für den authentifizierten Benutzer auf
/api/user-dataResponse: Gibt Array von Benutzerdaten-Objekten mit Quota-Informationen zurück
curl -H "Authorization: Bearer your-token" https://cloud.bots.win/api/user-dataDELETE /api/user-data/:id
Löschen Sie einen Benutzerdaten-Container und geben Sie Quota frei
/api/user-data/:idResponse: Gibt Erfolgsstatus zurück
curl -X DELETE -H "Authorization: Bearer your-token" \
https://cloud.bots.win/api/user-data/udd_abc123xyz789defgFramework 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 Status | Cause |
|---|---|
| 400 | Der --proxy-server Query-Parameter fehlt oder ist fehlerhaft |
| 401 | Token fehlt oder ist ungültig |
| 401 | Abonnement ist nicht aktiv (kein Abonnement, abgelaufen oder Zeitraum beendet) |
| 401 | Trial-Token ist abgelaufen oder das Kontingent ist aufgebraucht |
| 403 | Kontoguthaben aufgebraucht — keine verbleibenden Abonnementstunden und Guthaben ist null |
| 429 | Trial-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.
| Code | Description |
|---|---|
| socket_close | Client hat die Verbindung geschlossen (z. B. browser.close() oder Prozessbeendigung) — häufigster Fall, normale Beendigung |
| idle_timeout | Keine Aktivität vom Client für längere Zeit — Sitzung wurde vom Gateway beendet |
| browser_close_graceful | Browser hat sich selbst geschlossen (z. B. window.close() wurde von der Seite aufgerufen) |
| trial_exhausted | Das Trial-Token-Kontingent war während der Sitzung aufgebraucht |
| primary_blocked:Insufficient balance | Kontoguthaben war während der Sitzung aufgebraucht — Gateway hat die Sitzung geschlossen |
| primary_blocked:Subscription lapsed or expired | Abonnement ist während der Sitzung abgelaufen oder wurde inaktiv |
| browser_disconnect | Browser hat die Verbindung zum Gateway verloren — Neuversuch möglich |
| browser_crash | Browser-Prozess ist abgestürzt — Neuversuch möglich |
| gateway_crash | Gateway wurde neu gestartet — Ihre Sitzung wurde beendet, Neuversuch möglich |
| socket_error | Fehler auf Netzwerkebene (TCP-Reset oder abnormales Schließen) |