Keywords Extractor avatar

Keywords Extractor

Try for free

No credit card required

Go to Store
Keywords Extractor

Keywords Extractor

lukaskrivka/keywords-extractor
Try for free

No credit card required

Use our free website keyword extractor to crawl any website and extract keyword counts on each page.

You can access the Keywords Extractor programmatically from your own applications by using the Apify API. You can choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.

1{
2  "openapi": "3.0.1",
3  "info": {
4    "version": "0.0",
5    "x-build-id": "irvxpoDkPfnbazYNZ"
6  },
7  "servers": [
8    {
9      "url": "https://api.apify.com/v2"
10    }
11  ],
12  "paths": {
13    "/acts/lukaskrivka~keywords-extractor/run-sync-get-dataset-items": {
14      "post": {
15        "operationId": "run-sync-get-dataset-items-lukaskrivka-keywords-extractor",
16        "x-openai-isConsequential": false,
17        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
18        "tags": [
19          "Run Actor"
20        ],
21        "requestBody": {
22          "required": true,
23          "content": {
24            "application/json": {
25              "schema": {
26                "$ref": "#/components/schemas/inputSchema"
27              }
28            }
29          }
30        },
31        "parameters": [
32          {
33            "name": "token",
34            "in": "query",
35            "required": true,
36            "schema": {
37              "type": "string"
38            },
39            "description": "Enter your Apify token here"
40          }
41        ],
42        "responses": {
43          "200": {
44            "description": "OK"
45          }
46        }
47      }
48    },
49    "/acts/lukaskrivka~keywords-extractor/runs": {
50      "post": {
51        "operationId": "runs-sync-lukaskrivka-keywords-extractor",
52        "x-openai-isConsequential": false,
53        "summary": "Executes an Actor and returns information about the initiated run in response.",
54        "tags": [
55          "Run Actor"
56        ],
57        "requestBody": {
58          "required": true,
59          "content": {
60            "application/json": {
61              "schema": {
62                "$ref": "#/components/schemas/inputSchema"
63              }
64            }
65          }
66        },
67        "parameters": [
68          {
69            "name": "token",
70            "in": "query",
71            "required": true,
72            "schema": {
73              "type": "string"
74            },
75            "description": "Enter your Apify token here"
76          }
77        ],
78        "responses": {
79          "200": {
80            "description": "OK",
81            "content": {
82              "application/json": {
83                "schema": {
84                  "$ref": "#/components/schemas/runsResponseSchema"
85                }
86              }
87            }
88          }
89        }
90      }
91    },
92    "/acts/lukaskrivka~keywords-extractor/run-sync": {
93      "post": {
94        "operationId": "run-sync-lukaskrivka-keywords-extractor",
95        "x-openai-isConsequential": false,
96        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
97        "tags": [
98          "Run Actor"
99        ],
100        "requestBody": {
101          "required": true,
102          "content": {
103            "application/json": {
104              "schema": {
105                "$ref": "#/components/schemas/inputSchema"
106              }
107            }
108          }
109        },
110        "parameters": [
111          {
112            "name": "token",
113            "in": "query",
114            "required": true,
115            "schema": {
116              "type": "string"
117            },
118            "description": "Enter your Apify token here"
119          }
120        ],
121        "responses": {
122          "200": {
123            "description": "OK"
124          }
125        }
126      }
127    }
128  },
129  "components": {
130    "schemas": {
131      "inputSchema": {
132        "type": "object",
133        "required": [
134          "startUrls",
135          "keywords"
136        ],
137        "properties": {
138          "startUrls": {
139            "title": "Start URLs",
140            "type": "array",
141            "description": "A static list of URLs to scrape. To be able to add new URLs on the fly, enable the <b>Use request queue</b> option.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#start-urls' target='_blank' rel='noopener'>Start URLs</a> in README.",
142            "items": {
143              "type": "object",
144              "required": [
145                "url"
146              ],
147              "properties": {
148                "url": {
149                  "type": "string",
150                  "title": "URL of a web page",
151                  "format": "uri"
152                }
153              }
154            }
155          },
156          "useBrowser": {
157            "title": "Use Browser",
158            "type": "boolean",
159            "description": "If on, it will use regular borwser for scraping.",
160            "default": false
161          },
162          "keywords": {
163            "title": "Keywords",
164            "type": "array",
165            "description": "List of keywords to search and count on every page",
166            "items": {
167              "type": "string"
168            }
169          },
170          "caseSensitive": {
171            "title": "Case sensitive",
172            "type": "boolean",
173            "description": "If on, it will only match keywords with exact upper or lower case.",
174            "default": false
175          },
176          "scanScripts": {
177            "title": "Scan scripts",
178            "type": "boolean",
179            "description": "If on, it will also count keywords appearing inside scripts.",
180            "default": false
181          },
182          "linkSelector": {
183            "title": "Link selector",
184            "type": "string",
185            "description": "A CSS selector saying which links on the page (<code>&lt;a&gt;</code> elements with <code>href</code> attribute) shall be followed and added to the request queue. This setting only applies if <b>Use request queue</b> is enabled. To filter the links added to the queue, use the <b>Pseudo-URLs</b> setting.<br><br>If <b>Link selector</b> is empty, the page links are ignored.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#link-selector' target='_blank' rel='noopener'>Link selector</a> in README."
186          },
187          "pseudoUrls": {
188            "title": "Pseudo-URLs",
189            "type": "array",
190            "description": "Specifies what kind of URLs found by <b>Link selector</b> should be added to the request queue. A pseudo-URL is a URL with regular expressions enclosed in <code>[]</code> brackets, e.g. <code>http://www.example.com/[.*]</code>. This setting only applies if the <b>Use request queue</b> option is enabled.<br><br>If <b>Pseudo-URLs</b> are omitted, the actor enqueues all links matched by the <b>Link selector</b>.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#pseudo-urls' target='_blank' rel='noopener'>Pseudo-URLs</a> in README.",
191            "default": [],
192            "items": {
193              "type": "object",
194              "required": [
195                "purl"
196              ],
197              "properties": {
198                "purl": {
199                  "type": "string",
200                  "title": "Pseudo-URL of a web page"
201                }
202              }
203            }
204          },
205          "maxDepth": {
206            "title": "Max depth",
207            "minimum": 0,
208            "type": "integer",
209            "description": "How many links deep from the Start URLs do you want to crawl. Start URLs have depth 0.",
210            "default": 5
211          },
212          "proxyConfiguration": {
213            "title": "Proxy configuration",
214            "type": "object",
215            "description": "Specifies proxy servers that will be used by the scraper in order to hide its origin.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#proxy-configuration' target='_blank' rel='noopener'>Proxy configuration</a> in README.",
216            "default": {}
217          },
218          "maxPagesPerCrawl": {
219            "title": "Max pages per run",
220            "minimum": 0,
221            "type": "integer",
222            "description": "The maximum number of pages that the scraper will load. The scraper will stop when this limit is reached. It's always a good idea to set this limit in order to prevent excess platform usage for misconfigured scrapers. Note that the actual number of pages loaded might be slightly higher than this value.<br><br>If set to <code>0</code>, there is no limit.",
223            "default": 100
224          },
225          "maxConcurrency": {
226            "title": "Max concurrency",
227            "minimum": 1,
228            "type": "integer",
229            "description": "Specified the maximum number of pages that can be processed by the scraper in parallel. The scraper automatically increases and decreases concurrency based on available system resources. This option enables you to set an upper limit, for example to reduce the load on a target website.",
230            "default": 50
231          },
232          "retireInstanceAfterRequestCount": {
233            "title": "Retire Instance After Request Count",
234            "minimum": 1,
235            "type": "integer",
236            "description": "How often will the browser itself rotate. Pick higher for smaller consumption, pick less to rotate (test) more proxies",
237            "default": 50
238          },
239          "useChrome": {
240            "title": "Use Chrome",
241            "type": "boolean",
242            "description": "Only works for puppeteer type. Be careful that Chrome is not guaranteed to work with Puppeteer.",
243            "default": false
244          },
245          "waitFor": {
246            "title": "Wait for",
247            "type": "string",
248            "description": "Only works for puppeteer type. Will wait on each page. You can provide number in ms or a selector."
249          }
250        }
251      },
252      "runsResponseSchema": {
253        "type": "object",
254        "properties": {
255          "data": {
256            "type": "object",
257            "properties": {
258              "id": {
259                "type": "string"
260              },
261              "actId": {
262                "type": "string"
263              },
264              "userId": {
265                "type": "string"
266              },
267              "startedAt": {
268                "type": "string",
269                "format": "date-time",
270                "example": "2025-01-08T00:00:00.000Z"
271              },
272              "finishedAt": {
273                "type": "string",
274                "format": "date-time",
275                "example": "2025-01-08T00:00:00.000Z"
276              },
277              "status": {
278                "type": "string",
279                "example": "READY"
280              },
281              "meta": {
282                "type": "object",
283                "properties": {
284                  "origin": {
285                    "type": "string",
286                    "example": "API"
287                  },
288                  "userAgent": {
289                    "type": "string"
290                  }
291                }
292              },
293              "stats": {
294                "type": "object",
295                "properties": {
296                  "inputBodyLen": {
297                    "type": "integer",
298                    "example": 2000
299                  },
300                  "rebootCount": {
301                    "type": "integer",
302                    "example": 0
303                  },
304                  "restartCount": {
305                    "type": "integer",
306                    "example": 0
307                  },
308                  "resurrectCount": {
309                    "type": "integer",
310                    "example": 0
311                  },
312                  "computeUnits": {
313                    "type": "integer",
314                    "example": 0
315                  }
316                }
317              },
318              "options": {
319                "type": "object",
320                "properties": {
321                  "build": {
322                    "type": "string",
323                    "example": "latest"
324                  },
325                  "timeoutSecs": {
326                    "type": "integer",
327                    "example": 300
328                  },
329                  "memoryMbytes": {
330                    "type": "integer",
331                    "example": 1024
332                  },
333                  "diskMbytes": {
334                    "type": "integer",
335                    "example": 2048
336                  }
337                }
338              },
339              "buildId": {
340                "type": "string"
341              },
342              "defaultKeyValueStoreId": {
343                "type": "string"
344              },
345              "defaultDatasetId": {
346                "type": "string"
347              },
348              "defaultRequestQueueId": {
349                "type": "string"
350              },
351              "buildNumber": {
352                "type": "string",
353                "example": "1.0.0"
354              },
355              "containerUrl": {
356                "type": "string"
357              },
358              "usage": {
359                "type": "object",
360                "properties": {
361                  "ACTOR_COMPUTE_UNITS": {
362                    "type": "integer",
363                    "example": 0
364                  },
365                  "DATASET_READS": {
366                    "type": "integer",
367                    "example": 0
368                  },
369                  "DATASET_WRITES": {
370                    "type": "integer",
371                    "example": 0
372                  },
373                  "KEY_VALUE_STORE_READS": {
374                    "type": "integer",
375                    "example": 0
376                  },
377                  "KEY_VALUE_STORE_WRITES": {
378                    "type": "integer",
379                    "example": 1
380                  },
381                  "KEY_VALUE_STORE_LISTS": {
382                    "type": "integer",
383                    "example": 0
384                  },
385                  "REQUEST_QUEUE_READS": {
386                    "type": "integer",
387                    "example": 0
388                  },
389                  "REQUEST_QUEUE_WRITES": {
390                    "type": "integer",
391                    "example": 0
392                  },
393                  "DATA_TRANSFER_INTERNAL_GBYTES": {
394                    "type": "integer",
395                    "example": 0
396                  },
397                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
398                    "type": "integer",
399                    "example": 0
400                  },
401                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
402                    "type": "integer",
403                    "example": 0
404                  },
405                  "PROXY_SERPS": {
406                    "type": "integer",
407                    "example": 0
408                  }
409                }
410              },
411              "usageTotalUsd": {
412                "type": "number",
413                "example": 0.00005
414              },
415              "usageUsd": {
416                "type": "object",
417                "properties": {
418                  "ACTOR_COMPUTE_UNITS": {
419                    "type": "integer",
420                    "example": 0
421                  },
422                  "DATASET_READS": {
423                    "type": "integer",
424                    "example": 0
425                  },
426                  "DATASET_WRITES": {
427                    "type": "integer",
428                    "example": 0
429                  },
430                  "KEY_VALUE_STORE_READS": {
431                    "type": "integer",
432                    "example": 0
433                  },
434                  "KEY_VALUE_STORE_WRITES": {
435                    "type": "number",
436                    "example": 0.00005
437                  },
438                  "KEY_VALUE_STORE_LISTS": {
439                    "type": "integer",
440                    "example": 0
441                  },
442                  "REQUEST_QUEUE_READS": {
443                    "type": "integer",
444                    "example": 0
445                  },
446                  "REQUEST_QUEUE_WRITES": {
447                    "type": "integer",
448                    "example": 0
449                  },
450                  "DATA_TRANSFER_INTERNAL_GBYTES": {
451                    "type": "integer",
452                    "example": 0
453                  },
454                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
455                    "type": "integer",
456                    "example": 0
457                  },
458                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
459                    "type": "integer",
460                    "example": 0
461                  },
462                  "PROXY_SERPS": {
463                    "type": "integer",
464                    "example": 0
465                  }
466                }
467              }
468            }
469          }
470        }
471      }
472    }
473  }
474}

Keywords Extractor OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for Keywords Extractor from the options below:

If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients:

Developer
Maintained by Community

Actor Metrics

  • 27 monthly users

  • 10 bookmarks

  • >99% runs succeeded

  • Created in Mar 2020

  • Modified 4 years ago