Générez des informations sur les domaines avec des requêtes WHOIS et GPT-5-Nano via RapidAPI

Intermédiaire

Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 15 nœuds.Utilise principalement des nœuds comme Set, Webhook, HttpRequest, HttpRequestTool, OpenAi. Générer des informations sur les domaines via WHOIS et GPT-5-Nano avec RapidAPI

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "3dd9efe937707b07af3ede5b46321ec0e2a9e49d7ef201e274c4c4aa1a4615a6",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "eac50c4b-7ab3-4d18-917b-4f6cbf8a3358",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -560,
        96
      ],
      "webhookId": "76654401-5166-4a5a-94df-fa3a2d986142",
      "parameters": {
        "path": "76654401-5166-4a5a-94df-fa3a2d986142",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "8a8ce283-6ee1-40e3-abf5-5e4ad7ac1f66",
      "name": "Répondre à Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        832,
        96
      ],
      "parameters": {
        "options": {},
        "respondWith": "text",
        "responseBody": "=<div class=\"whois-card\">\n  <h2>\n    WHOIS —\n    {{ $('Request API').item.json['ergates.net'][0]['0'].replace(/^\\s*Domain Name:\\s*/i,'').trim() }}\n  </h2>\n\n  <div class=\"whois-grid\">\n    <div class=\"row\">\n      <span class=\"k\">Registry Domain ID</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][1]['1'].replace(/^\\s*Registry Domain ID:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Registrar WHOIS</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][2]['2'].replace(/^\\s*Registrar WHOIS Server:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Registrar URL</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][3]['3'].replace(/^\\s*Registrar URL:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Updated</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][4]['4'].replace(/^\\s*Updated Date:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Created</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][5]['5'].replace(/^\\s*Creation Date:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Expiry</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][6]['6'].replace(/^\\s*Registry Expiry Date:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Registrar</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][7]['7'].replace(/^\\s*Registrar:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">IANA ID</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][8]['8'].replace(/^\\s*Registrar IANA ID:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Abuse Email</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][9]['9'].replace(/^\\s*Registrar Abuse Contact Email:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Abuse Phone</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][10]['10'].replace(/^\\s*Registrar Abuse Contact Phone:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Domain Status</span>\n      <span class=\"v\">\n        {{ $('Request API').item.json['ergates.net'][11]['11'].replace(/^\\s*Domain Status:\\s*/i,'').replace(/\\shttps?:.*/,'').trim() }}<br>\n        {{ $('Request API').item.json['ergates.net'][12]['12'].replace(/^\\s*Domain Status:\\s*/i,'').replace(/\\shttps?:.*/,'').trim() }}\n      </span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Name Servers</span>\n      <span class=\"v\">\n        {{ $('Request API').item.json['ergates.net'][13]['13'].replace(/^\\s*Name Server:\\s*/i,'').trim() }}<br>\n        {{ $('Request API').item.json['ergates.net'][14]['14'].replace(/^\\s*Name Server:\\s*/i,'').trim() }}\n      </span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">DNSSEC</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][15]['15'].replace(/^\\s*DNSSEC:\\s*/i,'').trim() }}</span>\n    </div>\n\n    <div class=\"row\">\n      <span class=\"k\">Last WHOIS Update</span>\n      <span class=\"v\">{{ $('Request API').item.json['ergates.net'][17]['17'].replace(/[<>]/g,'').replace(/^\\s*Last update of whois database:\\s*/i,'').trim() }}</span>\n    </div>\n  </div>\n\n  <div class=\"row\">\n    <span class=\"k\">ChatGPT Description</span>\n    <span class=\"v\">{{ $json.message?.content || '' }}</span>\n  </div>\n</div>\n\n\n<style>\n  :root{\n  --whois-bg: #ffffff;\n  --whois-fg: #0f1115;\n  --whois-muted: #556;\n  --whois-border: #e7e9ee;\n  --whois-soft: #f7f8fb;\n  --whois-radius: 14px;\n  --whois-gap: 12px;\n  --whois-shadow: 0 6px 24px rgba(16,24,40,.06);\n  --whois-font: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;\n}\n\n.whois-card{\n  font-family: var(--whois-font);\n  max-width: 760px;\n  margin: 16px auto;\n  padding: 20px 22px;\n  background: var(--whois-bg);\n  color: var(--whois-fg);\n  border: 1px solid var(--whois-border);\n  border-radius: var(--whois-radius);\n  box-shadow: var(--whois-shadow);\n}\n\n.whois-card h2{\n  margin: 0 0 14px;\n  font-size: 20px;\n  line-height: 1.2;\n  letter-spacing: .2px;\n}\n\n.whois-grid{\n  display: grid;\n  gap: var(--whois-gap);\n}\n\n.whois-card .row{\n  display: grid;\n  grid-template-columns: 180px 1fr;\n  align-items: start;\n  gap: 14px;\n  padding: 12px 14px;\n  background: var(--whois-soft);\n  border: 1px solid var(--whois-border);\n  border-radius: 12px;\n  transition: transform .15s ease, background-color .2s ease, border-color .2s ease;\n}\n\n.whois-card .row:hover{\n  transform: translateY(-1px);\n  background: #fff;\n  border-color: #dfe3ea;\n}\n\n.whois-card .k{\n  font-weight: 600;\n  color: var(--whois-muted);\n  letter-spacing: .1px;\n}\n\n.whois-card .v{\n  color: var(--whois-fg);\n  word-break: break-word;\n  white-space: pre-wrap;\n}\n\n/* Pequeños detalles tipográficos */\n.whois-card .v a{ text-decoration: none; border-bottom: 1px dotted #c7ccd6; }\n.whois-card .v a:hover{ border-bottom-style: solid; }\n\n/* Responsivo */\n@media (max-width: 640px){\n  .whois-card{ padding: 18px; }\n  .whois-card .row{ grid-template-columns: 1fr; }\n  .whois-card h2{ font-size: 18px; }\n}\n\n/* Modo oscuro automático */\n@media (prefers-color-scheme: dark){\n  :root{\n    --whois-bg: #0f1115;\n    --whois-fg: #e8ebf1;\n    --whois-muted: #c3c8d4;\n    --whois-border: #222837;\n    --whois-soft: #141925;\n    --whois-shadow: none;\n  }\n  .whois-card .row:hover{\n    background: #101522;\n    border-color: #2a3650;\n  }\n}\n\n</style>\n"
      },
      "typeVersion": 1.4
    },
    {
      "id": "0c51d286-49f8-4afd-913d-c32f1327267a",
      "name": "Message à un modèle",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        432,
        96
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-nano",
          "cachedResultName": "GPT-5-NANO"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=Your task is to analyze the whois shared by the user and draw a conclusion or analysis based on your knowledge. \n\n\nImportant: make a short description\n\nForced to search the web: {{ $('OPTIONS').item.json.search_web }} (if this value is true you can use the tool to search the web, search for bing (https://www.bing.com/search?q=example)\n\nRespond in this language: {{ $('OPTIONS').item.json.lang }}"
            },
            {
              "content": "=Whois recivido:\n\n{{ $json[\"ergates.net\"].map(e => `<li>${Object.values(e)[0]}</li>`).join(\"\") }}\n"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "dfSo8Emt7Jfhxkoj",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "5819375a-1eda-43f7-b9d5-2b372cbee0f6",
      "name": "OPTIONS",
      "type": "n8n-nodes-base.set",
      "position": [
        -208,
        96
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6dd785e8-f276-4661-9ea4-0ca1c6448dd1",
              "name": "lang",
              "type": "string",
              "value": "spanish"
            },
            {
              "id": "9808cfc4-bd20-4e92-add3-715d0e79964a",
              "name": "search_web",
              "type": "boolean",
              "value": true
            },
            {
              "id": "10c0fdac-a571-4dc8-81d1-6b7b666f3f51",
              "name": "domain",
              "type": "string",
              "value": "ergates.net"
            },
            {
              "id": "967dc9ed-e29c-4c51-bfd7-7047bae8adff",
              "name": "rapidapi",
              "type": "string",
              "value": "d33cc41e4emsh5252b1267d08d3ap14fe71jsnc8b777bbd7cc"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "62138ca3-a116-4203-b20d-1503caf46216",
      "name": "Requête HTTP 1",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        576,
        288
      ],
      "parameters": {
        "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}",
        "options": {},
        "toolDescription": "Makes an HTTP request and returns the response data (using: https://www.bing.com/search?q=example)"
      },
      "typeVersion": 4.2
    },
    {
      "id": "f0bcf135-ff7b-4991-b1e1-84a540e1340c",
      "name": "Requête API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        144,
        96
      ],
      "parameters": {
        "url": "https://pointsdb-bulk-whois-v1.p.rapidapi.com/whois",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "domains",
              "value": "={{ $json.domain }}"
            },
            {
              "name": "format",
              "value": "split"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "pointsdb-bulk-whois-v1.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key",
              "value": "={{ $json.rapidapi }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "cc6f75bc-f84f-45b2-b4bd-0fcca12efe5e",
      "name": "Note adhésive 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -384
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 192,
        "content": "## Disscount Code\nIf you’ve made it this far, send a **screenshot** to **[oriolrotllant3@gmai.com](mailto:oriolrotllant3@gmai.com)** and receive a **25% discount** on any of my products. *Limited offer. One use per person.*\n"
      },
      "typeVersion": 1
    },
    {
      "id": "100786c1-1cd9-43d1-96c2-581d7b36e5e9",
      "name": "Note adhésive 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        -384
      ],
      "parameters": {
        "color": 4,
        "width": 256,
        "height": 800,
        "content": "## LICENSE\n\nThis project is distributed under a custom open license. You are free to use and modify this work, but not to sell copies of it.\n\n### Key Terms:\n\n* **Use**: You may use this project for personal, educational, or commercial purposes.\n\n* **Modification**: You are permitted to modify the code or content as you wish.\n\n* **Distribution**: You may share copies of the project, both in its original and modified versions, provided that such distribution is **non-commercial**. Selling copies of this project, in whole or in part, is not permitted.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "224776e0-c229-4b39-99e7-6f1dcf2203bb",
      "name": "Note adhésive 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -672,
        -384
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 192,
        "content": "## Welcome\nThis flow receives requests via Webhook, queries the domain's WHOIS via API, and, with the help of lightweight AI (GPT-5-Nano) and optional web search, generates a concise and clear analysis. The response is returned as an HTML card with a clean design, automatic dark mode, and key fields (dates, registrar, DNS, status), offering a modern, visual, and straightforward experience from the first glance."
      },
      "typeVersion": 1
    },
    {
      "id": "3da895c9-c20c-4cdc-9341-541c5db5f51c",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -672,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 576,
        "content": "## Trigger\nThe Webhook node receives external requests (HTTP) and acts as an entry point to the flow, starting execution when a request arrives at the generated URL."
      },
      "typeVersion": 1
    },
    {
      "id": "bbff074d-5a28-4ddc-af89-f1899dec1404",
      "name": "Note adhésive 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 576,
        "content": "## Config Node\nThe OPTIONS node defines and assigns initial variables (language, domain, API key, web search, etc.) that will be used in subsequent nodes in the flow to maintain centralized configuration."
      },
      "typeVersion": 1
    },
    {
      "id": "7e55dc3a-ff46-447f-94b9-936c71cbb455",
      "name": "Note adhésive 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 576,
        "content": "## Req API Node\nThe Request API node makes the call to the external WHOIS service (RapidAPI), sending the configured domain and returning the registration information in a split format so that the rest of the flow can process it."
      },
      "typeVersion": 1
    },
    {
      "id": "d1d75b26-aa0d-4e58-ad43-9e900bf34c17",
      "name": "Note adhésive 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 576,
        "content": "## GPT\nMessage to model: Sends the WHOIS (and context) to GPT-5-Nano to generate a short parse in the language defined in OPTIONS, and can invoke a web search if search_web is true.\n\nHTTP Request1 (AI Tool): Provides the AI ​​with a tool to launch HTTP searches (e.g., Bing) when prompted, returning the data to the model node."
      },
      "typeVersion": 1
    },
    {
      "id": "b03d3421-3d79-4bf3-a3b5-27dd0e134a83",
      "name": "Note adhésive 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        736,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 576,
        "content": "## Response\nThe Respond to Webhook node sends the final output of the flow back to the requesting client. In this case, it returns a stylized HTML card with the processed WHOIS data and the AI-generated description, providing a clear, browser-ready presentation."
      },
      "typeVersion": 1
    },
    {
      "id": "8e7e4506-9d35-49e7-bb52-1c27cfdc6985",
      "name": "Note adhésive 8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        -384
      ],
      "parameters": {
        "color": 3,
        "width": 704,
        "height": 192,
        "content": "## BY OXSR\nBy OXSR, visit my profile for professional and business \n\nWorkflows :: https://n8n.io/creators/oxsr11/\n\nGithub: https://github.com/oxsr"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "5819375a-1eda-43f7-b9d5-2b372cbee0f6": {
      "main": [
        [
          {
            "node": "f0bcf135-ff7b-4991-b1e1-84a540e1340c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eac50c4b-7ab3-4d18-917b-4f6cbf8a3358": {
      "main": [
        [
          {
            "node": "5819375a-1eda-43f7-b9d5-2b372cbee0f6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f0bcf135-ff7b-4991-b1e1-84a540e1340c": {
      "main": [
        [
          {
            "node": "0c51d286-49f8-4afd-913d-c32f1327267a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "62138ca3-a116-4203-b20d-1503caf46216": {
      "ai_tool": [
        [
          {
            "node": "0c51d286-49f8-4afd-913d-c32f1327267a",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "0c51d286-49f8-4afd-913d-c32f1327267a": {
      "main": [
        [
          {
            "node": "8a8ce283-6ee1-40e3-abf5-5e4ad7ac1f66",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Étude de marché, Résumé IA

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds15
Catégorie2
Types de nœuds7
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Oriol Seguí

Oriol Seguí

@oxsr11

Completion of a higher degree on the way to university (computer engineering)

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34