@@ -168,6 +168,22 @@ export class Browsers extends APIResource {
168168 } ) ;
169169 }
170170
171+ /**
172+ * Sends an HTTP request through Chrome's HTTP request stack, inheriting the
173+ * browser's TLS fingerprint, cookies, proxy configuration, and headers. Returns a
174+ * structured JSON response with status, headers, body, and timing.
175+ *
176+ * @example
177+ * ```ts
178+ * const response = await client.browsers.curl('id', {
179+ * url: 'url',
180+ * });
181+ * ```
182+ */
183+ curl ( id : string , body : BrowserCurlParams , options ?: RequestOptions ) : APIPromise < BrowserCurlResponse > {
184+ return this . _client . post ( path `/browsers/${ id } /curl` , { body, ...options } ) ;
185+ }
186+
171187 /**
172188 * Delete a browser session by ID
173189 *
@@ -706,6 +722,31 @@ export interface BrowserListResponse {
706722 viewport ?: Shared . BrowserViewport ;
707723}
708724
725+ /**
726+ * Structured response from the browser curl request.
727+ */
728+ export interface BrowserCurlResponse {
729+ /**
730+ * Response body (UTF-8 string or base64 depending on request).
731+ */
732+ body : string ;
733+
734+ /**
735+ * Total request duration in milliseconds.
736+ */
737+ duration_ms : number ;
738+
739+ /**
740+ * Response headers (multi-value).
741+ */
742+ headers : { [ key : string ] : Array < string > } ;
743+
744+ /**
745+ * HTTP status code from target.
746+ */
747+ status : number ;
748+ }
749+
709750export interface BrowserCreateParams {
710751 /**
711752 * List of browser extensions to load into the session. Provide each by id or name.
@@ -859,6 +900,38 @@ export interface BrowserDeleteParams {
859900 persistent_id : string ;
860901}
861902
903+ export interface BrowserCurlParams {
904+ /**
905+ * Target URL (must be http or https).
906+ */
907+ url : string ;
908+
909+ /**
910+ * Request body (for POST/PUT/PATCH).
911+ */
912+ body ?: string ;
913+
914+ /**
915+ * Custom headers merged with browser defaults.
916+ */
917+ headers ?: { [ key : string ] : string } ;
918+
919+ /**
920+ * HTTP method.
921+ */
922+ method ?: 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' ;
923+
924+ /**
925+ * Encoding for the response body. Use base64 for binary content.
926+ */
927+ response_encoding ?: 'utf8' | 'base64' ;
928+
929+ /**
930+ * Request timeout in milliseconds.
931+ */
932+ timeout_ms ?: number ;
933+ }
934+
862935export interface BrowserLoadExtensionsParams {
863936 /**
864937 * List of extensions to upload and activate
@@ -898,12 +971,14 @@ export declare namespace Browsers {
898971 type BrowserRetrieveResponse as BrowserRetrieveResponse ,
899972 type BrowserUpdateResponse as BrowserUpdateResponse ,
900973 type BrowserListResponse as BrowserListResponse ,
974+ type BrowserCurlResponse as BrowserCurlResponse ,
901975 type BrowserListResponsesOffsetPagination as BrowserListResponsesOffsetPagination ,
902976 type BrowserCreateParams as BrowserCreateParams ,
903977 type BrowserRetrieveParams as BrowserRetrieveParams ,
904978 type BrowserUpdateParams as BrowserUpdateParams ,
905979 type BrowserListParams as BrowserListParams ,
906980 type BrowserDeleteParams as BrowserDeleteParams ,
981+ type BrowserCurlParams as BrowserCurlParams ,
907982 type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams ,
908983 } ;
909984
0 commit comments