Référence de l'API v8
Lance une session, partage-la, suis son état, termine-la et consulte ton utilisation.
Envoie des requêtes HTTPS authentifiées pour lancer des sessions. Une session est acceptée immédiatement et démarre en arrière-plan : suis son état jusqu'à ce qu'elle tourne, partage son lien avec la personne qui doit la voir, puis termine-la quand tu as fini.
URL de base
Tous les chemins de cette page sont relatifs à cette adresse.
https://api.browser.lol/v8Authentification
Transmets ta clé API comme jeton Bearer dans l'en-tête Authorization.
Authorization: Bearer YOUR_API_KEYRéponses
Les points d'accès répondent avec HTTP 200 et un corps JSON dont le champ status indique l'issue de la requête. Décide en fonction de status, pas du code HTTP, et affiche message quand il ne vaut pas ok. Seules les vérifications d'authentification et de limitation du débit peuvent répondre avec un autre code HTTP.
ok- La requête a abouti.
denied- La requête a été refusée, par exemple à cause d'une clé invalide, d'une session inconnue ou d'un champ invalide.
upgrade- Ton offre n'inclut pas ce que demande la requête, ou l'une de ses limites est atteinte. Une offre qui l'inclut règle le problème.
insecure- Une vérification de sécurité ou de débit a échoué.
reasonindique laquelle. error- Un problème est survenu de notre côté. Réessaie plus tard.
Exemples
{"status": "denied", "message": "Unsupported VPN location"}
{"status": "upgrade", "message": "..."}
{"status": "insecure", "reason": "rate_limited", "message": "..."}
{"status": "error", "message": "..."}Navigateurs et emplacements
/v8/imageListe les navigateurs que tu peux lancer et les emplacements de sortie que tu peux choisir. Ce point d'accès ne demande pas de clé API.
images[].idest la valeur debrowserau lancement d'une session ;enabledindique si le navigateur peut démarrer maintenant.vpnLocations[]liste chaque pays parcodeavec ses villes danscities[].code. Les deux codes fonctionnent pourcountry.residential.countriesliste les pays qu'une connexion résidentielle peut utiliser ;nullsignifie tous les pays.
Exemple de requête
curl https://api.browser.lol/v8/imageRéponse (abrégée)
{
"status": "ok",
"images": [
{ "id": "chrome", "name": "Chrome", "enabled": true, ... }
],
"vpnLocations": [
{
"code": "uk",
"name": "United Kingdom",
"default": "uk-lon",
"cities": [{ "code": "uk-lon", "location": "London" }, ...]
}
],
"residential": { "configured": true, "countries": null }
}Lancer une session
/v8/vm/createAccepte une nouvelle session et renvoie aussitôt son identifiant. La session est préparée en arrière-plan.
Champs JSON de la requête
browserobligatoire- Identifiant du navigateur issu de
GET /image. urlfacultatif- Page à ouvrir en premier, 10 000 caractères au maximum.
languagefacultatif- Langue de l'interface du navigateur, par exemple
enoude. Par défaut, le réglage de ton compte, sinonen. layoutfacultatif- Disposition du clavier, par exemple
usoude. Par défaut, le réglage de ton compte, sinonus. countryfacultatif- Emplacement de sortie : un code pays comme
us,deouuk, ou un code ville commeus-dal, tels queGET /imageles liste. Avecauto, le service choisit. Nécessite l'accès aux emplacements. egressfacultatif- Indique
residentialpour naviguer via une connexion résidentielle. Nécessite des données résidentielles dans ton offre ; seule la partie pays decountryest utilisée. shareLanguagefacultatif- Langue de la visionneuse dans le lien de partage :
en,de,fr,es,it,ptouja. Par défauten. callbackUrlfacultatif- Adresse HTTP ou HTTPS que la visionneuse ouvre quand quelqu'un quitte la session ou son écran de fin, 2 000 caractères au maximum. Sans elle, la visionneuse revient à la page de lancement.
idempotencyKeyfacultatif- Ta propre clé de 1 à 128 caractères. Si tu renvoies la même requête avec la même clé, tu reçois la première réponse réussie au lieu de lancer une deuxième session.
Exemple de requête
curl -X POST https://api.browser.lol/v8/vm/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"browser": "chrome", "url": "https://example.com", "country": "uk"}'Réponse
{
"status": "ok",
"vmId": "brl-v-v7-abc123...",
"shareUrl": "https://browser.lol/en/s?LINK_ID",
"shareUrlPath": "/en/s?LINK_ID",
"quota": {
"running_session_limit": 2,
"running_sessions_used": 1,
"running_sessions_remaining": 1,
"cycle_session_limit": null,
"cycle_sessions_used": 42,
"cycle_sessions_remaining": null,
"cycle_start": "2026-10-01"
}
}starting et passe à running quand elle est prête, ou à error si elle ne peut pas démarrer. shareUrl est présent quand le lien de partage a pu être créé.État d'une session
/v8/vm/data?id=VM_IDRenvoie tes sessions du dernier mois, de la plus récente à la plus ancienne. Passe le vmId reçu au lancement comme id pour n'obtenir que cette session.
Exemple de requête
curl "https://api.browser.lol/v8/vm/data?id=VM_ID" \
-H "Authorization: Bearer YOUR_API_KEY"Réponse (abrégée)
{
"status": "ok",
"data": [
{
"id": "brl-v-v7-*******...abc123",
"status": "running",
"name": "Chrome",
"created": "2026-10-01T12:00:00.000Z",
...
}
]
}data[0].status vaille running. error signifie que la session n'a pas pu démarrer ; stopping, suspended et deleted signifient qu'elle est terminée. Une liste data vide signifie que cette session n'existe pas. L<code>id</code> de la réponse est partiellement masqué.Terminer une session
/v8/vm/removeTermine une session. Passe son vmId comme id. Une session déjà terminée répond aussi ok.
Exemple de requête
curl -X POST https://api.browser.lol/v8/vm/remove \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id": "VM_ID"}'Réponse
{"status": "ok"}Compte et utilisation
/v8/user/apiRenvoie ton adresse de contact, l'état de l'accès programmatique et ton utilisation des sessions et des données résidentielles.
Exemple de requête
curl https://api.browser.lol/v8/user/api \
-H "Authorization: Bearer YOUR_API_KEY"Réponse
{
"status": "ok",
"contact": "[email protected]",
"feature_programmatic_access": true,
"has_plan": true,
"cycle_start": "2026-10-01",
"cycle_session_limit": null,
"cycle_sessions_used": 42,
"cycle_sessions_remaining": null,
"running_session_limit": 2,
"running_sessions_used": 1,
"running_sessions_remaining": 1,
"residential_cycle_mb_limit": 6000,
"residential_bytes_used_cycle": 104857600,
"pools": [
{
"subscription_id": "brl-s-v7-abc123...",
"plan_id": "browser-premium",
"plan_name": "Premium",
"cycle_start": "2026-10-01",
"cycle_session_limit": null,
"cycle_sessions_used": 42,
"cycle_sessions_remaining": null,
"running_session_limit": 2,
"running_sessions_used": 1,
"running_sessions_remaining": 1,
"residential_cycle_mb_limit": 6000,
"residential_bytes_used_cycle": 104857600
}
]
}Champs d'utilisation
cycle_session_limit- Nombre maximal de sessions dans le cycle en cours, ou
nullsans plafond. cycle_sessions_used- Sessions lancées dans le cycle en cours.
cycle_sessions_remaining- Sessions restantes dans le cycle en cours, ou
nullsans plafond. running_session_limit- Nombre maximal de sessions simultanées.
running_sessions_used- Sessions actuellement comptées comme en cours.
running_sessions_remaining- Places restantes sous cette limite. D'autres vérifications s'appliquent toujours au lancement.
cycle_start- Date de début du cycle en cours (AAAA-MM-JJ).
residential_cycle_mb_limit- Données résidentielles incluses par cycle, en Mo, ou
nullquand aucun quota ne s'applique. residential_bytes_used_cycle- Données résidentielles utilisées dans le cycle en cours, en octets.
pools- Les mêmes compteurs pour chaque abonnement derrière les totaux, avec
subscription_id,plan_idetplan_name.
Utilisation seule
/v8/user/quotaRenvoie les mêmes champs d'utilisation que GET /user/api, sans l'adresse de contact ni l'indicateur d'accès programmatique.
Exemple de requête
curl https://api.browser.lol/v8/user/quota \
-H "Authorization: Bearer YOUR_API_KEY"Réponse
{
"status": "ok",
"has_plan": true,
"cycle_start": "2026-10-01",
"cycle_session_limit": null,
"cycle_sessions_used": 42,
"cycle_sessions_remaining": null,
"running_session_limit": 2,
"running_sessions_used": 1,
"running_sessions_remaining": 1,
"residential_cycle_mb_limit": 6000,
"residential_bytes_used_cycle": 104857600,
"pools": [
{
"subscription_id": "brl-s-v7-abc123...",
"plan_id": "browser-premium",
"plan_name": "Premium",
"cycle_start": "2026-10-01",
"cycle_session_limit": null,
"cycle_sessions_used": 42,
"cycle_sessions_remaining": null,
"running_session_limit": 2,
"running_sessions_used": 1,
"running_sessions_remaining": 1,
"residential_cycle_mb_limit": 6000,
"residential_bytes_used_cycle": 104857600
}
]
}