Ressources · Intégration n8n

Intégration Apify n8nAutomatiser Apify avec n8n.

L'intégration Apify n8n met le scraping au même rang qu'un envoi d'email. Le nœud couvre 12 opérations réparties sur 5 ressources, du lancement d'un Actor à la lecture du dataset qu'il a rempli, et l'Apify Trigger écoute 5 événements de run sur tout le cycle de vie du run.

Nœud communautaire Ce nœud n'est pas livré avec n8n : c'est un paquet communautaire (@apify/n8n-nodes-apify) à installer depuis Settings › Community nodes sur une instance auto-hébergée. npm

Avis vérifiés sur Trustpilot · Agence IA, automatisation & growth

Pourquoi automatiser

À quoi sert vraiment l'intégration Apify n8n ?

Apify héberge des programmes appelés Actors qui parcourent des sites et renvoient des données structurées. Le nœud n8n conduit cette plateforme depuis un workflow : il lance un Actor ou une tâche enregistrée, garde la main jusqu'à la fin du run quand tu le demandes, puis lit le dataset ou l'enregistrement de key-value store produit. L'Apify Trigger fait le trajet inverse et réveille un workflow dès qu'un run se termine.

Premier cas, le crawl qui dure. Certains Actors tournent bien trop longtemps pour qu'une exécution n8n reste suspendue : tu lances Actors.Run actor et tu passes à autre chose. L'Apify Trigger reprend la main sur ACTOR.RUN.SUCCEEDED, un second workflow lit le dataset et le résumé part en Gmail. Les runs qui cassent arrivent sur le même trigger, sous ACTOR.RUN.FAILED.

Deuxième cas, la veille tarifaire hebdomadaire. Là, tout tient dans une seule exécution : Actors.Run actor and get dataset lance le crawl, attend, et ressort directement les lignes. Un nœud Google Sheets les empile dans un onglet de suivi, et personne n'ouvre la console Apify.

Troisième cas, l'enrichissement à l'unité. Actors.Scrape single URL passe une adresse dans l'Actor Website Content Crawler et renvoie son contenu en markdown, en HTML ou en texte brut. C'est le format qui va bien quand une étape IA lit la page ensuite, ou quand un nœud Code découpe le texte avant de le stocker.

Le nœud s'arrête à 12 opérations. Pour le reste de l'API Apify, le nœud HTTP Request appelle n'importe quel endpoint en réutilisant le même credential via l'authentification prédéfinie. Pas de clé à recopier ailleurs.

Deux limites à connaître avant de construire. L'attente dans le nœud est bornée par le timeout de workflow défini dans ta configuration n8n : Wait for Finish ne remplace donc pas le trigger sur un crawl lent. Et les opérations de liste renvoient une page de résultats à la fois, Offset et Limit décidant de ce qui remonte. Si le choix de la plateforme n'est pas encore tranché, l'Avis n8n détaille les arbitrages.

Connexion

Comment brancher Apify sur n8n ?

  1. 01

    Installer le paquet du nœud communautaire

    Apify n'est pas livré avec n8n. Sur une instance auto-hébergée, ouvre Settings, puis Community nodes, et installe le paquet npm @apify/n8n-nodes-apify (version 0.7.0). Une fois l'installation terminée, Apify et Apify Trigger apparaissent dans le panneau des nœuds et se manipulent comme les autres.

  2. 02

    Créer le credential Apify

    Un credential, c'est l'accès enregistré une fois dans n8n et réutilisé partout ; il se crée depuis le menu Credentials. Apify propose deux méthodes : API Key, sous le nom apifyApi, ou OAuth2, sous le nom apifyOAuth2Api. Choisis celle qui colle à la façon dont ton équipe gère les accès, et l'entrée servira à tous les workflows de l'instance.

  3. 03

    Sélectionner le credential dans le nœud

    Pose un nœud Apify sur le canvas et choisis le credential dans la liste déroulante en haut du nœud. Ensuite seulement, sélectionne la ressource et l'opération, par exemple Actor et Run an Actor. L'Apify Trigger réclame le même credential, et il en a besoin pour enregistrer son URL de webhook auprès d'Apify à l'activation du workflow.

Déclencheurs

Qu'est-ce qui peut lancer un workflow depuis Apify ?

Apify Trigger est le nœud qui démarre un workflow quand quelque chose se passe dans Apify. Il écoute 5 événements, listés ci-dessous par famille. Tu en choisis un ou plusieurs, tu actives le workflow : n8n enregistre le webhook (l'URL que Apify appelle) sur ton compte.

Ce que tu vois dans n8n

Tous les événements, par famille

Une ligne par objet, une puce par action. L'événement à cocher dans le nœud s'écrit objet.action ; survole une puce pour lire quand il se déclenche.

ACTOR.*4
  • ACTOR.RUN.
    • ABORTED
    • FAILED
    • SUCCEEDED
    • TIMED_OUT
any.*1
  • any.
    • any

Notes de configuration

01Set up the Apify TriggerUn trigger, c'est le nœud qui démarre un workflow. Celui d'Apify fonctionne par webhook : n8n donne une URL à Apify, Apify l'appelle. L'enregistrement se fait à l'activation du workflow, et chaque événement arrive en quelques secondes.

Un trigger, c'est le nœud qui démarre un workflow. Celui d'Apify fonctionne par webhook : n8n donne une URL à Apify, Apify l'appelle. L'enregistrement se fait à l'activation du workflow, et chaque événement arrive en quelques secondes.

Paramètres clés

  • Resource to Watch : déclenche sur la fin d'un run d'Actor ou sur la fin d'un run de tâche. Ce choix commande lequel des deux champs suivants tu remplis.
  • Actor Source : bascule entre tes Actors récemment utilisés et la navigation dans l'Apify Store, ce qui change le contenu de la liste Actor.
  • Actor : requis, l'identifiant de l'Actor ou le couple nom d'utilisateur et nom d'Actor séparés par un tilde.
  • Actor Task : la tâche Apify à surveiller, prise dans la liste ou posée avec une expression, la syntaxe n8n qui va chercher une valeur au lieu de la taper.
  • eventType : les événements que tu coches. Ce trigger n'a pas de valeur joker, donc la sélection est explicite.
Quand l'utiliser
dès que le travail se passe chez Apify et que n8n a seulement besoin de savoir quand c'est fini.
02Any terminal eventLa deuxième famille d'événements tient en une seule valeur, qui couvre toutes les fins de run d'un coup. Pratique quand l'aiguillage se fait plus loin dans le workflow plutôt qu'au niveau du trigger. C'est la seule valeur de sa famille, et elle cohabite avec les quatre fins nommées au lieu de les remplacer.

La deuxième famille d'événements tient en une seule valeur, qui couvre toutes les fins de run d'un coup. Pratique quand l'aiguillage se fait plus loin dans le workflow plutôt qu'au niveau du trigger. C'est la seule valeur de sa famille, et elle cohabite avec les quatre fins nommées au lieu de les remplacer.

Paramètres clés

  • any : se déclenche sur n'importe quel événement terminal, donc réussite, échec, dépassement de délai et interruption arrivent sur la même sortie. Ça évite de cocher quatre cases quand les quatre t'intéressent.
Quand l'utiliser
un workflow d'audit qui journalise chaque run d'un Actor donné, quelle qu'en soit l'issue, et qui ne sépare les chemins qu'une fois le détail du run récupéré. Le tri se fait alors sur le statut, pas à la réception.
03Actor run eventsQuatre des cinq événements racontent comment un run s'est terminé, et chacun appelle une réaction différente. Mieux vaut les répartir sur des branches distinctes : l'intérêt est dans la suite, pas dans la réception.

Quatre des cinq événements racontent comment un run s'est terminé, et chacun appelle une réaction différente. Mieux vaut les répartir sur des branches distinctes : l'intérêt est dans la suite, pas dans la réception.

Paramètres clés

  • ACTOR.RUN.SUCCEEDED : le run s'est terminé correctement. C'est celui qui alimente Get dataset items et tout ce qui consomme les lignes.
  • ACTOR.RUN.FAILED : le run a échoué. À router vers une alerte, parce qu'un scraping muet ressemble beaucoup à une semaine sans données.
  • ACTOR.RUN.TIMED_OUT : le run a dépassé son délai. En général le signe que le Timeout ou le périmètre d'entrée demande un réglage.
  • ACTOR.RUN.ABORTED : le run a été interrompu, y compris quand un plafond de coût a été atteint.
Cas d'usage
un workflow qui réagit à la réussite et déplace les données, un second qui surveille les trois chemins d'échec et les remonte au même endroit.
Actions

Qu'est-ce que le nœud Apify sait faire ?

Le nœud Apify expose 12 opérations sur 5 ressources. Pour chacune : le nœud tel que tu le configures dans n8n, les champs obligatoires, et nos notes de terrain.

Matrice ressources × opérations
RessourceAbort runGet ItemsGet Key-Value Store RecordGet Last RunGet runGet runsGet User Runs ListRun an ActorRun an Actor and Get DatasetRun TaskRun Task and Get DatasetScrape Single URL
Actor✓✓✓✓
Actor Task✓✓
Actor Run✓✓✓✓
Dataset✓
Key-Value Store✓

Actor

4 opérations
01

Run an Actor

Actors.Run actor

Ce que tu vois dans n8n

Notes & cas d'usage

Lance un Actor et renvoie le run, sans forcément attendre sa fin. La moitié « on lance et on oublie » du nœud, à associer au trigger pour les crawls longs.

Paramètres clés

  • Actor : requis, au format username~actor-name ou en identifiant simple.
  • Input JSON : remplace l'entrée préremplie. Sur un scraper web, les champs courants sont startUrls, maxCrawlPages et proxyConfiguration ; {} garde les valeurs par défaut de l'Actor.
  • Wait for Finish : garde l'exécution ouverte jusqu'à la fin du run, sans dépasser le timeout de workflow.
  • Maximum Cost per Run (USD) : interrompt le run une fois le montant atteint, sur les Actors facturés à l'événement ou au résultat.
Cas d'usage
démarrer le crawl complet d'un site depuis un formulaire reçu, le trigger gère la suite.
02

Run an Actor and get dataset

Actors.Run actor and get dataset

Ce que tu vois dans n8n

Notes & cas d'usage

Un seul nœud pour trois gestes : il démarre l'Actor, attend qu'il finisse, et renvoie les items du dataset. Les lignes sortent directement, donc le nœud suivant travaille sur de vraies données et pas sur un identifiant de run.

Paramètres clés

  • Actor : requis, l'Actor à lancer, à repérer dans l'Apify Store.
  • Input JSON : l'entrée du run, dont la structure dépend de l'Actor. Le schéma exact se consulte dans l'Apify Console.
  • Timeout : un délai de run en secondes, à la place de la configuration par défaut de l'Actor.
  • Memory : la limite mémoire en mégaoctets, de 128 jusqu'à 32768.
Cas d'usage
un crawl court tenu dans une seule exécution, quand patienter un instant coûte moins cher que monter un second workflow.
03

Scrape single URL

Actors.Scrape single URL

Ce que tu vois dans n8n

Notes & cas d'usage

Fait passer une page dans l'Actor Website Content Crawler et rend son contenu en texte, en markdown et en HTML. Aucun identifiant d'Actor à aller chercher, ce qui en fait le chemin le plus court pour lire une page depuis un workflow.

Paramètres clés

  • URL : l'adresse à scraper. Elle doit commencer par http:// ou https:// et être valide.
  • Crawler Type : cheerio, jsdom, playwright:adaptive ou playwright:firefox, selon la dépendance de la page aux scripts.
  • Output Format : markdown pour les agents IA et les modèles de langage, html pour un traitement programmatique, text pour du contenu sans mise en forme.
Cas d'usage
relire chaque semaine la page tarifs d'un concurrent et confier le markdown à une étape de synthèse.
04

Get last run

Actors.Get last run

Ce que tu vois dans n8n

Notes & cas d'usage

Récupère le run le plus récent d'un Actor, avec son statut et ses stockages, sans avoir à connaître un identifiant de run au préalable. Utile quand le workflow démarre ailleurs que chez Apify.

Paramètres clés

  • Actor : requis, l'identifiant de l'Actor ou le couple nom d'utilisateur et nom d'Actor séparés par un tilde.
  • Status : restreint la réponse à un état, parmi READY, RUNNING, SUCCEEDED, FAILED, ABORTING, ABORTED, TIMING-OUT et TIMED-OUT.
Cas d'usage
un contrôle du matin qui demande le dernier run réussi d'un crawler et en tire l'identifiant de dataset pour le rapport du jour.

Actor Task

2 opérations
05

Run task

Actor tasks.Run task

Ce que tu vois dans n8n

Notes & cas d'usage

Une tâche, c'est une configuration d'Actor enregistrée dans l'Apify Console. Cette opération en lance une et renvoie tous les détails associés. L'entrée reste côté Apify, ce qui allège le nœud n8n.

Paramètres clés

  • Actor Task : requis, sous la forme username~task-name ou en identifiant simple.
  • Use Custom Body : à activer pour écraser l'entrée enregistrée dans la tâche.
  • Input (JSON) : la surcharge elle-même, qui suit le schéma d'entrée de l'Actor derrière la tâche.
  • Build Tag : le build à exécuter, à la place de celui fixé dans les réglages de la tâche.
Cas d'usage
une tâche enregistrée par marché, lancée dans une boucle, la tâche portant les URL et le workflow portant le calendrier.
06

Run task and get dataset

Actor tasks.Run task and get dataset

Ce que tu vois dans n8n

Notes & cas d'usage

Même tâche enregistrée, mais ici le nœud attend et ressort directement les items du dataset. Le second saut disparaît quand la tâche finit assez vite pour tenir dans une exécution.

Paramètres clés

  • Actor Task : requis, la tâche à lancer, gérée dans l'Apify Console.
  • Use Custom Body : indique si l'entrée enregistrée est remplacée pour ce run.
  • Timeout : un délai de run en secondes, qui prend le pas sur les réglages de la tâche.
  • Maximum Cost per Run (USD) : le plafond en USD au-delà duquel le run est interrompu. Vide, il n'y a pas de limite.
Cas d'usage
une liste de prospects récurrente, où la même tâche tourne chaque matin et les lignes filent vers le nœud suivant.

Actor Run

4 opérations
07

Get user runs list

Actor runs.Get user runs list

Ce que tu vois dans n8n

Notes & cas d'usage

Renvoie l'historique des runs du compte entier, et pas ceux d'un seul Actor. C'est l'opération qui sert à tout reporting sur ce qui a réellement tourné, et elle n'exige aucun champ obligatoire.

Paramètres clés

  • Limit : combien de runs remontent au maximum.
  • Offset : le nombre d'entrées sautées au début, 0 par défaut, de quoi remonter un historique long morceau par morceau.
  • Desc : bascule le tri sur startedAt en décroissant. Les runs récents d'abord.
  • Status : ne garde que les runs dans un état terminal, parmi SUCCEEDED, FAILED, TIMED-OUT et ABORTED.
Cas d'usage
une synthèse hebdomadaire qui compte les runs en échec sur l'ensemble des Actors du compte.
08

Get run

Actor runs.Get run

Ce que tu vois dans n8n

Notes & cas d'usage

Va chercher un run précis par son identifiant et renvoie ses métadonnées, son statut et ses stockages. La plupart des workflows l'appellent juste après un événement du trigger, pour transformer une référence brute en quelque chose d'exploitable.

Paramètres clés

  • Run ID : requis, le plus souvent une expression du type {{ $json.id }} qui pointe le run qui vient de se terminer. Un champ requis laissé vide bloque l'exécution du nœud.
Cas d'usage
après un ACTOR.RUN.FAILED, récupérer le run pour que l'alerte porte le statut et la référence de stockage au lieu d'un simple identifiant.
09

Get runs

Actor runs.Get runs

Ce que tu vois dans n8n

Notes & cas d'usage

Liste les runs d'un Actor précis, et c'est toute la différence avec l'historique du compte. À sortir quand tu veux regarder un crawler dans la durée.

Paramètres clés

  • Actor : requis, l'Actor dont tu veux l'historique, en identifiant ou en couple séparé par un tilde.
  • Status : filtre la liste, avec ici une valeur vide qui vaut All à côté des états individuels.
  • Desc : inverse le tri croissant appliqué par défaut sur startedAt.
  • Limit : le nombre maximal de résultats, associé à Offset pour parcourir la suite.
Cas d'usage
repérer qu'un scraper dépasse son délai trois matins de suite, avant que le manque de lignes ne se voie ailleurs.
10

Abort an Actor run

Actor runs.Abort run

Ce que tu vois dans n8n

Notes & cas d'usage

Arrête un run encore en cours. C'est la seule opération du nœud qui modifie quelque chose au lieu de le lire, ce qui mérite d'y penser à deux fois avant de la câbler derrière un automatisme.

Paramètres clés

  • Run ID : requis, l'identifiant du run à interrompre, en général transmis par un nœud précédent.
  • Graceful : laisse à l'Actor le temps de finir sa tâche en cours avant l'arrêt. Désactivé, le run est tué immédiatement.
Cas d'usage
un workflow de garde qui liste les crawls en cours, regarde depuis combien de temps ils tournent, et interrompt ceux qui sont visiblement coincés.

Dataset

1 opération
11

Get dataset items

Datasets.Get items

Ce que tu vois dans n8n

Notes & cas d'usage

Lit les lignes d'un dataset, c'est-à-dire l'endroit où un Actor dépose ce qu'il a collecté. Voilà l'opération qui transforme un run terminé en items utilisables par les autres nœuds.

Paramètres clés

  • Dataset ID : requis, soit l'identifiant, soit username~dataset-name.
  • Limit : le nombre maximal d'items renvoyés, avec Offset qui saute les premiers pour lire un gros dataset par tranches.
  • Fields : la liste des seuls champs à conserver, séparés par des virgules, de quoi calmer un résultat de scraping très large.
  • Omit : l'inverse, les champs à exclure ; un champ présent dans les deux listes est exclu.
Cas d'usage
sortir les lignes produit après un crawl et n'écrire que le nom, le prix et l'URL dans le tableau de suivi.

Key-Value Store

1 opération
12

Get key-value store record

Key-Value Stores.Get Key-Value Store Record

Ce que tu vois dans n8n

Notes & cas d'usage

Les key-value stores gardent les objets uniques qu'un run produit, une capture ou un fichier de synthèse plutôt qu'un tableau de lignes. Cette opération en lit un, par sa clé.

Paramètres clés

  • Key-Value Store ID : requis, le store à interroger, souvent celui rattaché au run que tu viens de récupérer.
  • Key-Value Store Record Key : requis, la clé de l'enregistrement voulu. Les deux champs se choisissent dans une liste ou se posent avec une expression.
Cas d'usage
récupérer le fichier écrit sous une clé connue à la fin d'un run et le joindre à la notification, plutôt que de relire tout le dataset.
Besoin d'aide

Besoin d'aide pour automatiser Apify avec n8n ?

L'équipe te répond directement.

Chaque message est lu par une personne.

FAQ

Apify et n8n, les questions qui reviennent

01L'intégration Apify n8n est-elle gratuite ?
Oui côté n8n, avec une condition. Apify est un nœud communautaire : il n'est pas livré avec n8n. C'est le paquet npm @apify/n8n-nodes-apify, en version 0.7.0, que tu installes toi-même depuis Settings, puis Community nodes, sur une instance auto-hébergée. n8n Cloud n'accepte que les nœuds communautaires vérifiés, autant le savoir avant de tout miser dessus. Une fois installé, le nœud ne coûte rien de plus côté n8n, que l'instance tourne en Docker, via npm ou sur n8n Cloud. Un workflow construit d'un côté est identique de l'autre. Ce qu'Apify facture de son côté est une autre question, et cette page ne la traite pas.
02Quels credentials faut-il pour le nœud Apify ?
Deux méthodes existent : API Key, listée dans n8n sous le nom apifyApi, et OAuth2, listée sous apifyOAuth2Api. Prends celle qui correspond à la façon dont l'équipe gère les accès. Un credential se crée une fois depuis le menu Credentials et se réutilise partout : chaque nœud Apify et chaque Apify Trigger, dans tous les workflows, retrouve la même entrée dans sa liste déroulante. Ça vaut aussi pour le nœud HTTP Request, qui réutilise ce credential via l'authentification prédéfinie pour appeler un endpoint que le nœud dédié ne couvre pas. Le trigger, lui, a besoin du credential avant de pouvoir enregistrer son webhook chez Apify à l'activation.
03Quelles sont les limites du nœud Apify dans n8n ?
Le nœud expose 12 opérations sur 5 ressources : Actors, tâches, runs, datasets et key-value stores. Ça couvre le fait de lancer des choses et d'en lire le résultat, guère plus. Tout ce qui sort de ce périmètre passe par le nœud HTTP Request sur l'API Apify, avec le même credential. Deux comportements demandent d'être anticipés. Les opérations de liste renvoient une page à la fois, pilotée par Limit et Offset, donc un export complet se fait en boucle. Et l'attente dans le nœud avec Wait for Finish reste bornée par le timeout de workflow défini dans ta configuration n8n, ce qui explique pourquoi les crawls longs se traitent avec le trigger.
04L'Apify Trigger réagit-il en temps réel ?
Oui. L'Apify Trigger fonctionne par webhook, c'est-à-dire une URL qu'Apify appelle quand il se passe quelque chose, au lieu que n8n aille demander. n8n enregistre cette URL auprès d'Apify à l'activation du workflow, et chaque événement arrive en quelques secondes après la fin du run. Il y a 5 événements répartis en 2 familles : ACTOR.RUN.SUCCEEDED, ACTOR.RUN.FAILED, ACTOR.RUN.TIMED_OUT et ACTOR.RUN.ABORTED d'un côté, la valeur fourre-tout any de l'autre. Aucune valeur joker au-delà de cette dernière, donc la sélection reste explicite. Resource to Watch détermine si tu écoutes des runs d'Actor ou des runs de tâche.
05n8n ou Make pour automatiser Apify ?
Ça dépend de trois critères. L'hébergement d'abord : n8n tourne sur tes propres serveurs via Docker ou npm, ou sur n8n Cloud, alors que Make est hébergé uniquement, sans option d'auto-hébergement. De là découle le deuxième critère, la maîtrise des données, qui pèse dès qu'un dataset scrapé contient des informations que tu préfères garder chez toi. Le modèle de coût est le troisième : Make facture à l'opération, donc un crawl qui ressort des milliers de lignes ne se chiffre pas pareil que sur un n8n auto-hébergé. Les deux construisent des workflows en visuel. La nuance propre à ce nœud, c'est qu'Apify est communautaire, donc à l'aise sur une instance auto-hébergée.