GraphQL Extractor avatar

GraphQL Extractor

Try for free

No credit card required

Go to Store
GraphQL Extractor

GraphQL Extractor

jupri/graphql-extractor
Try for free

No credit card required

πŸ’« Universal GraphQL Scraper

You can access the GraphQL 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": "QGvYQdohPETzd30T9"
6  },
7  "servers": [
8    {
9      "url": "https://api.apify.com/v2"
10    }
11  ],
12  "paths": {
13    "/acts/jupri~graphql-extractor/run-sync-get-dataset-items": {
14      "post": {
15        "operationId": "run-sync-get-dataset-items-jupri-graphql-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/jupri~graphql-extractor/runs": {
50      "post": {
51        "operationId": "runs-sync-jupri-graphql-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/jupri~graphql-extractor/run-sync": {
93      "post": {
94        "operationId": "run-sync-jupri-graphql-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        "properties": {
134          "limit": {
135            "title": "♾️ LIMIT",
136            "type": "integer",
137            "description": "πŸ’‘ Number of results"
138          },
139          "url": {
140            "title": "❓ URL",
141            "type": "string",
142            "description": "πŸ’‘ GraphQL URL"
143          },
144          "query": {
145            "title": "❓ QUERY",
146            "type": "string",
147            "description": "πŸ’‘ GraphQL command or SHA1 Code (Persistent QUERY Code => <code>32 BYTES/64 HEX Char</code>)"
148          },
149          "variables": {
150            "title": "❓ VARIABLES",
151            "type": "string",
152            "description": "πŸ’‘ GraphQL input variables (JSON)"
153          },
154          "cursor.step": {
155            "title": "❓ STEP",
156            "type": "integer",
157            "description": "πŸ’‘ Maximum number of <code>IPP</code> (items-per-page)"
158          },
159          "cursor.index": {
160            "title": "❓ INDEX",
161            "type": "string",
162            "description": "πŸ’‘ Pagination MODE 1️⃣: <code>VARIABLES[INDEX]</code> value will increased by <code>+1</code>"
163          },
164          "cursor.next": {
165            "title": "❓ NEXT",
166            "type": "string",
167            "description": "πŸ’‘ Pagination MODE 2️⃣: <code>VARIABLES[NEXT]</code> will set to cursor value from previous request"
168          },
169          "cursor.offset": {
170            "title": "❓ OFFSET",
171            "type": "string",
172            "description": "πŸ’‘ Pagination MODE 3️⃣: <code>VARIABLES[OFFSET]</code> value will increased by <code>+STEP</code>"
173          },
174          "cursor.limit": {
175            "title": "❓ LIMIT",
176            "type": "string",
177            "description": "πŸ’‘ Pagination: <code>VARIABLES[LIMIT]</code> will set to number of <code>IPP</code> (<code>STEP</code>)"
178          },
179          "parse.root": {
180            "title": "❓ ROOT",
181            "type": "string",
182            "description": "πŸ’‘ Root of data"
183          },
184          "parse.list": {
185            "title": "❓ LIST",
186            "type": "string",
187            "description": "πŸ’‘ <code>ROOT[LIST]</code>: Result List (relative to <code>ROOT</code>)"
188          },
189          "parse.item": {
190            "title": "❓ ITEM",
191            "type": "string",
192            "description": "πŸ’‘ <code>LIST[ITEM]</code>: Path to Item (relative to <code>LIST</code>)"
193          },
194          "parse.total": {
195            "title": "❓ TOTAL",
196            "type": "string",
197            "description": "πŸ’‘ <code>ROOT[TOTAL]</code>: Total number of Data (relative to <code>ROOT</code>)"
198          },
199          "parse.next": {
200            "title": "❓ NEXT",
201            "type": "string",
202            "description": "πŸ’‘ <code>ROOT[NEXT]</code>: Cursor value for next page request"
203          },
204          "no_typename": {
205            "title": "❓ Remove request \"__typename\" atttributes",
206            "type": "boolean",
207            "description": ""
208          },
209          "dev_proxy_config": {
210            "title": "🌐 PROXY NETWORKING",
211            "type": "object",
212            "description": "πŸ’‘ <b>Supported protocol:</b><br><br><b>HTTP(S), SOCKS5</b><br><code>{http|socks5}://{user:pass}@{hostname|ip-address}:port</code><br><br><b>Example</b>: <code>socks5://example.com:9000</code>"
213          },
214          "dev_custom_headers": {
215            "title": "πŸ“œ HTTP HEADERS",
216            "type": "array",
217            "description": "πŸ’‘ Additional HTTP Headers",
218            "items": {
219              "type": "object",
220              "required": [
221                "key",
222                "value"
223              ],
224              "properties": {
225                "key": {
226                  "type": "string",
227                  "title": "Key"
228                },
229                "value": {
230                  "type": "string",
231                  "title": "Value"
232                }
233              }
234            }
235          },
236          "dev_custom_cookies": {
237            "title": "🍰 HTTP COOKIES",
238            "type": "array",
239            "description": "πŸ’‘ Additional HTTP Cookies",
240            "items": {
241              "type": "object",
242              "required": [
243                "key",
244                "value"
245              ],
246              "properties": {
247                "key": {
248                  "type": "string",
249                  "title": "Key"
250                },
251                "value": {
252                  "type": "string",
253                  "title": "Value"
254                }
255              }
256            }
257          },
258          "dev_transform_fields": {
259            "title": "♻️ CUSTOM FIELD",
260            "type": "array",
261            "description": "πŸ’‘ <b>Transform the resulting output. Select only needed fields.</b><br><br>For nested object use <b>DOT</b>. For example: <pre>address.streetAddress</pre><br>For nested array use <b>NUMBER</b> <i>(index of array element starting from index=0)</i>. For example: <pre>images.0.url</pre>",
262            "items": {
263              "type": "object",
264              "required": [
265                "key",
266                "value"
267              ],
268              "properties": {
269                "key": {
270                  "type": "string",
271                  "title": "Key"
272                },
273                "value": {
274                  "type": "string",
275                  "title": "Value"
276                }
277              }
278            }
279          },
280          "dev_dataset_name": {
281            "title": "πŸ“ CUSTOM STORAGE",
282            "type": "string",
283            "description": "πŸ’‘ <b>Save results into custom named Dataset, use mask to customize dataset name</b><br><br><code>{ACTOR} = actor name<br>{DATE} = date (YYYYMMDD)<br>{TIME} = time (HHMMSS)</code><br><br>This masks can be used to autogenerate Dataset Name.<br><br>example: <i><code>data-{DATE}</code></i><br>Depending on today date the dataset name will be: <code>data-20230603</code><i><br><br>default: <code>data-{ACTOR}-{DATE}-{TIME}</code></i>"
284          },
285          "dev_dataset_clear": {
286            "title": "Clear Storage",
287            "type": "boolean",
288            "description": "Clear Dataset before insert/update."
289          },
290          "dev_no_strip": {
291            "title": "Disable data cleansing",
292            "type": "boolean",
293            "description": "πŸ’‘ Keep/Save empty values <i><code>(NULL, FALSE, empty ARRAY, empty OBJECT, empty STRING)</code></i>"
294          }
295        }
296      },
297      "runsResponseSchema": {
298        "type": "object",
299        "properties": {
300          "data": {
301            "type": "object",
302            "properties": {
303              "id": {
304                "type": "string"
305              },
306              "actId": {
307                "type": "string"
308              },
309              "userId": {
310                "type": "string"
311              },
312              "startedAt": {
313                "type": "string",
314                "format": "date-time",
315                "example": "2025-01-08T00:00:00.000Z"
316              },
317              "finishedAt": {
318                "type": "string",
319                "format": "date-time",
320                "example": "2025-01-08T00:00:00.000Z"
321              },
322              "status": {
323                "type": "string",
324                "example": "READY"
325              },
326              "meta": {
327                "type": "object",
328                "properties": {
329                  "origin": {
330                    "type": "string",
331                    "example": "API"
332                  },
333                  "userAgent": {
334                    "type": "string"
335                  }
336                }
337              },
338              "stats": {
339                "type": "object",
340                "properties": {
341                  "inputBodyLen": {
342                    "type": "integer",
343                    "example": 2000
344                  },
345                  "rebootCount": {
346                    "type": "integer",
347                    "example": 0
348                  },
349                  "restartCount": {
350                    "type": "integer",
351                    "example": 0
352                  },
353                  "resurrectCount": {
354                    "type": "integer",
355                    "example": 0
356                  },
357                  "computeUnits": {
358                    "type": "integer",
359                    "example": 0
360                  }
361                }
362              },
363              "options": {
364                "type": "object",
365                "properties": {
366                  "build": {
367                    "type": "string",
368                    "example": "latest"
369                  },
370                  "timeoutSecs": {
371                    "type": "integer",
372                    "example": 300
373                  },
374                  "memoryMbytes": {
375                    "type": "integer",
376                    "example": 1024
377                  },
378                  "diskMbytes": {
379                    "type": "integer",
380                    "example": 2048
381                  }
382                }
383              },
384              "buildId": {
385                "type": "string"
386              },
387              "defaultKeyValueStoreId": {
388                "type": "string"
389              },
390              "defaultDatasetId": {
391                "type": "string"
392              },
393              "defaultRequestQueueId": {
394                "type": "string"
395              },
396              "buildNumber": {
397                "type": "string",
398                "example": "1.0.0"
399              },
400              "containerUrl": {
401                "type": "string"
402              },
403              "usage": {
404                "type": "object",
405                "properties": {
406                  "ACTOR_COMPUTE_UNITS": {
407                    "type": "integer",
408                    "example": 0
409                  },
410                  "DATASET_READS": {
411                    "type": "integer",
412                    "example": 0
413                  },
414                  "DATASET_WRITES": {
415                    "type": "integer",
416                    "example": 0
417                  },
418                  "KEY_VALUE_STORE_READS": {
419                    "type": "integer",
420                    "example": 0
421                  },
422                  "KEY_VALUE_STORE_WRITES": {
423                    "type": "integer",
424                    "example": 1
425                  },
426                  "KEY_VALUE_STORE_LISTS": {
427                    "type": "integer",
428                    "example": 0
429                  },
430                  "REQUEST_QUEUE_READS": {
431                    "type": "integer",
432                    "example": 0
433                  },
434                  "REQUEST_QUEUE_WRITES": {
435                    "type": "integer",
436                    "example": 0
437                  },
438                  "DATA_TRANSFER_INTERNAL_GBYTES": {
439                    "type": "integer",
440                    "example": 0
441                  },
442                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
443                    "type": "integer",
444                    "example": 0
445                  },
446                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
447                    "type": "integer",
448                    "example": 0
449                  },
450                  "PROXY_SERPS": {
451                    "type": "integer",
452                    "example": 0
453                  }
454                }
455              },
456              "usageTotalUsd": {
457                "type": "number",
458                "example": 0.00005
459              },
460              "usageUsd": {
461                "type": "object",
462                "properties": {
463                  "ACTOR_COMPUTE_UNITS": {
464                    "type": "integer",
465                    "example": 0
466                  },
467                  "DATASET_READS": {
468                    "type": "integer",
469                    "example": 0
470                  },
471                  "DATASET_WRITES": {
472                    "type": "integer",
473                    "example": 0
474                  },
475                  "KEY_VALUE_STORE_READS": {
476                    "type": "integer",
477                    "example": 0
478                  },
479                  "KEY_VALUE_STORE_WRITES": {
480                    "type": "number",
481                    "example": 0.00005
482                  },
483                  "KEY_VALUE_STORE_LISTS": {
484                    "type": "integer",
485                    "example": 0
486                  },
487                  "REQUEST_QUEUE_READS": {
488                    "type": "integer",
489                    "example": 0
490                  },
491                  "REQUEST_QUEUE_WRITES": {
492                    "type": "integer",
493                    "example": 0
494                  },
495                  "DATA_TRANSFER_INTERNAL_GBYTES": {
496                    "type": "integer",
497                    "example": 0
498                  },
499                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
500                    "type": "integer",
501                    "example": 0
502                  },
503                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
504                    "type": "integer",
505                    "example": 0
506                  },
507                  "PROXY_SERPS": {
508                    "type": "integer",
509                    "example": 0
510                  }
511                }
512              }
513            }
514          }
515        }
516      }
517    }
518  }
519}

GraphQL 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 GraphQL 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

  • 5 monthly users

  • 1 star

  • 72% runs succeeded

  • Created in Oct 2024

  • Modified 3 months ago

Categories