Apify Store Scraper avatar

Apify Store Scraper

Deprecated
Go to Store
This Actor is deprecated

This Actor is unavailable because the developer has decided to deprecate it. Would you like to try a similar Actor instead?

See alternative Actors
Apify Store Scraper

Apify Store Scraper

jurooravec/apify-store-scraper

Extract all Actors from the Apify Store. Includes cost, trial minutes, number of users, number of builds, version, author, and more. Optionally filter by category or search term. Download as JSON, JSONL, XML, CSV, Excel, or HTML formats.

You can access the Apify Store Scraper 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": "XmqTtUu4KB2nMS2rR"
6  },
7  "servers": [
8    {
9      "url": "https://api.apify.com/v2"
10    }
11  ],
12  "paths": {
13    "/acts/jurooravec~apify-store-scraper/run-sync-get-dataset-items": {
14      "post": {
15        "operationId": "run-sync-get-dataset-items-jurooravec-apify-store-scraper",
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/jurooravec~apify-store-scraper/runs": {
50      "post": {
51        "operationId": "runs-sync-jurooravec-apify-store-scraper",
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/jurooravec~apify-store-scraper/run-sync": {
93      "post": {
94        "operationId": "run-sync-jurooravec-apify-store-scraper",
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        ],
136        "properties": {
137          "startUrls": {
138            "title": "Start URLs",
139            "type": "array",
140            "description": "Select specific URLs to scrape.",
141            "default": [
142              {
143                "url": "https://apify.com/store"
144              }
145            ],
146            "items": {
147              "type": "object",
148              "required": [
149                "url"
150              ],
151              "properties": {
152                "url": {
153                  "type": "string",
154                  "title": "URL of a web page",
155                  "format": "uri"
156                }
157              }
158            }
159          },
160          "listingFilterQuery": {
161            "title": "Search query",
162            "type": "string",
163            "description": "If given, only actors matching the query will be retrieved"
164          },
165          "listingFilterCategory": {
166            "title": "Actor category",
167            "enum": [
168              "ai",
169              "automation",
170              "business",
171              "covid-19",
172              "developer examples",
173              "developer tools",
174              "e-commerce",
175              "games",
176              "jobs",
177              "lead generation",
178              "marketing",
179              "news",
180              "seo tools",
181              "social media",
182              "travel",
183              "videos",
184              "real estate",
185              "sports",
186              "education",
187              "other"
188            ],
189            "type": "string",
190            "description": "If given, only actors from this category will be retried"
191          },
192          "listingFilterMaxCount": {
193            "title": "Target number of results",
194            "minimum": 1,
195            "type": "integer",
196            "description": "If set, only up to this number of entries will be extracted.\n        The actual number of entries might be higher than this because\n        the results are paginated."
197          },
198          "proxy": {
199            "title": "Proxy configuration",
200            "type": "object",
201            "description": "Select proxies to be used by your crawler."
202          },
203          "includePersonalData": {
204            "title": "Include personal data",
205            "type": "boolean",
206            "description": "By default, fields that are potential personal data are censored. Toggle this option on to get the un-uncensored values.<br/><br/><strong>WARNING:</strong> Turn this on ONLY if you have consent, legal basis for using the data, or at your own risk. <a href=\"https://gdpr.eu/eu-gdpr-personal-data/\">Learn more</a>",
207            "default": false
208          },
209          "outputDatasetIdOrName": {
210            "title": "Dataset ID or name",
211            "type": "string",
212            "description": "By default, data is written to Default dataset.\n    Set this option if you want to write data to non-default dataset.\n    <a href=\"https://docs.apify.com/sdk/python/docs/concepts/storages#opening-named-and-unnamed-storages\">Learn more</a>"
213          },
214          "outputPickFields": {
215            "title": "Rename dataset fields",
216            "type": "array",
217            "description": "Select a subset of fields of an entry that will be pushed to the dataset.<br/><br/>\n    If not set, all fields on an entry will be pushed to the dataset.<br/><br/>\n    This is done before `outputRenameFields`.<br/><br/>\n    Keys can be nested, e.g. `\"someProp.value[0]\"`.\n    Nested path is resolved using <a href=\"https://lodash.com/docs/4.17.15#get\">Lodash.get()</a>.",
218            "items": {
219              "type": "string"
220            }
221          },
222          "outputRenameFields": {
223            "title": "Rename dataset fields",
224            "type": "object",
225            "description": "Rename fields (columns) of the output data.<br/><br/>\n    If not set, all fields will have their original names.<br/><br/>\n    This is done after `outputPickFields`.<br/><br/>\n    Keys can be nested, e.g. `\"someProp.value[0]\"`.\n    Nested path is resolved using <a href=\"https://lodash.com/docs/4.17.15#get\">Lodash.get()</a>."
226          },
227          "metamorphActorId": {
228            "title": "Metamorph actor ID - metamorph to another actor at the end",
229            "type": "string",
230            "description": "Use this option if you want to run another actor with the same dataset after this actor has finished (AKA metamorph into another actor). <a href=\"https://docs.apify.com/sdk/python/docs/concepts/interacting-with-other-actors#actormetamorph\">Learn more</a> <br/><br/>New actor is identified by its ID, e.g. \"apify/web-scraper\"."
231          },
232          "metamorphActorBuild": {
233            "title": "Metamorph actor build",
234            "type": "string",
235            "description": "Tag or number of the target actor build to metamorph into (e.g. 'beta' or '1.2.345')"
236          },
237          "metamorphActorInput": {
238            "title": "Metamorph actor input",
239            "type": "object",
240            "description": "Input object passed to the follow-up (metamorph) actor. <a href=\"https://docs.apify.com/sdk/python/docs/concepts/interacting-with-other-actors#actormetamorph\">Learn more</a>"
241          },
242          "maxRequestRetries": {
243            "title": "maxRequestRetries",
244            "minimum": 0,
245            "type": "integer",
246            "description": "Indicates how many times the request is retried if <a href=\"https://crawlee.dev/api/basic-crawler/interface/BasicCrawlerOptions#requestHandler\">BasicCrawlerOptions.requestHandler</a> fails."
247          },
248          "maxRequestsPerMinute": {
249            "title": "maxRequestsPerMinute",
250            "minimum": 1,
251            "type": "integer",
252            "description": "The maximum number of requests per minute the crawler should run. We can pass any positive, non-zero integer."
253          },
254          "maxRequestsPerCrawl": {
255            "title": "maxRequestsPerCrawl",
256            "minimum": 1,
257            "type": "integer",
258            "description": "Maximum number of pages that the crawler will open. The crawl will stop when this limit is reached. <br/><br/> <strong>NOTE:</strong> In cases of parallel crawling, the actual number of pages visited might be slightly higher than this value."
259          },
260          "minConcurrency": {
261            "title": "minConcurrency",
262            "minimum": 1,
263            "type": "integer",
264            "description": "Sets the minimum concurrency (parallelism) for the crawl.<br/><br/><strong>WARNING:</strong> If we set this value too high with respect to the available system memory and CPU, our crawler will run extremely slow or crash. If not sure, it's better to keep the default value and the concurrency will scale up automatically."
265          },
266          "maxConcurrency": {
267            "title": "maxConcurrency",
268            "minimum": 1,
269            "type": "integer",
270            "description": "Sets the maximum concurrency (parallelism) for the crawl."
271          },
272          "navigationTimeoutSecs": {
273            "title": "navigationTimeoutSecs",
274            "minimum": 0,
275            "type": "integer",
276            "description": "Timeout in which the HTTP request to the resource needs to finish, given in seconds."
277          },
278          "requestHandlerTimeoutSecs": {
279            "title": "requestHandlerTimeoutSecs",
280            "minimum": 0,
281            "type": "integer",
282            "description": "Timeout in which the function passed as <a href=\"https://crawlee.dev/api/basic-crawler/interface/BasicCrawlerOptions#requestHandler\">BasicCrawlerOptions.requestHandler</a> needs to finish, in seconds."
283          },
284          "keepAlive": {
285            "title": "keepAlive",
286            "type": "boolean",
287            "description": "Allows to keep the crawler alive even if the RequestQueue gets empty. With keepAlive: true the crawler will keep running, waiting for more requests to come."
288          },
289          "additionalMimeTypes": {
290            "title": "additionalMimeTypes",
291            "uniqueItems": true,
292            "type": "array",
293            "description": "An array of MIME types you want the crawler to load and process. By default, only text/html and application/xhtml+xml MIME types are supported.",
294            "items": {
295              "type": "string"
296            }
297          },
298          "suggestResponseEncoding": {
299            "title": "suggestResponseEncoding",
300            "type": "string",
301            "description": "By default this crawler will extract correct encoding from the HTTP response headers. There are some websites which use invalid headers. Those are encoded using the UTF-8 encoding. If those sites actually use a different encoding, the response will be corrupted. You can use suggestResponseEncoding to fall back to a certain encoding, if you know that your target website uses it. To force a certain encoding, disregarding the response headers, use forceResponseEncoding."
302          },
303          "forceResponseEncoding": {
304            "title": "forceResponseEncoding",
305            "type": "string",
306            "description": "By default this crawler will extract correct encoding from the HTTP response headers. Use forceResponseEncoding to force a certain encoding, disregarding the response headers. To only provide a default for missing encodings, use suggestResponseEncoding."
307          },
308          "logLevel": {
309            "title": "Log Level",
310            "enum": [
311              "off",
312              "debug",
313              "info",
314              "warn",
315              "error"
316            ],
317            "type": "string",
318            "description": "Select how detailed should be the logging.",
319            "default": "info"
320          },
321          "errorReportingDatasetId": {
322            "title": "Error reporting dataset ID",
323            "type": "string",
324            "description": "Apify dataset ID or name to which errors should be captured.<br/><br/>\n    Default: `'REPORTING'`.",
325            "default": "REPORTING"
326          },
327          "errorSendToSentry": {
328            "title": "Send errors to Sentry",
329            "type": "boolean",
330            "description": "Whether to send actor error reports to <a href=\"https://sentry.io/\">Sentry</a>.<br/><br/>\n    This info is used by the author of this actor to identify broken integrations,\n    and track down and fix issues.",
331            "default": true
332          }
333        }
334      },
335      "runsResponseSchema": {
336        "type": "object",
337        "properties": {
338          "data": {
339            "type": "object",
340            "properties": {
341              "id": {
342                "type": "string"
343              },
344              "actId": {
345                "type": "string"
346              },
347              "userId": {
348                "type": "string"
349              },
350              "startedAt": {
351                "type": "string",
352                "format": "date-time",
353                "example": "2025-01-08T00:00:00.000Z"
354              },
355              "finishedAt": {
356                "type": "string",
357                "format": "date-time",
358                "example": "2025-01-08T00:00:00.000Z"
359              },
360              "status": {
361                "type": "string",
362                "example": "READY"
363              },
364              "meta": {
365                "type": "object",
366                "properties": {
367                  "origin": {
368                    "type": "string",
369                    "example": "API"
370                  },
371                  "userAgent": {
372                    "type": "string"
373                  }
374                }
375              },
376              "stats": {
377                "type": "object",
378                "properties": {
379                  "inputBodyLen": {
380                    "type": "integer",
381                    "example": 2000
382                  },
383                  "rebootCount": {
384                    "type": "integer",
385                    "example": 0
386                  },
387                  "restartCount": {
388                    "type": "integer",
389                    "example": 0
390                  },
391                  "resurrectCount": {
392                    "type": "integer",
393                    "example": 0
394                  },
395                  "computeUnits": {
396                    "type": "integer",
397                    "example": 0
398                  }
399                }
400              },
401              "options": {
402                "type": "object",
403                "properties": {
404                  "build": {
405                    "type": "string",
406                    "example": "latest"
407                  },
408                  "timeoutSecs": {
409                    "type": "integer",
410                    "example": 300
411                  },
412                  "memoryMbytes": {
413                    "type": "integer",
414                    "example": 1024
415                  },
416                  "diskMbytes": {
417                    "type": "integer",
418                    "example": 2048
419                  }
420                }
421              },
422              "buildId": {
423                "type": "string"
424              },
425              "defaultKeyValueStoreId": {
426                "type": "string"
427              },
428              "defaultDatasetId": {
429                "type": "string"
430              },
431              "defaultRequestQueueId": {
432                "type": "string"
433              },
434              "buildNumber": {
435                "type": "string",
436                "example": "1.0.0"
437              },
438              "containerUrl": {
439                "type": "string"
440              },
441              "usage": {
442                "type": "object",
443                "properties": {
444                  "ACTOR_COMPUTE_UNITS": {
445                    "type": "integer",
446                    "example": 0
447                  },
448                  "DATASET_READS": {
449                    "type": "integer",
450                    "example": 0
451                  },
452                  "DATASET_WRITES": {
453                    "type": "integer",
454                    "example": 0
455                  },
456                  "KEY_VALUE_STORE_READS": {
457                    "type": "integer",
458                    "example": 0
459                  },
460                  "KEY_VALUE_STORE_WRITES": {
461                    "type": "integer",
462                    "example": 1
463                  },
464                  "KEY_VALUE_STORE_LISTS": {
465                    "type": "integer",
466                    "example": 0
467                  },
468                  "REQUEST_QUEUE_READS": {
469                    "type": "integer",
470                    "example": 0
471                  },
472                  "REQUEST_QUEUE_WRITES": {
473                    "type": "integer",
474                    "example": 0
475                  },
476                  "DATA_TRANSFER_INTERNAL_GBYTES": {
477                    "type": "integer",
478                    "example": 0
479                  },
480                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
481                    "type": "integer",
482                    "example": 0
483                  },
484                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
485                    "type": "integer",
486                    "example": 0
487                  },
488                  "PROXY_SERPS": {
489                    "type": "integer",
490                    "example": 0
491                  }
492                }
493              },
494              "usageTotalUsd": {
495                "type": "number",
496                "example": 0.00005
497              },
498              "usageUsd": {
499                "type": "object",
500                "properties": {
501                  "ACTOR_COMPUTE_UNITS": {
502                    "type": "integer",
503                    "example": 0
504                  },
505                  "DATASET_READS": {
506                    "type": "integer",
507                    "example": 0
508                  },
509                  "DATASET_WRITES": {
510                    "type": "integer",
511                    "example": 0
512                  },
513                  "KEY_VALUE_STORE_READS": {
514                    "type": "integer",
515                    "example": 0
516                  },
517                  "KEY_VALUE_STORE_WRITES": {
518                    "type": "number",
519                    "example": 0.00005
520                  },
521                  "KEY_VALUE_STORE_LISTS": {
522                    "type": "integer",
523                    "example": 0
524                  },
525                  "REQUEST_QUEUE_READS": {
526                    "type": "integer",
527                    "example": 0
528                  },
529                  "REQUEST_QUEUE_WRITES": {
530                    "type": "integer",
531                    "example": 0
532                  },
533                  "DATA_TRANSFER_INTERNAL_GBYTES": {
534                    "type": "integer",
535                    "example": 0
536                  },
537                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
538                    "type": "integer",
539                    "example": 0
540                  },
541                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
542                    "type": "integer",
543                    "example": 0
544                  },
545                  "PROXY_SERPS": {
546                    "type": "integer",
547                    "example": 0
548                  }
549                }
550              }
551            }
552          }
553        }
554      }
555    }
556  }
557}

Apify Store Scraper 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 Apify Store Scraper 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