Playground
Le Playground (barre latérale > Playground) vous permet d'exécuter des requêtes API en direct avec votre véritable clé sans écrire de code. C'est le moyen le plus rapide de tester un nouveau site cible, de déboguer une réponse complexe ou de comparer Auto, Single, Proxy et Browser côte à côte.
Ouvrez-le à l'adresse foura.ai/dashboard#playground.
Ce qu'il fait
Un formulaire. Quatre moteurs. Du trafic réel.
- Auto : récupération intelligente. Vous transmettez une URL ainsi qu'une règle
validateet FourA choisit la méthode la moins coûteuse qui fonctionne. - Single : récupération HTTP directe avec des caractéristiques réseau réalistes similaires à celles d'un navigateur
- Proxy : récupération via proxy tournant géré, avec ciblage géographique optionnel par pays
- Browser : ouvre l'URL dans une instance de navigateur Chrome pour les sites avec rendu JS
Les requêtes s'exécutent avec la clé API que vous sélectionnez en haut de la page. L'utilisation est décomptée du quota de cette clé exactement comme un appel en production, veillez donc à ne pas épuiser votre forfait lors des tests.
Choisir une clé
Le menu déroulant des clés API liste toutes les clés actives utilisables : les vôtres sous My Keys, puis un groupe par organisation à laquelle vous appartenez. Tout membre peut utiliser la clé d'une organisation, et une requête effectuée avec celle-ci est décomptée du forfait du propriétaire de l'organisation. Choisissez celle sur laquelle vous souhaitez facturer la requête. Si vous ne possédez pas encore de clé active, un message intégré vous renvoie vers la page API Keys pour en créer une.
Choisir un mode
Une ligne supérieure Mode permet de basculer entre Auto et les moteurs manuels. Lorsque Auto est sélectionné, le formulaire affiche l'interface minimale d'Auto (URL avec validate et quelques paramètres). Les deux lignes restent toujours affichées : Mode : Auto, et Product : Single, Proxy, Browser. La sélection de l'un désélectionne l'autre. Changer de produit modifie les champs visibles ainsi que le moteur ciblé par la requête. La sélection actuelle est conservée lors du rechargement de la page.
| Mode | Quand l'utiliser |
|---|---|
| Auto | Nouvelle cible ou site à protection mixte. Auto choisit le chemin le moins coûteux et mémorise ce qui fonctionne. |
| Single | Récupération HTTP rapide. Meilleur premier choix pour un hôte connu. |
| Proxy | Même récupération avec rotation automatique de proxy. Définissez exitCountries lorsque vous avez besoin d'un pays visible par la cible. |
| Browser | Charge la page dans une instance de navigateur Chrome. À utiliser lorsque les données n'apparaissent qu'après l'exécution de JavaScript. |
Construire la requête
Ligne URL
La ligne supérieure contient la méthode HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), l'URL cible et le bouton Send. Single, Proxy et Auto prennent en charge toutes les méthodes. Browser ignore la méthode (Chrome émet toujours GET pour la navigation) ainsi que le corps de la requête.
Onglets de requête
Sous la ligne de l'URL, cinq onglets vous permettent de renseigner tous les autres paramètres :
| Onglet | Ce qu'il contrôle |
|---|---|
| UI | Champs de formulaire pour les timeouts, redirections, flags, proxy, options spécifiques au navigateur et règles de validation |
| Body | Corps de texte libre pour les requêtes POST / PUT / PATCH |
| Headers | Headers de requête personnalisés sous forme de paires clé-valeur |
| Cookies | Cookies à envoyer avec la requête |
| Raw | Le payload JSON exact qui sera envoyé, sous forme d'aperçu en lecture seule avec Copier le JSON, et le reproducteur curl en dessous |
Toute modification apportée dans UI / Body / Headers / Cookies est répercutée dans Raw. Vous ne pouvez pas écrire dans Raw : modifiez la requête sur les autres onglets. Un point rouge apparaît sur tout onglet ou section réductible contenant une valeur différente des valeurs par défaut du moteur, ce qui vous permet de repérer d'un coup d'œil vos personnalisations.
Sections du panneau UI
L'onglet UI regroupe les paramètres en sections réductibles. Les champs vides reprennent la valeur par défaut du schéma du moteur. Les sections qui ne s'appliquent pas au Mode actuel sont masquées.
- Timeouts :
timeout_ms,connect_timeout_ms,accept_timeout_ms,server_response_timeout_ms,dns_cache_timeout_sec. Auto expose uniquementtimeout_ms(le budget total). - Redirects : activez et définissez
followRedirects(0-20). Single et Proxy. Browser gère les redirections de manière autonome. - Flags :
unblockerpour Single, Proxy et Browser (unblockersur Browser effectue les vérifications demandées par une page) ;tryJsonDataetreturnBufferpour Single et Proxy. Auto expose plutôtforceProxyetreturnSession. - Proxy : choisissez un ID de proxy spécifique pour Single ou Browser, ou configurez
maxTries, le timeout externe de Proxy,exitCountries,exitClassetignoreProxiespour le moteur Proxy. Auto expose égalementignoreProxies. Le sélecteurexitClassa trois états : non défini n'envoie aucun champ,standardindique que la requête ne doit jamais escalader, etpremiumlui permet d'escalader vers une sortie premium lorsque le pool standard est en difficulté. Un état non défini etstandardcorrespondent à des requêtes différentes, laissez donc le sélecteur vide à moins de vouloir l'une des deux options. Le mode Premium nécessite un forfait incluant des sorties premium : voir exitClass. - Browser profile : trois listes déroulantes en cascade, os, browser et version, listant ce que FourA peut réellement présenter. Elles apparaissent en mode Single et Proxy. Laissez-les vides pour utiliser la version la plus récente de Chrome. Chaque sélection restreint les deux autres, de sorte qu'une combinaison invalide n'apparaît jamais. Cette section requiert l'activation de
unblocker: s'il est désactivé, aucun header de navigateur n'est envoyé, le profil ne serait que partiellement appliqué et l'API rejettera la requête. - Browser : options réservées au navigateur telles que
checkStatusetcheckText. - Validate : status accept et status fail prennent des codes d'état séparés par des virgules (
validate.status), et body accept et body fail prennent des sous-chaînes avec des alternatives séparées par|(validate.data). Disponible pour Single, Proxy et Auto. Browser utilise plutôtcheckStatusetcheckText. Le formulaire ne comporte aucun champ pour les règles de headers (validate.headers).
Dès qu'une exécution renvoie un proxy fonctionnel, une section Working proxies apparaît à la fin de l'onglet de l'UI. Elle liste jusqu'à 20 identifiants de proxy, du plus récent au plus ancien, chacun avec son pays de sortie et son horodatage. use en insère un dans le champ proxy de Single ou Browser (le moteur Proxy trouvant les siens de manière autonome), et × le supprime de la liste.
Exit Country Scoping (Proxy Mode)
Le champ exitCountries du mode Proxy accepte une liste de codes pays à deux lettres séparés par des virgules, visibles par la cible (CZ, GB). Les valeurs sont nettoyées des espaces, converties en majuscules et dédupliquées lors de la soumission. La sélection repose sur une allowlist stricte : les proxys dont le pays de sortie est inconnu sont exclus et la requête ne bascule jamais vers un autre pays. Si le pool actuel ne contient aucune correspondance, la réponse renvoie code: "no_eligible_proxy" avec le périmètre demandé renvoyé dans details.exitCountries. Conservez le périmètre et réessayez plus tard.
Lorsqu'un appel de proxy réussit avec un filtrage par pays, le bandeau de réponse affiche exit <CODE> à côté de l'identifiant du proxy afin que vous puissiez vérifier que le pays utilisé correspond à votre demande.
Toolbar Reset
Le bouton Reset de la barre d'outils (à côté de History et Saved) réinitialise le playground à un état vierge. Comme cette action est destructive, elle ouvre une boîte de dialogue de confirmation détaillant exactement ce qui sera effacé : les trois formulaires de produits (Single, Proxy, Browser), tous les cookies enregistrés dans le jar, tous les proxys conservés ainsi que la réponse actuelle. Les préconfigurations enregistrées et la clé API sélectionnée sont conservées. Cliquez sur Reset everything pour confirmer; toute autre action annule.
Sending and Canceling
Cliquez sur Send pour lancer la requête. La colonne de droite passe à un état de chargement avec un indicateur animé et un bouton Cancel pendant que l'appel est en cours. Cliquez sur Cancel (ou appuyez à nouveau sur le bouton sur mobile) pour interrompre. Une requête annulée restaure l'état d'attente initial avec le message "Request canceled." au lieu d'afficher une erreur.
La carte de réponse affiche le résultat dès que la requête se termine (ou échoue). Les exécutions Auto peuvent prendre plus de temps que les moteurs manuels, car l'algorithme peut gravir plusieurs paliers sur une cible froide.
Reading the Response
La colonne de réponse reproduit la structure de la requête avec ses propres onglets :
| Tab | What it shows |
|---|---|
| Body | Corps analysé. Bascule entre les vues JSON, HTML et Text selon le contenu reçu. |
| Headers | Headers de réponse, un par ligne. |
| Cookies | Cookies renvoyés par la cible, en vue analysée (groupée par hôte) et brute (texte Set-Cookie). La vue analysée affiche un badge HO sur les cookies host-only; les cookies de domaine ne comportent pas de badge. |
| Raw | L'enveloppe JSON complète renvoyée par l'API. |
La barre d'outils de réponse propose Copy et Download pour l'intégralité de la réponse, ainsi que Find in response (Ctrl+K ou Cmd+K) pour effectuer une recherche dans l'onglet ouvert, avec Entrée et Maj+Entrée pour parcourir les résultats. Body, Headers et Cookies disposent également de leurs propres boutons Copy et Download dédiés à chaque onglet.
Un bandeau de métadonnées au-dessus des onglets affiche le statut HTTP en amont, la durée totale, l'identifiant du proxy ayant traité l'appel et (pour un appel Proxy ciblé) le code à deux lettres exit <CODE>. Pour les exécutions Auto, le bandeau indique également quel échelon a fourni la réponse, le nombre de sous-tentatives effectuées et les crédits consommés.
Ce que l'appel a nécessité
Une phrase située sous le bandeau de métadonnées explique textuellement ce qui a pris en charge la page. Pour une exécution Auto, elle nomme l'échelon (une session que FourA possédait déjà pour l'hôte, une requête simple, un proxy tournant, un vrai navigateur, ou un navigateur d'abord puis un rejeu économique), indique si un challenge a été résolu, le nombre de tentatives nécessaires et le coût associé.
Lorsqu'une limite de votre forfait a bloqué l'appel, la phrase le signale en premier: "Interrompu par votre forfait, pas par le site", suivi de la limite concernée (requêtes de navigateur du jour épuisées, trop de requêtes en cours, crédits de la période consommés, etc.) et d'un lien vers Usage & Limits. La ligne est construite à partir du code X-FourA-Limit renvoyé par l'API, de sorte qu'une page complexe qui échoue vous indique si le site ou votre forfait en est la cause.
Transférer des valeurs entre les exécutions
Après toute exécution ayant retourné des données de session réutilisables, un petit contrôle Carry dans la barre d'outils de la réponse montre ce qui est disponible:
- Les exécutions Auto proposent le triplet complet
session(proxy,cookies,userAgent). - Les exécutions Browser proposent le
userAgentde réponse, ainsi que l'identifiant de proxy si un proxy a été utilisé. - Les exécutions Proxy proposent l'identifiant de proxy retourné, le profil de navigateur lorsque la rotation en a sélectionné un que vous n'aviez pas demandé, et le
exitClassayant servi l'appel, afin qu'une réponse premium puisse être renvoyée directement.
Cliquez sur Carry et choisissez où appliquer chaque valeur en un clic: userAgent devient un header User-Agent sur Single ou Proxy, et l'identifiant de proxy s'insère dans le champ proxy sur Single ou Browser. Les champs qui reçoivent une valeur transférée affichent le point rouge "modifié" pour que vous puissiez voir ce qui a changé.
Un profil de navigateur transféré remplit les trois menus déroulants os, browser et version puis active unblocker, selon la même règle que lorsque vous choisissez un profil manuellement. Il n'est proposé qu'une fois le catalogue de profils chargé, puisque le formulaire se compose de trois menus déroulants et non d'un champ d'identifiant.
Le profil est la seule valeur indiquant que la requête qui a fonctionné n'était pas la requête que vous avez saisie: Proxy ne signale profile que lorsqu'il a basculé vers une famille de navigateurs que vous n'aviez pas demandée. Rejouez sans cela et vous rejouerez la version qui a échoué. Consultez Why a Proxy Request Ran Out of Tries.
Passer en plein écran
L'icône d'agrandissement sur la barre d'outils de la réponse extrait la carte de réponse de la vue fractionnée pour l'afficher dans une superposition en plein écran. Utilisez-la pour les arborescences JSON profondes, les longues listes de Set-Cookie ou les corps HTML volumineux lorsque la demi-colonne devient trop étroite. Le défilement de la page elle-même est désactivé tant que la superposition reste ouverte. Cliquez à nouveau sur l'icône (ou appuyez sur Échap) pour réduire.
Le reproducteur curl
Dans l'onglet Raw de la requête, sous le JSON, un bloc curl affiche l'équivalent exact en ligne de commande de la requête que vous construisez, avec un bouton Copy curl. Copiez-le pour reproduire la requête depuis un terminal, la partager avec un collègue ou la coller dans un rapport de bug.
Pour les clés révélables, un bouton Reveal key situé à côté de l'extrait insère la clé réelle en texte brut directement dans le curl pour que vous puissiez copier et exécuter la commande telle quelle. Cliquez à nouveau pour la masquer. Les anciennes clés (créées avant le déploiement de la fonctionnalité) conservent un placeholder PASTE_PLAINTEXT_FOR_<key-name>; régénérez la clé depuis la page API Keys pour la rendre révélable.
La révélation est consignée dans les logs d'audit sur le serveur à chaque fois, et la clé en clair ne réside en mémoire que pendant la session de page en cours.
Sauvegarder des préconfigurations
Si vous devez reconfigurer la même cible à plusieurs reprises, enregistrez-la. Cliquez sur Save sur la ligne des onglets de requête pour stocker la configuration actuelle sous la forme d'une préconfiguration nommée.
Ouvrez Saved dans la barre d'outils pour voir vos préconfigurations. Cliquez sur Load pour remplir le formulaire, ou sur Delete pour en supprimer une.
Une requête ouverte depuis l'onglet DevTools de l'extension FourA Chrome se charge avec la clé de l'extension sélectionnée si cette clé est présente dans votre compte, et la page l'indique. Sinon, elle vous demande de choisir une clé. Une requête rejouée qui ne définit pas unblocker s'exécute avec cette option activée, comme le fait l'API.
| Champ de préconfiguration | Données stockées |
|---|---|
| Name | Un libellé court (jusqu'à 100 caractères) |
| Description | Des notes facultatives (jusqu'à 500 caractères) |
| Endpoint | Le moteur ciblé par la préconfiguration (auto / single / proxy / browser) |
| Config | Le payload complet de la requête, incluant les champs de l'UI, les headers, les cookies et le body |
Les préconfigurations sont limitées à votre compte utilisateur et ne sont pas partagées avec les membres de votre équipe.
Rejouer depuis l'historique
Chaque requête que vous exécutez est journalisée. Ouvrez History dans la barre d'outils pour consulter vos 20 dernières exécutions, triées de la plus récente à la plus ancienne.
Chaque ligne affiche l'endpoint, l'URL cible, le statut et l'heure. Cliquez sur Replay sur n'importe quelle ligne pour charger cette requête dans le formulaire, puis sur Send pour l'exécuter à nouveau.
L'historique est automatiquement limité à votre compte: vous ne voyez que vos propres exécutions.
Ouvrir depuis l'activité
La boîte de dialogue des détails du Activity Log comporte un bouton Open in Playground. Cliquez dessus et le Playground se charge avec la requête archivée et la réponse archivée. Le formulaire se remplit à partir du payload stocké, et la carte de réponse montre ce que l'API a renvoyé à cet instant avec un badge "archived" sur le bandeau méta du proxy ("archived
À partir de là, vous pouvez modifier un paramètre et cliquer sur Send pour exécuter une nouvelle requête sur l'API en direct, ou simplement inspecter le payload archivé sans le réexécuter. Les payloads sont conservés pendant 24 heures; les lignes d'activité plus anciennes n'auront donc pas de réponse rechargeable.
Conseils
- Commencez dans le Playground avant d'écrire du code pour une nouvelle cible. Avec le mode Auto activé, vous saurez en quelques secondes si un simple fetch économique suffit ou si le site impose une résolution par navigateur.
- Pour les cibles géo-bloquées, exécutez un appel Proxy avec
exitCountriesdéfini, puis transférez l'identifiant de proxy renvoyé dans un appel Browser afin que le rendu JavaScript s'effectue via le même point de sortie. - Enregistrez un preset pour chaque cible que vous scrapez régulièrement. Rejouer un preset enregistré se fait en un clic ; reconstruire la request de mémoire prend plus de temps.
- Utilisez l'onglet Cookies pour déboguer le scraping basé sur les sessions. La vue brute de Set-Cookie affiche exactement ce que la cible a renvoyé.
- Lorsqu'une cible vous bloque, essayez une autre entrée dans le sélecteur de profils Browser avant d'opter pour un moteur plus lourd. Changer le profil de navigateur présenté est gratuit ; un rendu par navigateur ne l'est pas.
- Les requests effectuées dans le Playground sont facturées sur la clé que vous sélectionnez. Utilisez une clé dédiée à faible quota pour vos tests ponctuels afin de préserver vos métriques de production.
Liens associés
- API Endpoints : Référence complète des paramètres pour les quatre moteurs, y compris
exitCountrieset les champs de profil de navigateur - Smart Fetch (Auto) : Fonctionnement interne du mode Auto
- Choisir le bon endpoint : Quand choisir Auto vs Single vs Proxy vs Browser
- Clés API : Gérer les clés utilisées pour authentifier les requests du Playground
- Journal d'activité : Ouvrir directement une ancienne request dans le Playground
- Vue d'ensemble du tableau de bord : Toutes les sections de la barre latérale