Spaces:
Runtime error
Runtime error
| { | |
| "openapi": "3.0.3", | |
| "info": { | |
| "title": "Steel Browser Instance API", | |
| "description": "Documentation for controlling a single instance of Steel Browser", | |
| "version": "0.0.1" | |
| }, | |
| "components": { | |
| "securitySchemes": {}, | |
| "schemas": { | |
| "ScrapeRequest": { | |
| "title": "ScrapeRequest", | |
| "type": "object", | |
| "properties": { | |
| "url": { | |
| "type": "string" | |
| }, | |
| "format": { | |
| "type": "array", | |
| "items": { | |
| "type": "string", | |
| "enum": [ | |
| "html", | |
| "readability", | |
| "cleaned_html", | |
| "markdown" | |
| ] | |
| } | |
| }, | |
| "screenshot": { | |
| "type": "boolean" | |
| }, | |
| "pdf": { | |
| "type": "boolean" | |
| }, | |
| "proxyUrl": { | |
| "type": "string", | |
| "nullable": true, | |
| "description": "Proxy URL to use for the scrape. Provide `null` to disable proxy. If not provided, current session proxy settings will be used." | |
| }, | |
| "delay": { | |
| "type": "number" | |
| }, | |
| "logUrl": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "ScrapeResponse": { | |
| "title": "ScrapeResponse", | |
| "type": "object", | |
| "properties": { | |
| "content": { | |
| "type": "object", | |
| "additionalProperties": {} | |
| }, | |
| "metadata": { | |
| "type": "object", | |
| "properties": { | |
| "title": { | |
| "type": "string" | |
| }, | |
| "language": { | |
| "type": "string" | |
| }, | |
| "urlSource": { | |
| "type": "string" | |
| }, | |
| "timestamp": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "description": { | |
| "type": "string" | |
| }, | |
| "keywords": { | |
| "type": "string" | |
| }, | |
| "author": { | |
| "type": "string" | |
| }, | |
| "ogTitle": { | |
| "type": "string" | |
| }, | |
| "ogDescription": { | |
| "type": "string" | |
| }, | |
| "ogImage": { | |
| "type": "string" | |
| }, | |
| "ogUrl": { | |
| "type": "string" | |
| }, | |
| "ogSiteName": { | |
| "type": "string" | |
| }, | |
| "articleAuthor": { | |
| "type": "string" | |
| }, | |
| "publishedTime": { | |
| "type": "string" | |
| }, | |
| "modifiedTime": { | |
| "type": "string" | |
| }, | |
| "canonical": { | |
| "type": "string" | |
| }, | |
| "favicon": { | |
| "type": "string" | |
| }, | |
| "jsonLd": {}, | |
| "statusCode": { | |
| "type": "integer" | |
| } | |
| }, | |
| "required": [ | |
| "statusCode" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "links": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "url": { | |
| "type": "string" | |
| }, | |
| "text": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "url", | |
| "text" | |
| ], | |
| "additionalProperties": false | |
| } | |
| }, | |
| "screenshot": { | |
| "type": "string" | |
| }, | |
| "pdf": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "content", | |
| "metadata", | |
| "links" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "ScreenshotRequest": { | |
| "title": "ScreenshotRequest", | |
| "type": "object", | |
| "properties": { | |
| "url": { | |
| "type": "string" | |
| }, | |
| "proxyUrl": { | |
| "type": "string", | |
| "nullable": true, | |
| "description": "Proxy URL to use for the scrape. Provide `null` to disable proxy. If not provided, current session proxy settings will be used." | |
| }, | |
| "delay": { | |
| "type": "number" | |
| }, | |
| "fullPage": { | |
| "type": "boolean" | |
| }, | |
| "logUrl": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "ScreenshotResponse": { | |
| "title": "ScreenshotResponse" | |
| }, | |
| "PDFRequest": { | |
| "title": "PDFRequest", | |
| "type": "object", | |
| "properties": { | |
| "url": { | |
| "type": "string" | |
| }, | |
| "proxyUrl": { | |
| "type": "string", | |
| "nullable": true, | |
| "description": "Proxy URL to use for the scrape. Provide `null` to disable proxy. If not provided, current session proxy settings will be used." | |
| }, | |
| "delay": { | |
| "type": "number" | |
| }, | |
| "logUrl": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "PDFResponse": { | |
| "title": "PDFResponse" | |
| }, | |
| "CreateSession": { | |
| "title": "CreateSession", | |
| "type": "object", | |
| "properties": { | |
| "sessionId": { | |
| "type": "string", | |
| "format": "uuid", | |
| "description": "Unique identifier for the session" | |
| }, | |
| "proxyUrl": { | |
| "type": "string", | |
| "description": "Proxy URL to use for the session" | |
| }, | |
| "userAgent": { | |
| "type": "string", | |
| "description": "User agent string to use for the session" | |
| }, | |
| "sessionContext": { | |
| "type": "object", | |
| "properties": { | |
| "cookies": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The name of the cookie" | |
| }, | |
| "value": { | |
| "type": "string", | |
| "description": "The value of the cookie" | |
| }, | |
| "url": { | |
| "type": "string", | |
| "description": "The URL of the cookie" | |
| }, | |
| "domain": { | |
| "type": "string", | |
| "description": "The domain of the cookie" | |
| }, | |
| "path": { | |
| "type": "string", | |
| "description": "The path of the cookie" | |
| }, | |
| "secure": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is secure" | |
| }, | |
| "httpOnly": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is HTTP only" | |
| }, | |
| "sameSite": { | |
| "type": "string", | |
| "enum": [ | |
| "Strict", | |
| "Lax", | |
| "None" | |
| ], | |
| "description": "The same site attribute of the cookie" | |
| }, | |
| "size": { | |
| "type": "number", | |
| "description": "The size of the cookie" | |
| }, | |
| "expires": { | |
| "type": "number", | |
| "description": "The expiration date of the cookie" | |
| }, | |
| "partitionKey": { | |
| "type": "object", | |
| "properties": { | |
| "topLevelSite": { | |
| "type": "string", | |
| "description": "The site of the top-level URL the browser was visiting at the start of the request to the endpoint that set the cookie." | |
| }, | |
| "hasCrossSiteAncestor": { | |
| "type": "boolean", | |
| "description": "Indicates if the cookie has any ancestors that are cross-site to the topLevelSite." | |
| } | |
| }, | |
| "required": [ | |
| "topLevelSite", | |
| "hasCrossSiteAncestor" | |
| ], | |
| "additionalProperties": false, | |
| "description": "The partition key of the cookie" | |
| }, | |
| "session": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is a session cookie" | |
| }, | |
| "priority": { | |
| "type": "string", | |
| "enum": [ | |
| "Low", | |
| "Medium", | |
| "High" | |
| ], | |
| "description": "The priority of the cookie" | |
| }, | |
| "sameParty": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is a same party cookie" | |
| }, | |
| "sourceScheme": { | |
| "type": "string", | |
| "enum": [ | |
| "Unset", | |
| "NonSecure", | |
| "Secure" | |
| ], | |
| "description": "The source scheme of the cookie" | |
| }, | |
| "sourcePort": { | |
| "type": "number", | |
| "description": "The source port of the cookie" | |
| } | |
| }, | |
| "required": [ | |
| "name", | |
| "value" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "description": "Cookies to initialize in the session" | |
| }, | |
| "localStorage": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "string" | |
| } | |
| }, | |
| "description": "Domain-specific localStorage items to initialize in the session" | |
| }, | |
| "sessionStorage": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "string" | |
| } | |
| }, | |
| "description": "Domain-specific sessionStorage items to initialize in the session" | |
| }, | |
| "indexedDB": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "number" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "data": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "number" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "records": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "key": {}, | |
| "value": {}, | |
| "blobFiles": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "blobNumber": { | |
| "type": "number" | |
| }, | |
| "mimeType": { | |
| "type": "string" | |
| }, | |
| "size": { | |
| "type": "number" | |
| }, | |
| "filename": { | |
| "type": "string" | |
| }, | |
| "lastModified": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "path": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "blobNumber", | |
| "mimeType", | |
| "size" | |
| ], | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name", | |
| "records" | |
| ], | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name", | |
| "data" | |
| ], | |
| "additionalProperties": false | |
| } | |
| }, | |
| "description": "Domain-specific indexedDB items to initialize in the session" | |
| } | |
| }, | |
| "additionalProperties": false, | |
| "description": "Session context data to be used in the created session" | |
| }, | |
| "isSelenium": { | |
| "type": "boolean", | |
| "description": "Indicates if Selenium is used in the session" | |
| }, | |
| "blockAds": { | |
| "type": "boolean", | |
| "description": "Flag to indicate if ads should be blocked in the session" | |
| }, | |
| "optimizeBandwidth": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "type": "object", | |
| "properties": { | |
| "blockImages": { | |
| "type": "boolean" | |
| }, | |
| "blockMedia": { | |
| "type": "boolean" | |
| }, | |
| "blockStylesheets": { | |
| "type": "boolean" | |
| }, | |
| "blockHosts": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "blockUrlPatterns": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| ], | |
| "description": "Enable bandwidth optimizations. Passing true enables all flags (except hosts/patterns). Object allows granular control." | |
| }, | |
| "skipFingerprintInjection": { | |
| "type": "boolean", | |
| "description": "Flag to indicate if fingerprint injection should be skipped for this session." | |
| }, | |
| "deviceConfig": { | |
| "type": "object", | |
| "properties": { | |
| "device": { | |
| "type": "string", | |
| "enum": [ | |
| "desktop", | |
| "mobile" | |
| ], | |
| "default": "desktop" | |
| } | |
| }, | |
| "additionalProperties": false, | |
| "description": "Device configuration for the session. Specify 'mobile' for mobile device fingerprints and configurations." | |
| }, | |
| "logSinkUrl": { | |
| "type": "string", | |
| "description": "Deprecated: Log sink URL to use for the session" | |
| }, | |
| "extensions": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| }, | |
| "description": "Extensions to use for the session" | |
| }, | |
| "persist": { | |
| "type": "boolean", | |
| "description": "Flag to indicate if session should be persisted" | |
| }, | |
| "userDataDir": { | |
| "type": "string", | |
| "description": "User data directory path to use for the session" | |
| }, | |
| "timezone": { | |
| "type": "string", | |
| "description": "Timezone to use for the session" | |
| }, | |
| "dimensions": { | |
| "type": "object", | |
| "properties": { | |
| "width": { | |
| "type": "number" | |
| }, | |
| "height": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "width", | |
| "height" | |
| ], | |
| "additionalProperties": false, | |
| "description": "Dimensions to use for the session" | |
| }, | |
| "userPreferences": { | |
| "type": "object", | |
| "additionalProperties": {}, | |
| "description": "Chrome user preferences to customize browser behavior (e.g., font size, popup blocking, notification settings)" | |
| }, | |
| "extra": { | |
| "type": "object", | |
| "additionalProperties": {}, | |
| "description": "Extra metadata to help initialize the session" | |
| }, | |
| "credentials": { | |
| "type": "object", | |
| "properties": { | |
| "autoSubmit": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "not": {} | |
| } | |
| ] | |
| }, | |
| "blurFields": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "not": {} | |
| } | |
| ] | |
| }, | |
| "exactOrigin": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "not": {} | |
| } | |
| ] | |
| } | |
| }, | |
| "additionalProperties": false, | |
| "description": "Configuration for session credentials" | |
| }, | |
| "headless": { | |
| "type": "boolean", | |
| "description": "Headless mode for the session" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "SessionDetails": { | |
| "title": "SessionDetails", | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string", | |
| "format": "uuid", | |
| "description": "Unique identifier for the session" | |
| }, | |
| "createdAt": { | |
| "type": "string", | |
| "format": "date-time", | |
| "description": "Timestamp when the session started" | |
| }, | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "idle", | |
| "live", | |
| "released", | |
| "failed" | |
| ], | |
| "description": "Status of the session" | |
| }, | |
| "duration": { | |
| "type": "integer", | |
| "description": "Duration of the session in milliseconds" | |
| }, | |
| "eventCount": { | |
| "type": "integer", | |
| "description": "Number of events processed in the session" | |
| }, | |
| "dimensions": { | |
| "type": "object", | |
| "properties": { | |
| "width": { | |
| "type": "number" | |
| }, | |
| "height": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "width", | |
| "height" | |
| ], | |
| "additionalProperties": false, | |
| "description": "Dimensions used for the session" | |
| }, | |
| "timeout": { | |
| "type": "integer", | |
| "description": "Session timeout duration in milliseconds" | |
| }, | |
| "creditsUsed": { | |
| "type": "integer", | |
| "description": "Amount of credits consumed by the session" | |
| }, | |
| "websocketUrl": { | |
| "type": "string", | |
| "description": "URL for the session's WebSocket connection" | |
| }, | |
| "debugUrl": { | |
| "type": "string", | |
| "description": "URL for a viewing the live browser instance for the session" | |
| }, | |
| "debuggerUrl": { | |
| "type": "string", | |
| "description": "URL for debugging the session" | |
| }, | |
| "sessionViewerUrl": { | |
| "type": "string", | |
| "description": "URL to view session details" | |
| }, | |
| "userAgent": { | |
| "type": "string", | |
| "description": "User agent string used in the session" | |
| }, | |
| "proxy": { | |
| "type": "string", | |
| "description": "Proxy server used for the session" | |
| }, | |
| "proxyTxBytes": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "description": "Amount of data transmitted through the proxy" | |
| }, | |
| "proxyRxBytes": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "description": "Amount of data received through the proxy" | |
| }, | |
| "solveCaptcha": { | |
| "type": "boolean", | |
| "description": "Indicates if captcha solving is enabled" | |
| }, | |
| "isSelenium": { | |
| "type": "boolean", | |
| "description": "Indicates if Selenium is used in the session" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "createdAt", | |
| "status", | |
| "duration", | |
| "eventCount", | |
| "timeout", | |
| "creditsUsed", | |
| "websocketUrl", | |
| "debugUrl", | |
| "debuggerUrl", | |
| "sessionViewerUrl", | |
| "proxyTxBytes", | |
| "proxyRxBytes" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "MultipleSessions": { | |
| "title": "MultipleSessions", | |
| "type": "object", | |
| "properties": { | |
| "sessions": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string", | |
| "format": "uuid", | |
| "description": "Unique identifier for the session" | |
| }, | |
| "createdAt": { | |
| "type": "string", | |
| "format": "date-time", | |
| "description": "Timestamp when the session started" | |
| }, | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "idle", | |
| "live", | |
| "released", | |
| "failed" | |
| ], | |
| "description": "Status of the session" | |
| }, | |
| "duration": { | |
| "type": "integer", | |
| "description": "Duration of the session in milliseconds" | |
| }, | |
| "eventCount": { | |
| "type": "integer", | |
| "description": "Number of events processed in the session" | |
| }, | |
| "dimensions": { | |
| "type": "object", | |
| "properties": { | |
| "width": { | |
| "type": "number" | |
| }, | |
| "height": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "width", | |
| "height" | |
| ], | |
| "additionalProperties": false, | |
| "description": "Dimensions used for the session" | |
| }, | |
| "timeout": { | |
| "type": "integer", | |
| "description": "Session timeout duration in milliseconds" | |
| }, | |
| "creditsUsed": { | |
| "type": "integer", | |
| "description": "Amount of credits consumed by the session" | |
| }, | |
| "websocketUrl": { | |
| "type": "string", | |
| "description": "URL for the session's WebSocket connection" | |
| }, | |
| "debugUrl": { | |
| "type": "string", | |
| "description": "URL for a viewing the live browser instance for the session" | |
| }, | |
| "debuggerUrl": { | |
| "type": "string", | |
| "description": "URL for debugging the session" | |
| }, | |
| "sessionViewerUrl": { | |
| "type": "string", | |
| "description": "URL to view session details" | |
| }, | |
| "userAgent": { | |
| "type": "string", | |
| "description": "User agent string used in the session" | |
| }, | |
| "proxy": { | |
| "type": "string", | |
| "description": "Proxy server used for the session" | |
| }, | |
| "proxyTxBytes": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "description": "Amount of data transmitted through the proxy" | |
| }, | |
| "proxyRxBytes": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "description": "Amount of data received through the proxy" | |
| }, | |
| "solveCaptcha": { | |
| "type": "boolean", | |
| "description": "Indicates if captcha solving is enabled" | |
| }, | |
| "isSelenium": { | |
| "type": "boolean", | |
| "description": "Indicates if Selenium is used in the session" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "createdAt", | |
| "status", | |
| "duration", | |
| "eventCount", | |
| "timeout", | |
| "creditsUsed", | |
| "websocketUrl", | |
| "debugUrl", | |
| "debuggerUrl", | |
| "sessionViewerUrl", | |
| "proxyTxBytes", | |
| "proxyRxBytes" | |
| ], | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "sessions" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "SessionContextSchema": { | |
| "title": "SessionContextSchema", | |
| "type": "object", | |
| "properties": { | |
| "cookies": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "name": { | |
| "type": "string", | |
| "description": "The name of the cookie" | |
| }, | |
| "value": { | |
| "type": "string", | |
| "description": "The value of the cookie" | |
| }, | |
| "url": { | |
| "type": "string", | |
| "description": "The URL of the cookie" | |
| }, | |
| "domain": { | |
| "type": "string", | |
| "description": "The domain of the cookie" | |
| }, | |
| "path": { | |
| "type": "string", | |
| "description": "The path of the cookie" | |
| }, | |
| "secure": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is secure" | |
| }, | |
| "httpOnly": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is HTTP only" | |
| }, | |
| "sameSite": { | |
| "type": "string", | |
| "enum": [ | |
| "Strict", | |
| "Lax", | |
| "None" | |
| ], | |
| "description": "The same site attribute of the cookie" | |
| }, | |
| "size": { | |
| "type": "number", | |
| "description": "The size of the cookie" | |
| }, | |
| "expires": { | |
| "type": "number", | |
| "description": "The expiration date of the cookie" | |
| }, | |
| "partitionKey": { | |
| "type": "object", | |
| "properties": { | |
| "topLevelSite": { | |
| "type": "string", | |
| "description": "The site of the top-level URL the browser was visiting at the start of the request to the endpoint that set the cookie." | |
| }, | |
| "hasCrossSiteAncestor": { | |
| "type": "boolean", | |
| "description": "Indicates if the cookie has any ancestors that are cross-site to the topLevelSite." | |
| } | |
| }, | |
| "required": [ | |
| "topLevelSite", | |
| "hasCrossSiteAncestor" | |
| ], | |
| "additionalProperties": false, | |
| "description": "The partition key of the cookie" | |
| }, | |
| "session": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is a session cookie" | |
| }, | |
| "priority": { | |
| "type": "string", | |
| "enum": [ | |
| "Low", | |
| "Medium", | |
| "High" | |
| ], | |
| "description": "The priority of the cookie" | |
| }, | |
| "sameParty": { | |
| "type": "boolean", | |
| "description": "Whether the cookie is a same party cookie" | |
| }, | |
| "sourceScheme": { | |
| "type": "string", | |
| "enum": [ | |
| "Unset", | |
| "NonSecure", | |
| "Secure" | |
| ], | |
| "description": "The source scheme of the cookie" | |
| }, | |
| "sourcePort": { | |
| "type": "number", | |
| "description": "The source port of the cookie" | |
| } | |
| }, | |
| "required": [ | |
| "name", | |
| "value" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "description": "Cookies to initialize in the session" | |
| }, | |
| "localStorage": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "string" | |
| } | |
| }, | |
| "description": "Domain-specific localStorage items to initialize in the session" | |
| }, | |
| "sessionStorage": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "string" | |
| } | |
| }, | |
| "description": "Domain-specific sessionStorage items to initialize in the session" | |
| }, | |
| "indexedDB": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "number" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "data": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "number" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "records": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "key": {}, | |
| "value": {}, | |
| "blobFiles": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "blobNumber": { | |
| "type": "number" | |
| }, | |
| "mimeType": { | |
| "type": "string" | |
| }, | |
| "size": { | |
| "type": "number" | |
| }, | |
| "filename": { | |
| "type": "string" | |
| }, | |
| "lastModified": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "path": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "blobNumber", | |
| "mimeType", | |
| "size" | |
| ], | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name", | |
| "records" | |
| ], | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name", | |
| "data" | |
| ], | |
| "additionalProperties": false | |
| } | |
| }, | |
| "description": "Domain-specific indexedDB items to initialize in the session" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "RecordedEvents": { | |
| "title": "RecordedEvents", | |
| "type": "object", | |
| "properties": { | |
| "events": { | |
| "type": "array", | |
| "description": "Events to emit" | |
| } | |
| }, | |
| "required": [ | |
| "events" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "ReleaseSession": { | |
| "title": "ReleaseSession", | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string", | |
| "format": "uuid", | |
| "description": "Unique identifier for the session" | |
| }, | |
| "createdAt": { | |
| "type": "string", | |
| "format": "date-time", | |
| "description": "Timestamp when the session started" | |
| }, | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "idle", | |
| "live", | |
| "released", | |
| "failed" | |
| ], | |
| "description": "Status of the session" | |
| }, | |
| "duration": { | |
| "type": "integer", | |
| "description": "Duration of the session in milliseconds" | |
| }, | |
| "eventCount": { | |
| "type": "integer", | |
| "description": "Number of events processed in the session" | |
| }, | |
| "dimensions": { | |
| "type": "object", | |
| "properties": { | |
| "width": { | |
| "type": "number" | |
| }, | |
| "height": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "width", | |
| "height" | |
| ], | |
| "additionalProperties": false, | |
| "description": "Dimensions used for the session" | |
| }, | |
| "timeout": { | |
| "type": "integer", | |
| "description": "Session timeout duration in milliseconds" | |
| }, | |
| "creditsUsed": { | |
| "type": "integer", | |
| "description": "Amount of credits consumed by the session" | |
| }, | |
| "websocketUrl": { | |
| "type": "string", | |
| "description": "URL for the session's WebSocket connection" | |
| }, | |
| "debugUrl": { | |
| "type": "string", | |
| "description": "URL for a viewing the live browser instance for the session" | |
| }, | |
| "debuggerUrl": { | |
| "type": "string", | |
| "description": "URL for debugging the session" | |
| }, | |
| "sessionViewerUrl": { | |
| "type": "string", | |
| "description": "URL to view session details" | |
| }, | |
| "userAgent": { | |
| "type": "string", | |
| "description": "User agent string used in the session" | |
| }, | |
| "proxy": { | |
| "type": "string", | |
| "description": "Proxy server used for the session" | |
| }, | |
| "proxyTxBytes": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "description": "Amount of data transmitted through the proxy" | |
| }, | |
| "proxyRxBytes": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "description": "Amount of data received through the proxy" | |
| }, | |
| "solveCaptcha": { | |
| "type": "boolean", | |
| "description": "Indicates if captcha solving is enabled" | |
| }, | |
| "isSelenium": { | |
| "type": "boolean", | |
| "description": "Indicates if Selenium is used in the session" | |
| }, | |
| "success": { | |
| "type": "boolean", | |
| "description": "Indicates if the session was successfully released" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "createdAt", | |
| "status", | |
| "duration", | |
| "eventCount", | |
| "timeout", | |
| "creditsUsed", | |
| "websocketUrl", | |
| "debugUrl", | |
| "debuggerUrl", | |
| "sessionViewerUrl", | |
| "proxyTxBytes", | |
| "proxyRxBytes", | |
| "success" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "SessionStreamQuery": { | |
| "title": "SessionStreamQuery", | |
| "type": "object", | |
| "properties": { | |
| "showControls": { | |
| "type": "boolean", | |
| "default": true, | |
| "description": "Show controls in the browser iframe" | |
| }, | |
| "theme": { | |
| "type": "string", | |
| "enum": [ | |
| "dark", | |
| "light" | |
| ], | |
| "default": "dark", | |
| "description": "Theme of the browser iframe" | |
| }, | |
| "interactive": { | |
| "type": "boolean", | |
| "default": true, | |
| "description": "Make the browser iframe interactive" | |
| }, | |
| "pageId": { | |
| "type": "string", | |
| "description": "Page ID to connect to" | |
| }, | |
| "pageIndex": { | |
| "type": "string", | |
| "description": "Page index (or tab index) to connect to" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "SessionStreamResponse": { | |
| "title": "SessionStreamResponse", | |
| "type": "string", | |
| "description": "HTML content for the session streamer view" | |
| }, | |
| "SessionLiveDetailsResponse": { | |
| "title": "SessionLiveDetailsResponse", | |
| "type": "object", | |
| "properties": { | |
| "sessionViewerUrl": { | |
| "type": "string" | |
| }, | |
| "sessionViewerFullscreenUrl": { | |
| "type": "string" | |
| }, | |
| "websocketUrl": { | |
| "type": "string" | |
| }, | |
| "pages": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string" | |
| }, | |
| "url": { | |
| "type": "string" | |
| }, | |
| "title": { | |
| "type": "string" | |
| }, | |
| "favicon": { | |
| "type": "string", | |
| "nullable": true | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "url", | |
| "title", | |
| "favicon" | |
| ], | |
| "additionalProperties": false | |
| } | |
| }, | |
| "browserState": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "enum": [ | |
| "idle", | |
| "live", | |
| "released", | |
| "failed" | |
| ] | |
| }, | |
| "userAgent": { | |
| "type": "string" | |
| }, | |
| "browserVersion": { | |
| "type": "string" | |
| }, | |
| "initialDimensions": { | |
| "type": "object", | |
| "properties": { | |
| "width": { | |
| "type": "number" | |
| }, | |
| "height": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "width", | |
| "height" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "pageCount": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "status", | |
| "userAgent", | |
| "browserVersion", | |
| "initialDimensions", | |
| "pageCount" | |
| ], | |
| "additionalProperties": false | |
| } | |
| }, | |
| "required": [ | |
| "sessionViewerUrl", | |
| "sessionViewerFullscreenUrl", | |
| "websocketUrl", | |
| "pages", | |
| "browserState" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "LogQuerySchema": { | |
| "title": "LogQuerySchema", | |
| "type": "object", | |
| "properties": { | |
| "startTime": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "endTime": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "eventTypes": { | |
| "type": "string" | |
| }, | |
| "pageId": { | |
| "type": "string" | |
| }, | |
| "targetType": { | |
| "type": "string" | |
| }, | |
| "limit": { | |
| "type": "integer", | |
| "minimum": 1, | |
| "maximum": 1000, | |
| "default": 100 | |
| }, | |
| "offset": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "default": 0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "LogStatsSchema": { | |
| "title": "LogStatsSchema", | |
| "type": "object", | |
| "properties": { | |
| "totalEvents": { | |
| "type": "number" | |
| }, | |
| "oldestEvent": { | |
| "type": "string", | |
| "format": "date-time", | |
| "nullable": true | |
| }, | |
| "newestEvent": { | |
| "type": "string", | |
| "format": "date-time", | |
| "nullable": true | |
| }, | |
| "sizeBytes": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "totalEvents", | |
| "oldestEvent", | |
| "newestEvent", | |
| "sizeBytes" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "LogQueryResultSchema": { | |
| "title": "LogQueryResultSchema", | |
| "type": "object", | |
| "properties": { | |
| "events": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "additionalProperties": {} | |
| } | |
| }, | |
| "total": { | |
| "type": "number" | |
| }, | |
| "hasMore": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "required": [ | |
| "events", | |
| "total", | |
| "hasMore" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "ExportLogsSchema": { | |
| "title": "ExportLogsSchema", | |
| "type": "object", | |
| "properties": { | |
| "query": { | |
| "type": "object", | |
| "properties": { | |
| "startTime": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "endTime": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "eventTypes": { | |
| "type": "string" | |
| }, | |
| "pageId": { | |
| "type": "string" | |
| }, | |
| "targetType": { | |
| "type": "string" | |
| }, | |
| "limit": { | |
| "type": "integer", | |
| "minimum": 1, | |
| "maximum": 1000, | |
| "default": 100 | |
| }, | |
| "offset": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "default": 0 | |
| } | |
| }, | |
| "additionalProperties": false | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "GetDevtoolsUrlSchema": { | |
| "title": "GetDevtoolsUrlSchema", | |
| "type": "object", | |
| "properties": { | |
| "pageId": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "LaunchRequest": { | |
| "title": "LaunchRequest", | |
| "type": "object", | |
| "properties": { | |
| "options": { | |
| "type": "object", | |
| "properties": { | |
| "args": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "chromiumSandbox": { | |
| "type": "boolean" | |
| }, | |
| "devtools": { | |
| "type": "boolean" | |
| }, | |
| "downloadsPath": { | |
| "type": "string" | |
| }, | |
| "headless": { | |
| "type": "boolean" | |
| }, | |
| "ignoreDefaultArgs": { | |
| "anyOf": [ | |
| { | |
| "type": "boolean" | |
| }, | |
| { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| } | |
| ] | |
| }, | |
| "proxyUrl": { | |
| "type": "string" | |
| }, | |
| "timeout": { | |
| "type": "number" | |
| }, | |
| "tracesDir": { | |
| "type": "string" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "req": {}, | |
| "stealth": { | |
| "type": "boolean" | |
| }, | |
| "cookies": { | |
| "type": "array" | |
| }, | |
| "userAgent": { | |
| "type": "string" | |
| }, | |
| "extensions": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| }, | |
| "logSinkUrl": { | |
| "type": "string", | |
| "description": "Deprecated" | |
| }, | |
| "customHeaders": { | |
| "type": "object", | |
| "additionalProperties": { | |
| "type": "string" | |
| } | |
| }, | |
| "timezone": { | |
| "type": "string" | |
| }, | |
| "dimensions": { | |
| "type": "object", | |
| "properties": { | |
| "width": { | |
| "type": "number" | |
| }, | |
| "height": { | |
| "type": "number" | |
| } | |
| }, | |
| "required": [ | |
| "width", | |
| "height" | |
| ], | |
| "additionalProperties": false, | |
| "nullable": true | |
| } | |
| }, | |
| "required": [ | |
| "options" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "LaunchResponse": { | |
| "title": "LaunchResponse", | |
| "type": "object", | |
| "properties": { | |
| "success": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "required": [ | |
| "success" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "FileUploadRequest": { | |
| "title": "FileUploadRequest", | |
| "type": "object", | |
| "properties": { | |
| "file": { | |
| "description": "The file to upload (binary) or URL string to download from" | |
| }, | |
| "path": { | |
| "type": "string", | |
| "description": "Path to the file in the storage system" | |
| } | |
| }, | |
| "additionalProperties": false | |
| }, | |
| "FileDetails": { | |
| "title": "FileDetails", | |
| "type": "object", | |
| "properties": { | |
| "path": { | |
| "type": "string", | |
| "description": "Path to the file in the storage system" | |
| }, | |
| "size": { | |
| "type": "number", | |
| "description": "Size of the file in bytes" | |
| }, | |
| "lastModified": { | |
| "type": "string", | |
| "format": "date-time", | |
| "description": "Timestamp when the file was last updated" | |
| } | |
| }, | |
| "required": [ | |
| "path", | |
| "size", | |
| "lastModified" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "MultipleFiles": { | |
| "title": "MultipleFiles", | |
| "type": "object", | |
| "properties": { | |
| "data": { | |
| "type": "array", | |
| "items": { | |
| "type": "object", | |
| "properties": { | |
| "path": { | |
| "type": "string", | |
| "description": "Path to the file in the storage system" | |
| }, | |
| "size": { | |
| "type": "number", | |
| "description": "Size of the file in bytes" | |
| }, | |
| "lastModified": { | |
| "type": "string", | |
| "format": "date-time", | |
| "description": "Timestamp when the file was last updated" | |
| } | |
| }, | |
| "required": [ | |
| "path", | |
| "size", | |
| "lastModified" | |
| ], | |
| "additionalProperties": false | |
| }, | |
| "description": "Array of files for the current page" | |
| } | |
| }, | |
| "required": [ | |
| "data" | |
| ], | |
| "additionalProperties": false | |
| } | |
| } | |
| }, | |
| "paths": { | |
| "/v1/scrape": { | |
| "post": { | |
| "operationId": "scrape", | |
| "summary": "Scrape a URL", | |
| "tags": [ | |
| "Browser Actions" | |
| ], | |
| "description": "Scrape a URL", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScrapeRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScrapeResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/screenshot": { | |
| "post": { | |
| "operationId": "screenshot", | |
| "summary": "Take a screenshot", | |
| "tags": [ | |
| "Browser Actions" | |
| ], | |
| "description": "Take a screenshot", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScreenshotRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScreenshotResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/pdf": { | |
| "post": { | |
| "operationId": "pdf", | |
| "summary": "Get the PDF content of a page", | |
| "tags": [ | |
| "Browser Actions" | |
| ], | |
| "description": "Get the PDF content of a page", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/PDFRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/PDFResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/health": { | |
| "get": { | |
| "operationId": "health", | |
| "summary": "Check if the server and browser are running", | |
| "tags": [ | |
| "Health" | |
| ], | |
| "description": "Check if the server and browser are running", | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions": { | |
| "post": { | |
| "operationId": "launch_browser_session", | |
| "summary": "Launch a browser session", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Launch a browser session", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/CreateSession" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SessionDetails" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "get": { | |
| "operationId": "get_sessions", | |
| "summary": "Get all sessions", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Get all sessions", | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/MultipleSessions" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{sessionId}": { | |
| "get": { | |
| "operationId": "get_session_details", | |
| "summary": "Get session details", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Get session details", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SessionDetails" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{sessionId}/context": { | |
| "get": { | |
| "operationId": "get_browser_context", | |
| "summary": "Get a browser context", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Get a browser context", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SessionContextSchema" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{sessionId}/release": { | |
| "post": { | |
| "operationId": "release_browser_session", | |
| "summary": "Release a browser session", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Release a browser session", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReleaseSession" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/release": { | |
| "post": { | |
| "operationId": "release_browser_sessions", | |
| "summary": "Release browser sessions", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Release browser sessions", | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ReleaseSession" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/debug": { | |
| "get": { | |
| "operationId": "get_session_debugger_stream", | |
| "summary": "Get session debugger view", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Returns an HTML page with a live debugger view of the session", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "boolean", | |
| "default": true | |
| }, | |
| "in": "query", | |
| "name": "showControls", | |
| "required": false, | |
| "description": "Show controls in the browser iframe" | |
| }, | |
| { | |
| "schema": { | |
| "type": "string", | |
| "enum": [ | |
| "dark", | |
| "light" | |
| ], | |
| "default": "dark" | |
| }, | |
| "in": "query", | |
| "name": "theme", | |
| "required": false, | |
| "description": "Theme of the browser iframe" | |
| }, | |
| { | |
| "schema": { | |
| "type": "boolean", | |
| "default": true | |
| }, | |
| "in": "query", | |
| "name": "interactive", | |
| "required": false, | |
| "description": "Make the browser iframe interactive" | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "pageId", | |
| "required": false, | |
| "description": "Page ID to connect to" | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "pageIndex", | |
| "required": false, | |
| "description": "Page index (or tab index) to connect to" | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "HTML content for the session streamer view", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SessionStreamResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/events": { | |
| "post": { | |
| "operationId": "receive_events", | |
| "summary": "Receive recorded events from the browser", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Receive recorded events from the browser", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/RecordedEvents" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{id}/live-details": { | |
| "get": { | |
| "operationId": "get_session_live_details", | |
| "summary": "Get session live details", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Returns the live state of the session, including pages, tabs, and browser state", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "id", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SessionLiveDetailsResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/scrape": { | |
| "post": { | |
| "operationId": "scrape_session", | |
| "summary": "Scrape Current Session", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Scrape Current Session", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScrapeRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScrapeResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/screenshot": { | |
| "post": { | |
| "operationId": "screenshot_session", | |
| "summary": "Take Screenshot of Current Session", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Take Screenshot of Current Session", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScreenshotRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ScreenshotResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/pdf": { | |
| "post": { | |
| "operationId": "pdf_session", | |
| "summary": "Generate PDF of Current Session", | |
| "tags": [ | |
| "Sessions" | |
| ], | |
| "description": "Generate PDF of Current Session", | |
| "requestBody": { | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/PDFRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/PDFResponse" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/devtools/inspector.html": { | |
| "get": { | |
| "operationId": "getDevtoolsUrl", | |
| "summary": "Get the URL for the DevTools inspector", | |
| "tags": [ | |
| "CDP" | |
| ], | |
| "description": "Get the URL for the DevTools inspector", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "pageId", | |
| "required": false | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{sessionId}/files": { | |
| "post": { | |
| "operationId": "upload_file", | |
| "summary": "Upload a file", | |
| "tags": [ | |
| "Files" | |
| ], | |
| "description": "Uploads a file to a session via `multipart/form-data` with a `file` field that accepts either binary data or a URL string to download from, and an optional `path` field for the file storage path.", | |
| "requestBody": { | |
| "content": { | |
| "multipart/form-data": { | |
| "schema": { | |
| "$ref": "#/components/schemas/FileUploadRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/FileDetails" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "get": { | |
| "operationId": "list_files", | |
| "summary": "List files", | |
| "tags": [ | |
| "Files" | |
| ], | |
| "description": "List all files from the session in descending order.", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/MultipleFiles" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "delete": { | |
| "operationId": "delete_all_files", | |
| "summary": "Delete all files", | |
| "tags": [ | |
| "Files" | |
| ], | |
| "description": "Delete all files from a session", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "204": { | |
| "description": "No content" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{sessionId}/files/{*}": { | |
| "get": { | |
| "operationId": "download_file", | |
| "summary": "Download a file", | |
| "tags": [ | |
| "Files" | |
| ], | |
| "description": "Download a file from a session", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "*", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| }, | |
| "delete": { | |
| "operationId": "delete_file", | |
| "summary": "Delete a file", | |
| "tags": [ | |
| "Files" | |
| ], | |
| "description": "Delete a file from a session", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "*", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "204": { | |
| "description": "No content" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/sessions/{sessionId}/files.zip": { | |
| "get": { | |
| "operationId": "download_archive", | |
| "summary": "Download archive", | |
| "tags": [ | |
| "Files" | |
| ], | |
| "description": "Download all files from the session as a zip archive.", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "path", | |
| "name": "sessionId", | |
| "required": true | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/logs/query": { | |
| "get": { | |
| "tags": [ | |
| "Logs" | |
| ], | |
| "description": "Query browser logs from local storage", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "in": "query", | |
| "name": "startTime", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "in": "query", | |
| "name": "endTime", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "eventTypes", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "pageId", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "targetType", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "integer", | |
| "minimum": 1, | |
| "maximum": 1000, | |
| "default": 100 | |
| }, | |
| "in": "query", | |
| "name": "limit", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "default": 0 | |
| }, | |
| "in": "query", | |
| "name": "offset", | |
| "required": false | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/logs/stats": { | |
| "get": { | |
| "tags": [ | |
| "Logs" | |
| ], | |
| "description": "Get statistics about stored browser logs", | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/logs/stream": { | |
| "get": { | |
| "tags": [ | |
| "Logs" | |
| ], | |
| "description": "Stream browser logs in real-time using SSE", | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/logs/export": { | |
| "post": { | |
| "tags": [ | |
| "Logs" | |
| ], | |
| "description": "Export browser logs to Parquet format", | |
| "parameters": [ | |
| { | |
| "schema": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "in": "query", | |
| "name": "startTime", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "in": "query", | |
| "name": "endTime", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "eventTypes", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "pageId", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "in": "query", | |
| "name": "targetType", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "integer", | |
| "minimum": 1, | |
| "maximum": 1000, | |
| "default": 100 | |
| }, | |
| "in": "query", | |
| "name": "limit", | |
| "required": false | |
| }, | |
| { | |
| "schema": { | |
| "type": "integer", | |
| "minimum": 0, | |
| "default": 0 | |
| }, | |
| "in": "query", | |
| "name": "offset", | |
| "required": false | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| }, | |
| "/v1/logs/": { | |
| "delete": { | |
| "tags": [ | |
| "Logs" | |
| ], | |
| "description": "Clear all browser logs from storage", | |
| "responses": { | |
| "200": { | |
| "description": "Default Response" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "servers": [ | |
| { | |
| "url": "http://0.0.0.0:3000/", | |
| "description": "Local server" | |
| }, | |
| { | |
| "url": "http://0.0.0.0:3000", | |
| "description": "Local server from env variables" | |
| } | |
| ] | |
| } |