Créer une session de navigateur
Lancer une nouvelle session de navigateur cloud dans un environnement isolé.
curl --request POST \
--url https://api.firecrawl.dev/v2/browser \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ttl": 300,
"activityTtl": 1805,
"streamWebView": true
}
'import requests
url = "https://api.firecrawl.dev/v2/browser"
payload = {
"ttl": 300,
"activityTtl": 1805,
"streamWebView": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ttl: 300, activityTtl: 1805, streamWebView: true})
};
fetch('https://api.firecrawl.dev/v2/browser', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.firecrawl.dev/v2/browser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ttl' => 300,
'activityTtl' => 1805,
'streamWebView' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.firecrawl.dev/v2/browser"
payload := strings.NewReader("{\n \"ttl\": 300,\n \"activityTtl\": 1805,\n \"streamWebView\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.firecrawl.dev/v2/browser")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ttl\": 300,\n \"activityTtl\": 1805,\n \"streamWebView\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firecrawl.dev/v2/browser")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ttl\": 300,\n \"activityTtl\": 1805,\n \"streamWebView\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"id": "<string>",
"cdpUrl": "<string>",
"liveViewUrl": "<string>",
"interactiveLiveViewUrl": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}{
"error": "Payment required to access this resource."
}En-têtes
| En-tête | Valeur |
|---|---|
Authorization | Bearer <API_KEY> |
Content-Type | application/json |
Corps de la requête
| Paramètre | Type | Obligatoire | Valeur par défaut | Description |
|---|---|---|---|---|
ttl | number | Non | 300 | Durée de vie totale de la session en secondes (30-3600) |
activityTtl | number | Non | 60 | Nombre de secondes d’inactivité avant la destruction de la session (10-3600) |
profile | object | Non | — | Active un stockage persistant d’une session à l’autre. Voir ci-dessous. |
profile.name | string | Oui* | — | Nom du profil (1-128 caractères). Les sessions portant le même nom partagent le stockage. |
profile.saveChanges | boolean | Non | true | Lorsque true, l’état du navigateur est enregistré dans le profil à la fermeture. Définissez sur false pour charger les données existantes sans écriture. Un seul enregistreur est autorisé à la fois. |
Réponse
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si la session a bien été créée |
id | string | Identifiant unique de la session |
cdpUrl | string | URL WebSocket pour les connexions CDP |
liveViewUrl | string | URL pour afficher la session en temps réel |
interactiveLiveViewUrl | string | URL pour interagir avec la session en temps réel (clics, saisie, défilement) |
expiresAt | string | Date d’expiration de la session en fonction du TTL |
Exemple de requête
curl -X POST "https://api.firecrawl.dev/v2/browser" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ttl": 120
}'
Exemple de réponse
{
"success": true,
"id": "550e8400-e29b-41d4-a716-446655440000",
"cdpUrl": "wss://cdp-proxy.firecrawl.dev/cdp/550e8400-e29b-41d4-a716-446655440000",
"liveViewUrl": "https://liveview.firecrawl.dev/550e8400-e29b-41d4-a716-446655440000",
"interactiveLiveViewUrl": "https://liveview.firecrawl.dev/550e8400-e29b-41d4-a716-446655440000?interactive=true"
}
Autorisations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Corps
Durée de vie totale de la session de navigateur, en secondes
30 <= x <= 3600Temps en secondes avant la destruction de la session pour cause d’inactivité
10 <= x <= 3600Indique s’il faut diffuser un flux en direct du navigateur
Activez la persistance du stockage entre les sessions du navigateur. Les données enregistrées lors d’une session peuvent être rechargées dans une session ultérieure en utilisant le même nom.
Show child attributes
Show child attributes
Réponse
Session de navigateur créée avec succès
Identifiant unique de la session
URL WebSocket pour accéder au protocole Chrome DevTools
URL permettant d’afficher la session de navigateur en temps réel
URL permettant d’interagir en temps réel avec la session du navigateur (clic, saisie, défilement)
Date et heure d’expiration de la session en fonction du TTL
curl --request POST \
--url https://api.firecrawl.dev/v2/browser \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ttl": 300,
"activityTtl": 1805,
"streamWebView": true
}
'import requests
url = "https://api.firecrawl.dev/v2/browser"
payload = {
"ttl": 300,
"activityTtl": 1805,
"streamWebView": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ttl: 300, activityTtl: 1805, streamWebView: true})
};
fetch('https://api.firecrawl.dev/v2/browser', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.firecrawl.dev/v2/browser",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ttl' => 300,
'activityTtl' => 1805,
'streamWebView' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.firecrawl.dev/v2/browser"
payload := strings.NewReader("{\n \"ttl\": 300,\n \"activityTtl\": 1805,\n \"streamWebView\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.firecrawl.dev/v2/browser")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ttl\": 300,\n \"activityTtl\": 1805,\n \"streamWebView\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firecrawl.dev/v2/browser")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ttl\": 300,\n \"activityTtl\": 1805,\n \"streamWebView\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"id": "<string>",
"cdpUrl": "<string>",
"liveViewUrl": "<string>",
"interactiveLiveViewUrl": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
}{
"error": "Payment required to access this resource."
}