{"openapi":"3.1.0","info":{"title":"PandorLabs API","version":"v1","description":"Run scrapers, follow their runs and read the rows they collect. Every scraper is also published as its own operation with a typed input."},"servers":[{"url":"https://api.pandorlabs.com/v1"}],"tags":[{"name":"scrapers","x-displayName":"Scrapers","description":"The catalogue of scrapers. Each one declares the parameters it accepts as a JSON Schema, so a client can build a request without guessing. A scraper in live mode is run on demand with your own parameters; one in dataset mode is refreshed on a schedule (refreshEveryMinutes) and is bought as a dataset download instead of run."},{"name":"runs","x-displayName":"Runs","description":"One execution of a scraper with your own parameters. Runs are asynchronous: start one, poll its status, and read its rows once it has finished. A finished run is billed 2 credits per 100 rows it collected."},{"name":"downloads","x-displayName":"Dataset downloads","description":"A whole dataset as one file, paid in credits: 1 per 100 rows when the stored data is recent enough, 2 per 100 rows when the scraper has to be re-run first."},{"name":"datasets","x-displayName":"Datasets","description":"Everything a scraper has ever collected. A scraper and its dataset share one id. List and describe datasets here; the rows themselves are delivered as a paid download."},{"name":"lookups","x-displayName":"Lookups","description":"Fetch individual profiles on demand, from cache or live, paid in credits."},{"name":"vectors","x-displayName":"Vector sync","description":"Push a dataset into Pinecone or Qdrant as embedded chunks and keep it in sync."},{"name":"previews","x-displayName":"Previews","description":"Render the site behind a URL as a PNG screenshot."},{"name":"account","x-displayName":"Account","description":"What the presented key can do, and the machine-readable spec."}],"security":[{"bearer":[]},{"apiKey":[]}],"paths":{"/scrapers":{"get":{"operationId":"scrapers_list","summary":"List scrapers","description":"Every scraper the key can run, with the parameters each one accepts.","tags":["scrapers"],"parameters":[{"name":"category","in":"query","required":false,"description":"Keep one category only.","schema":{"type":"string"}},{"name":"search","in":"query","required":false,"description":"Match against the id, name, description and tags.","schema":{"type":"string"}}],"responses":{"200":{"description":"List scrapers","content":{"application/json":{"example":{"data":[{"id":"reddit","name":"Reddit","description":"Posts from the subreddits and keywords you name.","category":"social_media","tags":["reddit","posts"],"mode":"live","parameters":[{"name":"subreddits","label":"Subreddits","type":"stringList","description":"Names only, without the r/ prefix.","default":["forhire"]}],"inputSchema":{"type":"object","additionalProperties":false,"properties":{"subreddits":{"type":"array","items":{"type":"string"},"title":"Subreddits","default":["forhire"]}}},"exampleInput":{"subreddits":["forhire"]},"lastRunAt":"2026-09-30T08:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/{scraperId}":{"get":{"operationId":"scrapers_get","summary":"Describe a scraper","description":"One scraper in full: its parameters, the JSON Schema of its input, and the fields its rows carry.","tags":["scrapers"],"parameters":[{"name":"scraperId","in":"path","required":true,"description":"Scraper id, from GET /scrapers.","schema":{"type":"string"}}],"responses":{"200":{"description":"Describe a scraper","content":{"application/json":{"example":{"id":"reddit","name":"Reddit","description":"Posts from the subreddits and keywords you name.","category":"social_media","tags":["reddit","posts"],"mode":"live","parameters":[{"name":"subreddits","label":"Subreddits","type":"stringList","description":"Names only, without the r/ prefix.","default":["forhire"]}],"inputSchema":{"type":"object","additionalProperties":false,"properties":{"subreddits":{"type":"array","items":{"type":"string"},"title":"Subreddits","default":["forhire"]}}},"exampleInput":{"subreddits":["forhire"]},"lastRunAt":"2026-09-30T08:00:00.000Z","rowCount":48210,"fields":[{"name":"title","type":"string","coverage":1}],"related":[]}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/{scraperId}/runs":{"post":{"operationId":"runs_create","summary":"Start a run","description":"Queue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"parameters":[{"name":"scraperId","in":"path","required":true,"description":"Scraper id, from GET /scrapers.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"input":{"type":"object","description":"Parameters for this run, matching the inputSchema of the scraper."},"maxAgeMinutes":{"type":"integer","default":10,"description":"Reuse your own finished run with the same input if it completed within this many minutes (at most 1440). 0 only reuses a run still in flight."}}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/runs":{"get":{"operationId":"runs_list","summary":"List your runs","description":"Runs started with any key of your account, newest first.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number, starting at 1.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Rows per page, up to 100.","schema":{"type":"integer","default":20}},{"name":"scraperId","in":"query","required":false,"description":"Keep the runs of one scraper only.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Keep runs in one status only.","schema":{"type":"string","enum":["queued","running","completed","failed","cancelled"]}}],"responses":{"200":{"description":"List your runs","content":{"application/json":{"example":{"data":[{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"running","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":128,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}],"page":1,"limit":20,"total":1,"hasNext":false}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/runs/{runId}":{"get":{"operationId":"runs_get","summary":"Get a run","description":"Status, row count so far, timings and billing of one run. Poll this until the status is completed, failed or cancelled; the run is billed at that point.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"parameters":[{"name":"runId","in":"path","required":true,"description":"Run id, returned when the run was started.","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"running","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":128,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/runs/{runId}/rows":{"get":{"operationId":"runs_rows","summary":"Read the rows of a run","description":"Only the rows this run collected. Available once the run has finished and is paid: 409 while it is queued or running, 402 while the balance cannot cover it.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"parameters":[{"name":"runId","in":"path","required":true,"description":"Run id, returned when the run was started.","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number, starting at 1.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Rows per page, up to 1000.","schema":{"type":"integer","default":100}}],"responses":{"200":{"description":"Read the rows of a run","content":{"application/json":{"example":{"run":"66f2c1a9e4b0a7d3c9f01234","status":"completed","data":[{"title":"Looking for a developer to rebuild our storefront","subreddit":"forhire","score":42,"created_at":"2026-09-30T07:41:10.000Z"}],"page":1,"limit":100,"total":128,"hasNext":true}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/runs/{runId}/cancel":{"post":{"operationId":"runs_cancel","summary":"Cancel a run","description":"Stop a queued or running run. The rows it already collected are billed and stay readable.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"parameters":[{"name":"runId","in":"path","required":true,"description":"Run id, returned when the run was started.","schema":{"type":"string"}}],"responses":{"200":{"description":"Cancel a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"cancelled","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":128,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/datasets/{datasetId}/downloads":{"post":{"operationId":"downloads_create","summary":"Download a dataset","description":"Buy the whole dataset as a file. When the last successful run is within maxAgeHours the stored rows are charged at the cached rate and the download is ready at once. Otherwise the scraper is re-run with its configured settings, the download stays refreshing until that run completes, and the rows the dataset then holds are charged at the live rate, so the credits in the response are an estimate until the download is ready. A failed refresh charges nothing. Answers 402 when the balance cannot cover the quote.\n\nRequires the `datasets:export` scope.","tags":["downloads"],"parameters":[{"name":"datasetId","in":"path","required":true,"description":"Dataset id. It is the id of the scraper that fills it.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"maxAgeHours":{"type":"integer","default":24,"description":"Oldest data you accept, in hours. 0 always re-runs the scraper."},"format":{"type":"string","enum":["csv","jsonl"],"default":"csv","description":"File format."}}}}}},"responses":{"202":{"description":"Download a dataset","content":{"application/json":{"example":{"id":"66f2c3d1e4b0a7d3c9f05678","datasetId":"reddit","status":"ready","freshness":"cached","format":"csv","maxAgeHours":24,"rowCount":48210,"credits":483,"createdAt":"2026-09-30T09:12:04.000Z","readyAt":"2026-09-30T09:12:04.000Z","expiresAt":"2026-10-01T09:12:04.000Z","links":{"self":"/v1/downloads/66f2c3d1e4b0a7d3c9f05678","file":"/v1/downloads/66f2c3d1e4b0a7d3c9f05678/file"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/downloads":{"get":{"operationId":"downloads_list","summary":"List your downloads","description":"Downloads of your account, newest first.\n\nRequires the `datasets:export` scope.","tags":["downloads"],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number, starting at 1.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Rows per page, up to 100.","schema":{"type":"integer","default":20}}],"responses":{"200":{"description":"List your downloads","content":{"application/json":{"example":{"data":[{"id":"66f2c3d1e4b0a7d3c9f05678","datasetId":"reddit","status":"ready","freshness":"cached","format":"csv","maxAgeHours":24,"rowCount":48210,"credits":483,"createdAt":"2026-09-30T09:12:04.000Z","readyAt":"2026-09-30T09:12:04.000Z","expiresAt":"2026-10-01T09:12:04.000Z","links":{"self":"/v1/downloads/66f2c3d1e4b0a7d3c9f05678","file":"/v1/downloads/66f2c3d1e4b0a7d3c9f05678/file"}}],"page":1,"limit":20,"total":1,"hasNext":false}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/downloads/{downloadId}":{"get":{"operationId":"downloads_get","summary":"Get a download","description":"Status and price of one download. Poll this until the status is ready; a download waiting on credits is charged again on each call.\n\nRequires the `datasets:export` scope.","tags":["downloads"],"parameters":[{"name":"downloadId","in":"path","required":true,"description":"Download id, returned when the download was created.","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a download","content":{"application/json":{"example":{"id":"66f2c3d1e4b0a7d3c9f05678","datasetId":"reddit","status":"ready","freshness":"cached","format":"csv","maxAgeHours":24,"rowCount":48210,"credits":483,"createdAt":"2026-09-30T09:12:04.000Z","readyAt":"2026-09-30T09:12:04.000Z","expiresAt":"2026-10-01T09:12:04.000Z","links":{"self":"/v1/downloads/66f2c3d1e4b0a7d3c9f05678","file":"/v1/downloads/66f2c3d1e4b0a7d3c9f05678/file"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/downloads/{downloadId}/file":{"get":{"operationId":"downloads_file","summary":"Fetch the file","description":"The dataset as CSV or JSONL. A paid download can be fetched any number of times for 24 hours. Answers 409 while it is refreshing or when it failed, 402 while it waits on credits, 410 once it expired.\n\nRequires the `datasets:export` scope.","tags":["downloads"],"parameters":[{"name":"downloadId","in":"path","required":true,"description":"Download id, returned when the download was created.","schema":{"type":"string"}}],"responses":{"200":{"description":"Fetch the file","content":{"text/csv":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/datasets":{"get":{"operationId":"datasets_list","summary":"List datasets","description":"Every dataset you can read, with its row count.\n\nRequires the `datasets:read` scope.","tags":["datasets"],"parameters":[],"responses":{"200":{"description":"List datasets","content":{"application/json":{"example":{"data":[{"id":"reddit","name":"Reddit","description":"Posts from the subreddits and keywords you name.","category":"social_media","rowCount":48210,"tags":["reddit","posts"],"updatedAt":"2026-09-30T08:00:00.000Z"}]}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/datasets/{datasetId}":{"get":{"operationId":"datasets_get","summary":"Describe a dataset","description":"One dataset and its columns. Rows have no declared schema, so the fields are discovered from a sample, with the share of rows that carry each one.\n\nRequires the `datasets:read` scope.","tags":["datasets"],"parameters":[{"name":"datasetId","in":"path","required":true,"description":"Dataset id. It is the id of the scraper that fills it.","schema":{"type":"string"}}],"responses":{"200":{"description":"Describe a dataset","content":{"application/json":{"example":{"id":"reddit","name":"Reddit","description":"Posts from the subreddits and keywords you name.","category":"social_media","rowCount":48210,"tags":["reddit","posts"],"updatedAt":"2026-09-30T08:00:00.000Z","fields":[{"name":"title","type":"string","coverage":1}]}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/lookups/pricing":{"get":{"operationId":"lookups_pricing","summary":"Lookup pricing","description":"Credits per result for each platform, cached and live.","tags":["lookups"],"parameters":[],"responses":{"200":{"description":"Lookup pricing","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/lookups/{platform}":{"post":{"operationId":"lookups_run","summary":"Look up profiles","description":"Fetch up to 100 profiles in one call. Spends credits from your balance.\n\nRequires the `profiles:lookup` scope.","tags":["lookups"],"parameters":[{"name":"platform","in":"path","required":true,"description":"Platform to look up on.","schema":{"type":"string","enum":["linkedin"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string"},"description":"Profile URLs or handles, 1 to 100 of them."},"freshness":{"type":"string","enum":["cached","live"],"description":"cached answers from stored profiles; live fetches each one now."}},"required":["targets"]}}}},"responses":{"200":{"description":"Look up profiles","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/credits":{"get":{"operationId":"credits_get","summary":"Credit balance","description":"Your balance and recent cached versus live usage.\n\nRequires the `profiles:lookup` scope.","tags":["lookups"],"parameters":[],"responses":{"200":{"description":"Credit balance","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/vector-destinations":{"get":{"operationId":"vectors_list","summary":"List vector destinations","description":"Your Pinecone and Qdrant destinations.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[],"responses":{"200":{"description":"List vector destinations","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}},"post":{"operationId":"vectors_create","summary":"Create a vector destination","description":"Connect a dataset to a vector database.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Label for the destination."},"provider":{"type":"string","enum":["pinecone","qdrant"],"description":"Vector database."},"endpoint":{"type":"string","description":"Index host or cluster URL."},"apiKey":{"type":"string","description":"Credential for the vector database. Stored encrypted."},"datasetId":{"type":"string","description":"Dataset to push."},"collection":{"type":"string","description":"Qdrant collection name."},"namespace":{"type":"string","description":"Pinecone namespace."},"filters":{"type":"array","items":{"type":"string"},"description":"field:operator:value clauses narrowing the rows to push."},"textFields":{"type":"array","items":{"type":"string"},"description":"Fields to embed."},"metadataFields":{"type":"array","items":{"type":"string"},"description":"Fields to store beside each vector."},"autoSync":{"type":"boolean","description":"Sync again whenever the dataset is refreshed."}},"required":["name","provider","endpoint","apiKey","datasetId"]}}}},"responses":{"201":{"description":"Create a vector destination","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/vector-destinations/{id}":{"get":{"operationId":"vectors_get","summary":"Get a vector destination","description":"One destination and its settings.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[{"name":"id","in":"path","required":true,"description":"Vector destination id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a vector destination","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}},"patch":{"operationId":"vectors_update","summary":"Update a vector destination","description":"Change any of the fields accepted on creation. Fields left out keep their value.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[{"name":"id","in":"path","required":true,"description":"Vector destination id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Update a vector destination","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}},"delete":{"operationId":"vectors_delete","summary":"Delete a vector destination","description":"Remove the destination. Vectors already pushed are kept.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[{"name":"id","in":"path","required":true,"description":"Vector destination id (UUID).","schema":{"type":"string"}}],"responses":{"204":{"description":"Done"},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/vector-destinations/{id}/syncs":{"get":{"operationId":"vectors_syncs","summary":"List syncs","description":"Past syncs of one destination.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[{"name":"id","in":"path","required":true,"description":"Vector destination id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"List syncs","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}},"post":{"operationId":"vectors_sync","summary":"Start a sync","description":"Chunk, embed and upsert the dataset now.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[{"name":"id","in":"path","required":true,"description":"Vector destination id (UUID).","schema":{"type":"string"}}],"responses":{"202":{"description":"Start a sync","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/vector-syncs/{id}":{"get":{"operationId":"vectors_syncStatus","summary":"Get a sync","description":"Progress of one sync.\n\nRequires the `datasets:vector` scope.","tags":["vectors"],"parameters":[{"name":"id","in":"path","required":true,"description":"Sync id (UUID).","schema":{"type":"string"}}],"responses":{"200":{"description":"Get a sync","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/preview":{"post":{"operationId":"previews_render","summary":"Render a preview","description":"A PNG screenshot of the site behind a URL.\n\nRequires the `preview:render` scope.","tags":["previews"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"http or https URL to render."},"fullPage":{"type":"boolean","description":"Capture the whole page rather than the viewport."},"width":{"type":"integer","description":"Viewport width, 320 to 2560."},"height":{"type":"integer","description":"Viewport height, 240 to 4000."},"maxAgeSeconds":{"type":"integer","description":"Accept a cached render no older than this."},"filename":{"type":"string","description":"Name of the downloaded file, without the extension."}},"required":["url"]}}}},"responses":{"200":{"description":"Render a preview","content":{"image/png":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/":{"get":{"operationId":"account_index","summary":"Inspect the key","description":"The scopes and rate limit of the presented key, and the endpoints it can reach.","tags":["account"],"parameters":[],"responses":{"200":{"description":"Inspect the key","content":{"application/json":{}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/openapi.json":{"get":{"operationId":"account_openapi","summary":"OpenAPI document","description":"This API as an OpenAPI 3.1 document, generated from the live scraper catalogue with one typed operation per scraper. No key needed.","tags":["account"],"security":[],"parameters":[],"responses":{"200":{"description":"OpenAPI document","content":{"application/json":{}}}}}},"/scrapers/cryptopunks-leaderboard/runs":{"post":{"operationId":"run_cryptopunks_leaderboard","summary":"Run CryptoPunks Leaderboard","description":"The 100 largest CryptoPunks holders — rank, wallet, ENS name and punks held, with optional social profiles.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxHolders":{"type":"number","minimum":1,"maximum":1000,"title":"Max holders per run","description":"The page publishes exactly 100 rows and has no pagination, so lowering this is the only thing that changes the row count.","default":100},"enrichWithOpenSea":{"type":"boolean","title":"Enrich wallets via OpenSea","description":"Adds display name, bio, avatar and Twitter handle per wallet. One extra request each, against a host that blocks aggressively — a refusal degrades the row, it does not fail the run.","default":false},"maxEnriched":{"type":"number","minimum":1,"maximum":1000,"title":"Max wallets to enrich","description":"Ceiling on the OpenSea half only. Wallets past it keep their leaderboard fields.","default":100},"enrichmentDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between OpenSea lookups (ms)","description":"The legacy script slept 5000ms here. 500ms held across the wallets tested; raise it if blocks start appearing in the summary.","default":500},"openSeaGraphqlUrl":{"type":"string","maxLength":2000,"title":"OpenSea GraphQL endpoint","description":"Escape hatch. OpenSea has moved this endpoint once already (opensea.io/__api/graphql/ → gql.opensea.io/graphql).","default":"https://gql.opensea.io/graphql","examples":["https://gql.opensea.io/graphql"]},"fetchAccountPages":{"type":"boolean","title":"Fetch each wallet's account page","description":"Adds the exact last-active timestamp, the punk indices held, the type breakdown and lifetime buy/sell totals. One extra page per wallet, and those pages run from 300KB to 3.5MB each — a full pass moves hundreds of megabytes.","default":false},"maxAccountPages":{"type":"number","minimum":1,"maximum":1000,"title":"Max account pages to fetch","description":"Ceiling on the account-page half only. Wallets past it keep every other field.","default":100},"accountPageDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between account page fetches (ms)","description":"500ms held across all 100 wallets with no refusal. The page itself takes 1-3s to arrive, so the delay is a small part of the total.","default":500}}}}},"example":{"input":{"maxHolders":100,"enrichWithOpenSea":false,"maxEnriched":100,"enrichmentDelayMs":500}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/debank-holders/runs":{"post":{"operationId":"run_debank_holders","summary":"Run DeBank Protocol Holders","description":"Top holders of DeFi protocols on DeBank — wallet, USD deposited, share of TVL and rank — with protocol details.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"protocolIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Protocol ids","description":"DeBank protocol slugs — the `eth2` in debank.com/protocols/eth2. One paged sweep per id.","default":["eth2","lido","aave3","uniswap3","curve"],"examples":["eth2"]},"maxHoldersPerProtocol":{"type":"number","minimum":1,"maximum":50000,"title":"Max holders per protocol","description":"Ceiling per protocol. Protocols have tens to hundreds of thousands of holders, so this is always a top-N, and a run that hits it says so in its warnings.","default":100},"pageSize":{"type":"number","minimum":1,"maximum":100,"title":"Holders per request","description":"DeBank's own table asks for 20; 100 is the most one request returns, and anonymous callers are served only the first page of the ranking.","default":100},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":800},"requestAttempts":{"type":"number","minimum":1,"maximum":8,"title":"Attempts per request","description":"Applies to transport failures and 5xx only. A signature-gate refusal is never retried — it is not transient.","default":3},"resolveProtocolMetadata":{"type":"boolean","title":"Resolve protocol metadata","description":"Fetches the signed /protocol/list catalogue once per run (~15 MB, ~2 s) to name each protocol and to tell an unknown slug apart from a blocked request.","default":true},"signedHeaders":{"type":"string","maxLength":2000,"title":"Signed request headers (JSON)","description":"Optional override. Every request is signed automatically; headers pasted here replace the computed ones and are valid for one exact request only.","examples":["{\"x-api-ts\":\"…\",\"x-api-nonce\":\"…\",\"x-api-ver\":\"v2\",\"x-api-sign\":\"…\",\"account\":\"…\"}"]}}}}},"example":{"input":{"protocolIds":["eth2","lido","aave3","uniswap3","curve"],"maxHoldersPerProtocol":100,"pageSize":100,"requestDelayMs":800}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/magiceden-collections/runs":{"post":{"operationId":"run_magiceden_collections","summary":"Run Magic Eden Collections","description":"Solana NFT collections on Magic Eden — floor price, market cap, supply, owners, volume, sales, offers and listings.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","enum":["auto","ranked","catalog"],"title":"Dataset","description":"The ranked leaderboard carries market cap, total supply, owner count and a real ordering, but only for the ~3,900 collections it tracks. The catalog covers every collection Magic Eden has indexed, in an undocumented order, with no money columns at all.","default":"auto"},"collectionSymbols":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Collection symbols","description":"Leave empty to discover collections from the chosen dataset. Naming symbols skips discovery entirely and refreshes exactly those rows.","default":[],"examples":["okay_bears"]},"maxCollections":{"type":"number","minimum":1,"maximum":10000,"title":"Max collections per run","description":"Ceiling on discovered collections. The ranked universe is about 3,900 at the 30d window and about 370 at 1d; the catalog reaches roughly 30,000 before it refuses deeper offsets. A ceiling that truncates always warns.","default":500},"window":{"type":"string","enum":["10m","1h","6h","1d","7d","30d"],"title":"Leaderboard window","description":"Scopes the volume and sales columns on the ranked path, and also how many collections that path returns — 30d covers ~3,900, 1d only ~370. Ignored on the catalog path.","default":"30d"},"sort":{"type":"string","enum":["marketCap","volume","volumePercentageChange","sales","salesPercentageChange","totalSales","floorPrice","floorPricePercentageChange","topOffer","listedOverSupply","ownerPercentage","pending","ownerCount","listedCount","minted","mintedVolume"],"title":"Leaderboard ranking","description":"Which column the leaderboard ranks by, and therefore what `market_cap_rank` on the row is a rank of. Ranked path only.","default":"marketCap"},"verifiedOnly":{"type":"boolean","title":"Verified collections only","description":"Sends the marketplace’s own quality filter on the ranked path. Off by default because it barely moves the result — 370 collections became 367 when it was measured — while `is_verified` is recorded on every row anyway.","default":false},"collectStats":{"type":"boolean","title":"Fetch per-collection stats","description":"One extra request per collection for 24h/7d/30d volume, sale counts, average prices, the best standing offer and the floor listing itself. Also the only thing that can tell an unknown symbol apart from a real empty collection.","default":true},"collectLastSale":{"type":"boolean","title":"Fetch the last sale","description":"One extra request per collection for the most recent completed sale — price, time, buyer, seller and mint. Off by default because the stats call already carries volume and sale counts.","default":false},"collectAttributes":{"type":"boolean","title":"Fetch trait summary","description":"One extra request per collection for the trait schema and the cheapest live listing per trait value. Large collections return a few hundred trait values.","default":false},"collectNfts":{"type":"boolean","title":"Also collect NFTs","description":"Writes one row per live listing to crypto_magiceden_nfts, in addition to the collection rows. Off by default: a single large collection is tens of thousands of rows and hundreds of requests.","default":false},"maxNftsPerCollection":{"type":"number","minimum":1,"maximum":100000,"title":"Max NFTs per collection","description":"Ceiling per collection, applied while paging so the walk stops rather than fetching and discarding. Listings page cleanly past 18,000 when a collection is that large; a ceiling that truncates warns.","default":2000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","description":"Added to the ~850ms each request already takes. 102 consecutive requests at this pace drew no rate limiting when measured; lowering it further trades warnings for very little speed.","default":250}}}}},"example":{"input":{"source":"auto","collectionSymbols":["okay_bears"],"maxCollections":500,"window":"30d"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/nft-tokens/runs":{"post":{"operationId":"run_nft_tokens","summary":"Run NFT Token Metadata","description":"Every token in an NFT contract — metadata, traits, media, collection and mint details, and optionally its owner.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"contractAddresses":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Contract addresses","description":"NFT contracts to walk, on the selected chain. Replaces the source script’s collections_addresses.json.","default":["0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"],"examples":["0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"]},"chain":{"type":"string","enum":["eth-mainnet","polygon-mainnet","arb-mainnet","opt-mainnet","base-mainnet"],"title":"Chain","description":"One chain per run. The same address on two chains is two different collections, so rows are keyed by chain.","default":"eth-mainnet"},"maxNftsPerContract":{"type":"number","minimum":1,"maximum":200000,"title":"Max NFTs per contract","description":"Stops the page walk once this many tokens are collected. A run that hits it says so in its warnings.","default":1000},"fetchOwners":{"type":"boolean","title":"Fetch current owners","description":"One extra request per token — a 10,000-token collection costs 10,000 calls. Off unless you need holders.","default":false},"maxOwnerLookups":{"type":"number","minimum":0,"maximum":100000,"title":"Max owner lookups per run","description":"Ceiling on those extra calls across the whole run. Tokens past it keep whatever owners an earlier run found.","default":250},"pageSize":{"type":"number","minimum":1,"maximum":100,"title":"Tokens per request","description":"Alchemy caps this at 100 and quietly returns 100 for anything larger.","default":100},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":200},"apiKey":{"type":"string","maxLength":2000,"title":"Alchemy API key","description":"Overrides ALCHEMY_API_KEY for this run. With neither set the run fails immediately rather than collecting nothing."}}}}},"example":{"input":{"contractAddresses":["0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D"],"chain":"eth-mainnet","maxNftsPerContract":1000,"fetchOwners":false}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/opensea-collections/runs":{"post":{"operationId":"run_opensea_collections","summary":"Run OpenSea Collections","description":"NFT collection rankings on OpenSea across every chain — floor price, volume, supply, owners, socials and holders.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"sortBy":{"type":"string","enum":["VOLUME","ONE_MINUTE_VOLUME","FIVE_MINUTE_VOLUME","FIFTEEN_MINUTE_VOLUME","ONE_HOUR_VOLUME","ONE_DAY_VOLUME","SEVEN_DAYS_VOLUME","THIRTY_DAYS_VOLUME"],"title":"Rank by","description":"Which volume window ranks the table. Only the volume family is offered — OpenSea accepts FLOOR_PRICE and SALES and then drops the connection.","default":"VOLUME"},"sortDirection":{"type":"string","enum":["DESC","ASC"],"title":"Direction","default":"DESC"},"chains":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Chains","description":"Chain slugs — ethereum, solana, base, polygon, hyperevm. Empty collects every chain. An unknown slug fails the whole page, so check spelling.","default":[],"examples":["ethereum"]},"category":{"type":"string","maxLength":2000,"title":"Category","description":"OpenSea's own taxonomy, upper-cased: PFPS, ART, GAMING, … An unrecognised value fails the page rather than being ignored.","examples":["PFPS"]},"ownerAddress":{"type":"string","maxLength":2000,"title":"Owned by wallet","description":"Collect only the collections this wallet owns. OpenSea's own filter, so it is exact rather than a search — a wallet nobody matches returns an empty first page, which is warned about.","examples":["0x…"]},"maxCollections":{"type":"number","minimum":1,"maximum":50000,"title":"Max collections per run","description":"Ceiling on rows collected. Paging was walked past 25,000 collections without a duplicate or a refusal, so this bounds the run rather than the endpoint. Rows upsert, so it bounds one run rather than the dataset, and a ceiling that truncates the listing is reported as a warning.","default":1000},"enrichHolders":{"type":"boolean","title":"Sample holders","description":"Walk each collection’s tokens and record the wallets behind them, with their OpenSea portfolio value and X handle. Costs one request per 100 tokens.","default":false},"holderCollections":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Sample only these slugs","description":"Restrict holder sampling to named collections. Empty samples the highest-ranked ones this run collected.","default":[],"examples":["cryptopunks"]},"maxHolderCollections":{"type":"number","minimum":1,"maximum":500,"title":"Max collections sampled","default":10},"holderItemsPerCollection":{"type":"number","minimum":1,"maximum":20000,"title":"Tokens walked per collection","description":"A sample, not a census: 6,000 tokens of BAYC yielded 3,661 distinct wallets. One request per 100 tokens, and paging held for every one of those 60 pages.","default":500},"topHoldersKept":{"type":"number","minimum":1,"maximum":1000,"title":"Top holders stored per collection","description":"Richest first. The counts and the median are computed over the whole sample regardless of this.","default":50},"holderValueSource":{"type":"string","enum":["opensea","nftscan"],"title":"Portfolio valuation from","description":"opensea is free and arrives inline. nftscan needs NFTSCAN_API_KEY and costs one request per wallet; without a key the run fails rather than silently downgrading.","default":"opensea"},"nftscanApiKey":{"type":"string","maxLength":2000,"title":"NFTScan API key","description":"Overrides the NFTSCAN_API_KEY environment variable. Only read when the valuation source is nftscan."},"collectionsPerPage":{"type":"number","minimum":1,"maximum":100,"title":"Collections per request","description":"OpenSea rejects anything above 100.","default":100},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","description":"The endpoint reports a 400-request budget in its own response extensions; 500 ms keeps a long run comfortably inside it. 252 consecutive pages at 400 ms drew no refusal on 2026-09-03.","default":500}}}}},"example":{"input":{"sortBy":"VOLUME","sortDirection":"DESC","chains":["ethereum"],"category":"PFPS"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/active-adult-communities/runs":{"post":{"operationId":"run_active_adult_communities","summary":"Run 55+ Active Adult Communities","description":"Every 55+ active adult community listed on 55places.com, with address, builder, home count, age restriction, gating, amenities, clubs and price range.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or full names. Empty sweeps every state 55places lists.","default":[],"examples":["FL, AZ, California"]},"ageRestrictedOnly":{"type":"boolean","title":"Age-restricted (55+) only","description":"55places also lists active-adult communities with no formal age restriction.","default":false},"includeRentals":{"type":"boolean","title":"Include rental communities","default":true},"maxItems":{"type":"number","minimum":1,"maximum":100000,"title":"Max communities","default":100000},"includeFullDescription":{"type":"boolean","title":"Keep the full description","description":"The long editorial text, a few KB per community. The short summary is always kept.","default":true},"hitsPerPage":{"type":"number","minimum":1,"maximum":1000,"title":"Communities per request","default":1000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":500},"algoliaAppId":{"type":"string","maxLength":2000,"title":"Algolia app id","description":"Published in the 55places page source. Rediscovered automatically if the configured key is rejected.","default":"A5SC4TBLCP"},"algoliaApiKey":{"type":"string","maxLength":2000,"title":"Algolia search key","default":"5172c8507603567860ad6c295c1c9226"},"indexName":{"type":"string","maxLength":2000,"title":"Algolia index","default":"alex_communities"}}}}},"example":{"input":{"states":["FL","AZ","California"],"ageRestrictedOnly":false,"includeRentals":true,"maxItems":100000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/aplaceformom-communities/runs":{"post":{"operationId":"run_aplaceformom_communities","summary":"Run A Place for Mom Senior Living Communities","description":"US senior living communities listed on A Place for Mom — assisted living, independent living, memory care, care homes and nursing homes with address, coordinates, community phone, operator, care types, rating, review count, starting price and amenities.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or full names. Empty crawls every state A Place for Mom Senior Living Communities lists.","default":[],"examples":["FL, AZ"]},"maxItems":{"type":"number","minimum":0,"maximum":1000000,"title":"Max listings","description":"0 means no ceiling.","default":0},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel requests","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":250}}}}},"example":{"input":{"states":["FL","AZ"],"maxItems":0,"concurrency":4,"requestDelayMs":250}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/alliance-francaise-chapters/runs":{"post":{"operationId":"run_alliance_francaise_chapters","summary":"Run Alliance Française Chapters (US)","description":"Every Alliance Française chapter in the United States — address, phone, general email and website from the Fondation des Alliances Françaises directory, merged with the AF-USA federation map and enriched with the president or director published on each chapter site.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or state names. Empty means every chapter.","default":[],"examples":["CA, FL, NY"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Max chapters","default":1000},"includeAfusaMap":{"type":"boolean","title":"Merge the AF-USA chapter map","description":"Adds coordinates and federation membership from the Federation of Alliances Françaises USA map, and chapters missing from the Fondation directory.","default":true},"enrichWebsites":{"type":"boolean","title":"Visit chapter websites","description":"Reads each chapter site and its contact/board pages for the president or executive director.","default":true},"maxPagesPerSite":{"type":"number","minimum":1,"maximum":12,"title":"Pages per website","default":5},"concurrency":{"type":"number","minimum":1,"maximum":10,"title":"Sites in parallel","default":4}}}}},"example":{"input":{"states":["CA","FL","NY"],"maxItems":1000,"includeAfusaMap":true,"enrichWebsites":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/angi-pros/runs":{"post":{"operationId":"run_angi_pros","summary":"Run Angi Service Professionals","description":"Home-service contractors listed on Angi by trade and postal code, with phone, email and address.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"categoryIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Service category ids","description":"Angi's `alCategoryId` values. One sweep per id. The full known list is in `angi-categories.data.ts`; the default is five high-volume trades because a full sweep is 749 of them.","default":["51","119","157","196"],"examples":["12, 51, 119"]},"zipCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Postal codes","description":"Sent to the endpoint in batches, which returns pros serving any code in a batch. The default is one code per major metro; paste a larger list to widen coverage.","default":["10001","90001","60601","77001","85001","19101","78201","92101","75201","95101","78701","32099","43085","28201","46201","98101","80201","20001","02101","37201"],"examples":["10001, 90001, 60601"]},"zipBatchSize":{"type":"number","minimum":1,"maximum":200,"title":"Postal codes per request","description":"Larger batches mean far fewer requests against a rate-limited endpoint.","default":100},"enrichProfiles":{"type":"boolean","title":"Fetch profile pages","description":"The listing endpoint returns no contact details. Turning this off gives you a fast inventory of who exists, and nothing to contact them with.","default":true},"requireContact":{"type":"boolean","title":"Require an email or phone","description":"Drops pros whose profile publishes neither. Ignored when profile fetching is off.","default":false},"maxPros":{"type":"number","minimum":1,"maximum":500000,"title":"Max pros per run","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":5000},"maxPagesPerQuery":{"type":"number","minimum":1,"maximum":1000,"title":"Max pages per category/batch","default":20},"pageSize":{"type":"number","minimum":1,"maximum":20,"title":"Listings per page","description":"The endpoint rejects anything above 20.","default":10},"categoryBatchSize":{"type":"number","minimum":1,"maximum":25,"title":"Categories per request","description":"The endpoint takes several category ids at once and returns the union. Batching cuts requests but blurs which category matched.","default":1},"enrichConcurrency":{"type":"number","minimum":1,"maximum":25,"title":"Concurrent profile fetches","description":"Angi is behind Cloudflare; pushing this up trades throughput for challenge pages.","default":5},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":750},"haCategoryId":{"type":"string","maxLength":2000,"title":"HomeAdvisor category id","description":"v2 required this; v3 does not, so it is sent only if set."},"traffic":{"type":"string","maxLength":2000,"title":"Traffic type","description":"Required by the endpoint. `SEO` is what the public site sends.","default":"SEO"},"brand":{"type":"string","maxLength":2000,"title":"Brand","default":"ANGI"}}}}},"example":{"input":{"categoryIds":["51","119","157","196"],"zipCodes":["10001","90001","60601","77001","85001","19101","78201","92101","75201","95101","78701","32099","43085","28201","46201","98101","80201","20001","02101","37201"],"zipBatchSize":100,"enrichProfiles":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/art-fair-exhibitors/runs":{"post":{"operationId":"run_art_fair_exhibitors","summary":"Run Art & Design Fair Exhibitors","description":"Galleries, design dealers and brands exhibiting at Abu Dhabi Art, Art Dubai, Downtown Design Dubai, Art Basel (Basel, Miami Beach, Hong Kong, Paris, Qatar), 1-54, Design Miami, PAD and TEFAF — fair, edition, section, exhibitor name and type, city, country, website, email, phone, Instagram and artists shown.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"fairs":{"type":"array","items":{"type":"string","enum":["abu-dhabi-art","art-dubai","downtown-design-dubai","art-basel-basel","art-basel-miami-beach","art-basel-hong-kong","art-basel-paris","art-basel-qatar","1-54-london","1-54-new-york","1-54-marrakech","design-miami-miami","design-miami-paris","design-miami-seoul","pad-london","pad-paris","pad-saint-tropez","tefaf-maastricht","tefaf-new-york"]},"uniqueItems":true,"title":"Fairs","description":"Empty means every supported fair. Each fair is read from its own exhibitor list.","default":[]},"maxItems":{"type":"number","minimum":1,"maximum":20000,"title":"Max exhibitors per run","default":20000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":300}}}}},"example":{"input":{"fairs":["abu-dhabi-art"],"maxItems":20000,"requestDelayMs":300}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/art-patron-circles/runs":{"post":{"operationId":"run_art_patron_circles","summary":"Run Art Patron Circles & Collection Lenders","description":"Named museum patrons, acquisition-committee and council members, and private-collection lenders, read from published supporter lists and annual reports, with MENA collectors flagged.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"targets":{"type":"array","items":{"type":"string","enum":["dubai-collection-patrons","tate-annual-report-2025-26","tate-annual-report-2024-25","cimam-patrons","pompidou-amis-acknowledgements","peggy-guggenheim-advisory-board","moca-patron-groups"]},"uniqueItems":true,"title":"Sources","description":"Published patron, council and acquisition-committee lists, and collection lender credits. Annual-report PDFs carry the longest lists.","default":["dubai-collection-patrons","tate-annual-report-2025-26","tate-annual-report-2024-25","cimam-patrons","pompidou-amis-acknowledgements","peggy-guggenheim-advisory-board","moca-patron-groups"]},"regionFocus":{"type":"string","enum":["all","mena"],"title":"Region focus","default":"all"},"maxItems":{"type":"number","minimum":1,"maximum":100000,"title":"Max rows","default":20000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between sources (ms)","default":1000}}}}},"example":{"input":{"targets":["dubai-collection-patrons","tate-annual-report-2025-26","tate-annual-report-2024-25","cimam-patrons","pompidou-amis-acknowledgements","peggy-guggenheim-advisory-board","moca-patron-groups"],"regionFocus":"all","maxItems":20000,"requestDelayMs":1000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/caring-com-communities/runs":{"post":{"operationId":"run_caring_com_communities","summary":"Run Caring.com Senior Living Communities","description":"US senior living communities listed on Caring.com — assisted living, independent living, memory care and nursing homes with address, coordinates, care types, rating, review count, starting price, amenities and website.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or full names. Empty crawls every state Caring.com Senior Living Communities lists.","default":[],"examples":["FL, AZ"]},"maxItems":{"type":"number","minimum":0,"maximum":1000000,"title":"Max listings","description":"0 means no ceiling.","default":0},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel requests","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":250}}}}},"example":{"input":{"states":["FL","AZ"],"maxItems":0,"concurrency":4,"requestDelayMs":250}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/collector-rankings/runs":{"post":{"operationId":"run_collector_rankings","summary":"Run Collector & Wealth Rankings (ARTnews, Forbes, Arabian Business)","description":"Published collector and wealth rankings — ARTnews Top 200 Collectors, Forbes Middle East rich and family-business lists, Arabian Business power lists and the Forbes real-time billionaires — with rank, name, family or company, net worth, industry, citizenship, residence, collecting areas and a MENA flag.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"sources":{"type":"array","items":{"type":"string","enum":["artnews","forbes-middle-east","arabian-business","forbes-billionaires"]},"uniqueItems":true,"title":"Sources","description":"Empty means every source.","default":[]},"menaOnly":{"type":"boolean","title":"MENA only","description":"Keep only entries whose citizenship, country or residence is in the GCC, the Levant and Iraq, North Africa or Yemen.","default":true},"extendedMena":{"type":"boolean","title":"Count Turkey, Iran and Israel as MENA","default":false},"year":{"type":"number","minimum":1990,"maximum":2100,"title":"Edition year","description":"Leave empty for the latest edition of each list. Ignored by the real-time Forbes ranking."},"maxItems":{"type":"number","minimum":1,"maximum":20000,"title":"Max rows per run","default":20000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":300}}}}},"example":{"input":{"sources":["artnews"],"menaOnly":true,"extendedMena":false,"maxItems":20000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/company-job-openings/runs":{"post":{"operationId":"run_company_job_openings","summary":"Run Company Job Openings","description":"Open roles published directly by employers on their own careers pages, in one consistent schema.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"boardSource":{"type":"string","enum":["targets","ai-data","registry","discover"],"title":"Boards to collect","description":"The list below is one run against named employers. AI data & labeling companies is a maintained list of the data-annotation and model-training vendors (Surge AI, Appen, Cohere, xAI, Encord, …). The registry is every board discovery has ever found — tens of thousands, and where the volume is. Discovery sweeps the crawl index for new ones first, which adds an hour or so to the front of the run.","default":"targets"},"targets":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Boards","description":"One entry per employer, as `board:token` or a pasted careers URL. Boards: greenhouse, lever, ashby, smartrecruiters, personio, workday, workable, breezy, recruitee, bamboohr, teamtailor (a Teamtailor careers site on its own domain is named by host, e.g. `teamtailor:careers.example.com`). Ignored unless the source above is set to this list.","default":["greenhouse:stripe","lever:spotify","ashby:ramp","smartrecruiters:smartrecruiters","personio:personio"],"examples":["greenhouse:stripe, https://jobs.lever.co/spotify"]},"keywords":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Title keywords","description":"Keeps only postings whose title contains one of these. Empty keeps everything the board publishes.","default":[],"examples":["engineer, data, scraping"]},"remoteOnly":{"type":"boolean","title":"Remote roles only","description":"Only keeps postings the board explicitly marks remote. Boards that publish no remote flag contribute nothing under this.","default":false},"postedWithinDays":{"type":"number","minimum":0,"maximum":3650,"title":"Posted within (days)","description":"Drop postings older than this. 0 keeps every open role. A low value turns the run into a \"who started hiring this week\" feed.","default":0},"maxJobsPerBoard":{"type":"number","minimum":1,"maximum":100000,"title":"Max jobs per board","description":"A safety stop, not a target. Set above the largest board you expect: a board that hits it is truncated, and the run says so by name.","default":25000},"maxBoards":{"type":"number","minimum":0,"maximum":1000000,"title":"Max boards per run","description":"0 collects every board the source offers. Set it to cap a first registry run, which otherwise reads tens of thousands of boards.","default":0},"discoverSources":{"type":"array","items":{"type":"string","enum":["commoncrawl","wayback"]},"uniqueItems":true,"title":"Indexes to sweep","description":"Common Crawl is a periodic snapshot and answers in minutes. Wayback is twenty years of the same hosts and holds an order of magnitude more — 367 pages of Lever boards against Common Crawl’s one — but takes about an hour. Lever is only reachable through Wayback and older crawl editions, since it disallows crawling now.","default":["commoncrawl"]},"discoverCrawls":{"type":"number","minimum":1,"maximum":30,"title":"Crawl editions to sweep","description":"Each edition is a partial sample of the web, so boards keep accumulating as more are unioned. Reaching back several years is also the only way Lever boards are found at all — it disallows crawling now, so only older editions hold them.","default":4},"retryFailed":{"type":"boolean","title":"Only retry boards that errored","description":"Reads only the registry boards whose last read ended in an error rather than in an answer — the cheap pass after a big one, since a rate-limited board is unread rather than empty.","default":false},"skipDeadAfter":{"type":"number","minimum":0,"maximum":100,"title":"Skip boards empty this many runs","description":"Registry boards that keep coming back empty are employers who closed the board or changed ATS. Skipping them is what keeps a full sweep from spending most of its requests on the dead. 0 collects everything on file.","default":3},"includeDescription":{"type":"boolean","title":"Store job descriptions","description":"Off by default: one large employer's descriptions run to megabytes of repeated boilerplate. On, each is capped.","default":false},"maxDescriptionChars":{"type":"number","minimum":200,"maximum":100000,"title":"Description cap (characters)","default":5000},"concurrency":{"type":"number","minimum":1,"maximum":50,"title":"Concurrent boards","description":"Boards are independent, and these are the employers’ own endpoints rather than an aggregator defending itself, so this can be raised further than a search scraper’s. A registry sweep of tens of thousands of boards wants the top of this range.","default":8},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","description":"Only applies between pages of a paged board; a one-shot board makes a single request.","default":500}}}}},"example":{"input":{"boardSource":"targets","targets":["greenhouse:stripe","lever:spotify","ashby:ramp","smartrecruiters:smartrecruiters","personio:personio"],"keywords":["engineer","data","scraping"],"remoteOnly":false}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ccrc-communities/runs":{"post":{"operationId":"run_ccrc_communities","summary":"Run Continuing Care Retirement Communities","description":"US continuing care retirement communities (Life Plan communities) and accredited independent living, merged from CMS, CARF and state CCRC registries, with operator, ownership, levels of care and accreditation.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or full names. Empty covers the whole US.","default":[],"examples":["FL, PA, North Carolina"]},"sources":{"type":"array","items":{"type":"string","enum":["nc-doi","ca-cdss","carf","cms"]},"uniqueItems":true,"title":"Sources","description":"Records describing the same campus are merged into one row, with every contributing source listed.","default":["nc-doi","ca-cdss","carf","cms"]},"maxItems":{"type":"number","minimum":1,"maximum":100000,"title":"Max communities","default":100000},"carfPrograms":{"type":"array","items":{"type":"string","enum":["519","521","523","525"]},"uniqueItems":true,"title":"CARF programs","description":"CARF program filters to sweep. Only providers holding a CCRC or Independent Senior Living accreditation are kept.","default":["521","523"]},"carfRadiusMiles":{"type":"number","minimum":25,"maximum":500,"title":"CARF search radius (mi)","description":"CARF answers radius searches only; the US is tiled with overlapping circles of this size.","default":300},"caLicensedOnly":{"type":"boolean","title":"California: licensed only","description":"Drops pending and closed California facilities.","default":true},"concurrency":{"type":"number","minimum":1,"maximum":6,"title":"Concurrent CARF requests","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":300}}}}},"example":{"input":{"states":["FL","PA","North Carolina"],"sources":["nc-doi","ca-cdss","carf","cms"],"maxItems":100000,"carfPrograms":["521","523"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/crunchbase-organizations/runs":{"post":{"operationId":"run_crunchbase_organizations","summary":"Run Crunchbase Organization Inventory","description":"Every Crunchbase organization profile, with the date each one last changed.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxSitemaps":{"type":"number","minimum":1,"maximum":500,"title":"Organization sitemaps per run","description":"Each file holds up to 50,000 organizations. The default is deliberately small — rows persist and re-runs upsert, so the inventory accumulates across runs rather than being rebuilt by one.","default":2},"maxOrganizations":{"type":"number","minimum":1,"maximum":5000000,"title":"Max organizations per run","description":"A ceiling on one run, not on the dataset. Anything left uncollected is counted and warned about.","default":50000},"modifiedSince":{"type":"string","maxLength":2000,"title":"Modified since","description":"Keeps only entries whose sitemap <lastmod> is on or after this date. This is what makes a scheduled re-run cheap. Entries with no date are kept — undated is not evidence of unchanged.","examples":["2026-01-01"]},"slugContains":{"type":"string","maxLength":2000,"title":"Permalink contains","description":"Case-insensitive substring filter on the organization slug.","examples":["labs"]},"useRobotsTxt":{"type":"boolean","title":"Discover the sitemap index from robots.txt","description":"Reads the Sitemap: directive rather than assuming a path. Falls back to https://www.crunchbase.com/www-sitemaps/sitemap-index.xml when robots.txt is unreachable or declares nothing.","default":true},"sitemapIndexUrl":{"type":"string","maxLength":2000,"title":"Sitemap index URL override","description":"Set to bypass discovery entirely and walk a specific index.","examples":["https://www.crunchbase.com/www-sitemaps/sitemap-index.xml"]},"impersonation":{"type":"string","enum":["chrome","firefox"],"title":"Browser profile","description":"Which browser the TLS fingerprint imitates. Worth changing first if a run comes back blocked.","default":"firefox"},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":1000}}}}},"example":{"input":{"maxSitemaps":2,"maxOrganizations":50000,"modifiedSince":"2026-01-01","slugContains":"labs"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/doctolib-profiles/runs":{"post":{"operationId":"run_doctolib_profiles","summary":"Run Doctolib Profiles (France)","description":"Doctolib practitioner profiles — specialty, consultation fees, sector, payment means, opening hours, education, skills and practice addresses — keyed by national practitioner ID.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"professions":{"type":"array","items":{"type":"string","enum":["10","40","50","70","60","93","71","91","92","80","95","96","94"]},"uniqueItems":true,"title":"Professions","description":"RPPS profession codes to look up on Doctolib. Empty means every profession in the scraped register — narrow it, a lookup costs two requests.","default":[]},"specialties":{"type":"array","items":{"type":"string","enum":["SM10","SM15","SM06","SM07","SM68","SM39","SM19"]},"uniqueItems":true,"title":"Specialties","description":"RPPS `Code savoir-faire`. Other codes can be typed in through the JSON options.","default":[]},"cities":{"type":"array","items":{"type":"string","enum":["paris","marseille","lyon","toulouse","nice","nantes","montpellier","strasbourg","bordeaux","lille","rennes","reims","toulon","saint-etienne","le-havre","grenoble","dijon","angers","nimes","villeurbanne","aix-en-provence","clermont-ferrand","brest","tours","amiens","limoges","annecy","perpignan","metz","besancon","orleans","rouen","caen","nancy","pau","cannes","antibes","boulogne-billancourt","neuilly-sur-seine"]},"uniqueItems":true,"title":"Cities","default":[]},"departments":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Départements","description":"Combined with cities as an OR.","default":[],"examples":["75, 92, 06"]},"liberalOnly":{"type":"boolean","title":"Private practice only","description":"Hospital-salaried professionals are rarely bookable on Doctolib under their own name.","default":true},"recheckAfterDays":{"type":"number","minimum":0,"maximum":3650,"title":"Recheck after (days)","description":"Professionals looked up more recently than this are skipped, found or not. 0 rechecks everyone.","default":30},"maxPractitioners":{"type":"number","minimum":1,"maximum":3000000,"title":"Max professionals per run","default":500},"queries":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search queries","description":"Free-text Doctolib searches instead of the RPPS register. Every practitioner returned is scraped, and linked back to RPPS when the profile carries an RPPS number.","default":[],"examples":["denis liguori, cohen paris"]},"profiles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Profile ids, slugs or URLs","default":[],"examples":["253433, denis-liguori"]},"maxProfilesPerQuery":{"type":"number","minimum":1,"maximum":500,"title":"Max profiles per query","default":20},"mode":{"type":"string","enum":["auto","rpps","search","profiles"],"title":"Mode","description":"Auto uses the profile list, then the queries, then falls back to enriching the RPPS register.","default":"auto"},"maxCandidates":{"type":"number","minimum":1,"maximum":10,"title":"Profiles opened per professional","description":"Name matches are opened in order of city until one carries the same RPPS number.","default":3},"concurrency":{"type":"number","minimum":1,"maximum":16,"title":"Concurrency","description":"Only raise this with rotating proxies — Doctolib rate-limits a single IP at roughly 30 requests a minute.","default":1},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Per worker.","default":2000},"blockedCooldownMinutes":{"type":"number","minimum":1,"maximum":120,"title":"Cooldown after a block (minutes)","description":"A 429 from Doctolib holds the IP for several minutes. Without proxies the run pauses this long before retrying.","default":10}}}}},"example":{"input":{"professions":["10"],"specialties":["SM10"],"cities":["paris"],"departments":["75","92","06"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/doctors-belgium/runs":{"post":{"operationId":"run_doctors_belgium","summary":"Run Doctors & Health Professionals (Belgium)","description":"Every licensed care provider in Belgium — doctors, dentists, pharmacists, nurses, physiotherapists and 20 more professions — with practitioner number, qualification, convention status and geocoded work addresses.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"professions":{"type":"array","items":{"type":"string","enum":["10","30","20","68","41","42","40","50","78","98","58","56","65","57","59","31","66","67","62","61","63","21","22","23","24"]},"uniqueItems":true,"title":"Professions","description":"Empty pulls all 25 professions in the INAMI register (~330k people). Doctors alone are ~65k.","default":[]},"maxRecords":{"type":"number","minimum":1,"maximum":1000000,"title":"Max records per run","default":1000000},"pageSize":{"type":"number","minimum":1,"maximum":5000,"title":"Page size","description":"Cards per request. 2,000 is a ~7 MB page; the site accepts up to 5,000.","default":2000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":1000}}}}},"example":{"input":{"professions":["10"],"maxRecords":1000000,"pageSize":2000,"requestDelayMs":1000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/doctors-france/runs":{"post":{"operationId":"run_doctors_france","summary":"Run Doctors & Health Professionals (France)","description":"Every registered health professional in France — doctors of every specialty, pharmacists, midwives, dentists, nurses and more — with national practitioner ID, practice site, address, phone, SIRET and FINESS.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"specialties":{"type":"array","items":{"type":"string","enum":["SM10","SM15","SM06","SM07","SM68","SM39","SM19"]},"uniqueItems":true,"title":"Specialties","description":"Ordinal specialty codes (`Code savoir-faire`). Empty pulls every profession and specialty in the register. \"Chirurgien esthétique\" is not a legal title in France — the qualified surgeons are SM10. Any other code can be typed in through the JSON options.","default":[]},"cities":{"type":"array","items":{"type":"string","enum":["paris","marseille","lyon","toulouse","nice","nantes","montpellier","strasbourg","bordeaux","lille","rennes","reims","toulon","saint-etienne","le-havre","grenoble","dijon","angers","nimes","villeurbanne","aix-en-provence","clermont-ferrand","brest","tours","amiens","limoges","annecy","perpignan","metz","besancon","orleans","rouen","caen","nancy","pau","cannes","antibes","boulogne-billancourt","neuilly-sur-seine"]},"uniqueItems":true,"title":"Cities","description":"Paris, Lyon and Marseille include every arrondissement. Empty means the whole country, unless communes or départements are set.","default":[]},"departments":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Départements","description":"Two-digit codes (2A/2B for Corsica, three digits overseas). Combined with cities as an OR.","default":[],"examples":["75, 92, 06"]},"communeCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"INSEE commune codes","description":"For towns the city list does not cover. INSEE codes, not postal codes.","default":[],"examples":["75116, 92051"]},"requireAddress":{"type":"boolean","title":"Require a practice address","description":"Registered professionals with no declared activity site (retired, between posts, abroad) have no address and are dropped.","default":false},"liberalOnly":{"type":"boolean","title":"Private practice only","description":"Keeps activities declared as libéral. Hospital-salaried surgeons are dropped — they rarely do elective aesthetic work.","default":false},"requirePhone":{"type":"boolean","title":"Require a phone number","default":false},"maxRecords":{"type":"number","minimum":1,"maximum":10000000,"title":"Max activities per run","default":10000000},"source":{"type":"string","enum":["auto","file","api"],"title":"Source","description":"Auto streams the full register file when nothing narrows the run server-side, and pages the filtered API when a specialty or city is set.","default":"auto"},"pageSize":{"type":"number","minimum":1,"maximum":200,"title":"Page size","description":"API source only. The data.gouv tabular API caps a page at 200.","default":200},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":100}}}}},"example":{"input":{"specialties":["SM10"],"cities":["paris"],"departments":["75","92","06"],"communeCodes":["75116","92051"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/doctors-spain/runs":{"post":{"operationId":"run_doctors_spain","summary":"Run Doctors & Health Professionals (Spain)","description":"Registered health professionals in Spain — degree, specialty titles, job category and practice centres with municipality, province and region — flagged by whether they are physicians.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"provinces":{"type":"array","items":{"type":"string","enum":["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52"]},"uniqueItems":true,"title":"Provinces","description":"Empty walks all 52 provinces (~541k registered professionals of every profession).","default":[]},"physiciansOnly":{"type":"boolean","title":"Physicians only","description":"The list has no profession filter, so every professional still costs a detail request; this only decides what is stored.","default":false},"refreshAfterDays":{"type":"number","minimum":0,"maximum":3650,"title":"Skip records refreshed within (days)","description":"Zero refetches everyone. A full pass is several days of detail requests, so a re-run can skip anyone already fetched recently.","default":0},"concurrency":{"type":"number","minimum":1,"maximum":6,"title":"Parallel detail requests","description":"REPS is a slow shared government service. Keep this low.","default":2},"pageSize":{"type":"number","minimum":10,"maximum":1000,"title":"List page size","description":"1,000 takes ~30 s per list call; 5,000 times out.","default":500},"maxRecords":{"type":"number","minimum":1,"maximum":1000000,"title":"Max records per run","default":1000000}}}}},"example":{"input":{"provinces":["01"],"physiciansOnly":false,"refreshAfterDays":0,"concurrency":2}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/doctors-switzerland/runs":{"post":{"operationId":"run_doctors_switzerland","summary":"Run Doctors & Medical Professionals (Switzerland)","description":"Every licensed medical professional in Switzerland — physicians, dentists, pharmacists, chiropractors and veterinarians — with GLN, federal specialty titles, and each cantonal licence with practice address and phone.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"physiciansOnly":{"type":"boolean","title":"Physicians only","description":"Every id still has to be fetched — the register has no profession filter that lists everyone — but only physicians are stored. Off keeps dentists, pharmacists, chiropractors and veterinarians too.","default":false},"concurrency":{"type":"number","minimum":1,"maximum":16,"title":"Parallel requests","description":"The register answers ~6 requests a second at best; more workers mostly queue.","default":6},"startId":{"type":"number","minimum":1,"title":"First MedReg id","default":1},"endId":{"type":"number","minimum":0,"title":"Last MedReg id","description":"Zero walks until `stopAfterEmpty` consecutive ids have no record.","default":0},"stopAfterEmpty":{"type":"number","minimum":50,"maximum":100000,"title":"Stop after N empty ids","description":"About a quarter of ids are unpublished, so gaps of a few dozen are normal. 2,000 in a row means the end of the register.","default":2000},"maxRecords":{"type":"number","minimum":1,"maximum":1000000,"title":"Max records per run","default":1000000}}}}},"example":{"input":{"physiciansOnly":false,"concurrency":6,"startId":1,"endId":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/france-capital-increases/runs":{"post":{"operationId":"run_france_capital_increases","summary":"Run French Capital Increases","description":"French capital increases and company changes as officially published — SIREN, legal form and resulting capital.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"lookbackDays":{"type":"number","minimum":1,"maximum":365,"title":"Look back (days)","description":"Queried one publication day at a time, which keeps every page well inside the API’s 10,000-record paging ceiling.","default":14},"descriptifContains":{"type":"string","maxLength":2000,"title":"Notice text contains","description":"Matched by the API against the notice's own description. `capital` is what a share issue is filed as. Clear it to collect every notice in the family.","default":"capital","examples":["capital"]},"legalForms":{"type":"array","items":{"type":"string","enum":["actions simplifiée","anonyme","responsabilité limitée","civile immobilière","européenne","nom collectif"]},"uniqueItems":true,"title":"Legal forms","description":"Matched as substrings of the form as printed. The default is SAS and SA — the forms a venture-backed company uses. SCI and SARL file the same notice for reasons that are almost never investment, and together they are most of the feed.","default":["actions simplifiée","anonyme"]},"minCapital":{"type":"number","minimum":0,"title":"Minimum capital (€)","description":"The capital stated in the notice, which is the figure *after* the change. The notice does not say what it was before, so this cannot screen on the size of the raise.","default":0},"maxCapital":{"type":"number","minimum":0,"title":"Maximum capital (€)","description":"Zero means no upper bound.","default":0},"departments":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Départements","description":"Two-digit codes. Empty means the whole country.","default":[],"examples":["75, 92, 69"]},"excludeDecreases":{"type":"boolean","title":"Exclude capital decreases","description":"The API can only match the word \"capital\", which catches increases and reductions alike. A reduction is money leaving — the opposite signal — so notices whose wording says diminution or réduction are dropped. Notices whose court states neither are kept.","default":true},"families":{"type":"array","items":{"type":"string","enum":["modification","creation","radiation","vente"]},"uniqueItems":true,"title":"Announcement families","description":"Capital changes are published as modifications. Créations are a colder lead but a valid one.","default":["modification"]},"requireCapital":{"type":"boolean","title":"Require a capital figure","description":"Drops notices whose payload carries no readable capital amount.","default":false},"publishedFrom":{"type":"string","maxLength":2000,"title":"Published from (YYYY-MM-DD)","description":"Overrides the lookback window.","examples":["2026-08-01"]},"publishedTo":{"type":"string","maxLength":2000,"title":"Published to (YYYY-MM-DD)","examples":["2026-08-31"]},"maxRecords":{"type":"number","minimum":1,"maximum":100000,"title":"Max records per run","default":5000},"pageSize":{"type":"number","minimum":1,"maximum":100,"title":"Page size","description":"The API caps a page at 100.","default":100},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","description":"The API is free and unauthenticated but throttles anonymous callers.","default":200}}}}},"example":{"input":{"lookbackDays":14,"descriptifContains":"capital","legalForms":["actions simplifiée","anonyme"],"minCapital":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/french-meetup-groups/runs":{"post":{"operationId":"run_french_meetup_groups","summary":"Run French Language Meetup Groups (US)","description":"Meetup groups for French conversation, language practice and francophile culture across the top 100 US metros — member count, organizer, founding date, activity and description.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"keywords":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search keywords","description":"Each keyword is searched around every metro; results are kept only when the group name or description is actually about French.","default":["french","francais"],"examples":["french, francais"]},"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Limits the metros searched. Empty means every metro.","default":[],"examples":["FL, AZ"]},"metros":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Metros","description":"Metro names from the built-in top-100 list. Empty means all.","default":[],"examples":["Boston, Miami"]},"includeMultilingual":{"type":"boolean","title":"Include multilingual groups","description":"Keeps language-exchange groups that mention French alongside other languages.","default":true},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Max groups","default":10000},"maxMetros":{"type":"number","minimum":1,"maximum":200,"title":"Max metros","default":200},"radiusMiles":{"type":"number","minimum":5,"maximum":100,"title":"Search radius (miles)","default":30},"maxPagesPerQuery":{"type":"number","minimum":1,"maximum":10,"title":"Result pages per search","default":4},"concurrency":{"type":"number","minimum":1,"maximum":4,"title":"Searches in parallel","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":10000,"title":"Delay between requests (ms)","default":400}}}}},"example":{"input":{"keywords":["french","francais"],"states":["FL","AZ"],"metros":["Boston","Miami"],"includeMultilingual":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cultural-projects-news/runs":{"post":{"operationId":"run_cultural_projects_news","summary":"Run GCC Cultural Projects News","description":"News of Gulf developers, hotels, banks and luxury brands commissioning art, building collections, sponsoring fairs or opening museums and cultural districts.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"queries":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search queries","description":"Google News search queries. Arabic queries are searched in the Arabic UAE edition, the rest in the English edition. Empty restores the default developer, hotel, bank, sponsor and museum set.","default":["Emaar art","Emaar public art","Aldar public art","Aldar art","ROSHN art","\"Red Sea Global\" art","\"Diriyah Company\" art","NEOM art commission","\"Dar Global\" art","Damac art","Omniyat art","Meraas art","Nakheel art","\"Dubai Holding\" art","Modon art Abu Dhabi","\"public art\" Riyadh","\"public art\" Dubai","\"public art\" Abu Dhabi","\"public art\" Doha","artwork commissioned Dubai","art commission Saudi","\"art collection\" bank UAE","\"art collection\" Saudi company","\"corporate art collection\" Gulf","\"art prize\" bank Gulf","\"art prize\" Saudi","\"private museum\" UAE","\"private museum\" Saudi","new museum Saudi Arabia announced","art foundation launch Saudi","art foundation launch UAE","hotel \"art collection\" Dubai","hotel art Riyadh opening","hotel artist commission Abu Dhabi","\"Art Dubai\" partner","\"Abu Dhabi Art\" partner","\"Frieze Abu Dhabi\" partner","\"Diriyah Biennale\" sponsor","\"Islamic Arts Biennale\" partner","art sponsor Qatar","\"cultural district\" Abu Dhabi","\"cultural district\" Riyadh","\"cultural district\" Dubai","Kuwait art museum","Bahrain art commission","Oman art museum","فن عام الرياض","متحف خاص السعودية","مجموعة فنية دبي","إعمار أعمال فنية","حي ثقافي الرياض"],"examples":["\"public art\" Riyadh"]},"countries":{"type":"array","items":{"type":"string","enum":["UAE","Saudi Arabia","Qatar","Kuwait","Bahrain","Oman"]},"uniqueItems":true,"title":"Countries","description":"An article is kept only when it is about one of these countries, judged from places named in its title and summary or from the home country of a company it names.","default":["UAE","Saudi Arabia","Qatar","Kuwait","Bahrain","Oman"]},"sinceDays":{"type":"number","minimum":1,"maximum":3650,"title":"Published within (days)","default":180},"maxItems":{"type":"number","minimum":1,"maximum":20000,"title":"Max articles","default":1000},"includePressFeeds":{"type":"boolean","title":"Include regional art press feeds","description":"Also reads The Art Newspaper, Canvas, Harper's Bazaar Arabia, The National, screened by the same rules.","default":true},"keepUnclassified":{"type":"boolean","title":"Keep articles with no signal","description":"By default an article must match a commission, collection, museum, sponsorship, hotel or cultural-district rule, or name a known company, to be kept.","default":false},"collapseStories":{"type":"boolean","title":"One row per story","description":"Drops an article whose headline shares most of its words with one already kept, so a story syndicated by twenty outlets yields one lead.","default":true},"resolveUrls":{"type":"boolean","title":"Resolve publisher URLs","description":"Google News links are redirects. Resolving costs two requests to Google per kept article.","default":true},"fetchSnippets":{"type":"boolean","title":"Fetch article summaries","description":"Google News feeds carry no summary, so the publisher page's description is read. One request to the publisher per kept article.","default":true},"concurrency":{"type":"number","minimum":1,"maximum":10,"title":"Parallel articles","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between feed requests (ms)","default":300}}}}},"example":{"input":{"queries":["Emaar art","Emaar public art","Aldar public art","Aldar art","ROSHN art","\"Red Sea Global\" art","\"Diriyah Company\" art","NEOM art commission","\"Dar Global\" art","Damac art","Omniyat art","Meraas art","Nakheel art","\"Dubai Holding\" art","Modon art Abu Dhabi","\"public art\" Riyadh","\"public art\" Dubai","\"public art\" Abu Dhabi","\"public art\" Doha","artwork commissioned Dubai","art commission Saudi","\"art collection\" bank UAE","\"art collection\" Saudi company","\"corporate art collection\" Gulf","\"art prize\" bank Gulf","\"art prize\" Saudi","\"private museum\" UAE","\"private museum\" Saudi","new museum Saudi Arabia announced","art foundation launch Saudi","art foundation launch UAE","hotel \"art collection\" Dubai","hotel art Riyadh opening","hotel artist commission Abu Dhabi","\"Art Dubai\" partner","\"Abu Dhabi Art\" partner","\"Frieze Abu Dhabi\" partner","\"Diriyah Biennale\" sponsor","\"Islamic Arts Biennale\" partner","art sponsor Qatar","\"cultural district\" Abu Dhabi","\"cultural district\" Riyadh","\"cultural district\" Dubai","Kuwait art museum","Bahrain art commission","Oman art museum","فن عام الرياض","متحف خاص السعودية","مجموعة فنية دبي","إعمار أعمال فنية","حي ثقافي الرياض"],"countries":["UAE","Saudi Arabia","Qatar","Kuwait","Bahrain","Oman"],"sinceDays":180,"maxItems":1000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/private-wealth-lawyers/runs":{"post":{"operationId":"run_private_wealth_lawyers","summary":"Run GCC Private Wealth & Estate Planning Lawyers","description":"Private wealth, private client and wills lawyers across the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman and Lebanon — Chambers High Net Worth bands (firms and individuals), Legal 500 private client tiers, and the DIFC Courts register of Wills draftsmen with email and phone.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"sources":{"type":"array","items":{"type":"string","enum":["chambers","legal500","difc-wills"]},"uniqueItems":true,"title":"Sources","description":"Empty means every source.","default":[]},"jurisdictions":{"type":"array","items":{"type":"string","enum":["AE","SA","QA","KW","BH","OM","LB"]},"uniqueItems":true,"title":"Jurisdictions","description":"Empty means the GCC states and Lebanon. DIFC Wills only covers the UAE.","default":[]},"maxItems":{"type":"number","minimum":1,"maximum":20000,"title":"Max leads per run","default":20000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":400}}}}},"example":{"input":{"sources":["chambers"],"jurisdictions":["AE"],"maxItems":20000,"requestDelayMs":400}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/google-maps-places/runs":{"post":{"operationId":"run_google_maps_places","summary":"Run Google Maps Places","description":"Local business listings from Google Maps — name, website, phone, address, category and rating.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"The trade or business type to look for. Combined with each location.","default":"coffee shop","examples":["plumber"]},"locations":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Locations","description":"Metro names from the built-in table (new york, los angeles, chicago, houston, phoenix, philadelphia, san antonio, san diego, dallas, austin, miami, seattle, san francisco) or explicit `lat,long` pairs. Any coordinate pair works, so a larger target set is a matter of pasting one in rather than editing the scraper.","default":["new york","los angeles","chicago","houston","phoenix","philadelphia","san antonio","san diego","dallas","austin","miami","seattle","san francisco"],"examples":["austin, dallas, 30.2672,-97.7431"]},"requireWebsite":{"type":"boolean","title":"Require a website","description":"Drops listings with no website. Leave off to keep businesses whose absent site is the reason to call them.","default":false},"requirePhone":{"type":"boolean","title":"Require a phone number","description":"Drops listings with no published phone. Google omits the phone on a large minority of results.","default":false},"maxPlaces":{"type":"number","minimum":1,"maximum":100000,"title":"Max places per run","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":2000},"path":{"type":"string","enum":["auto","api","pb"],"title":"Collection path","description":"Auto prefers the supported API. Choosing `api` with no key configured fails the run rather than silently falling back.","default":"auto"},"apiVariant":{"type":"string","enum":["new","legacy"],"title":"Places API variant","description":"Legacy Text Search was closed to new Google Cloud customers in March 2025 and only works on accounts that already used it.","default":"new"},"apiKey":{"type":"string","maxLength":2000,"title":"API key override","description":"Defaults to GOOGLE_MAPS_API_KEY, then GOOGLE_PLACES_API_KEY. Set here only to run against a different key."},"gridSize":{"type":"number","minimum":1,"maximum":20,"title":"Grid size (map endpoint)","description":"Side of the square of search points built around each location. Costs gridSize² requests per location, so 5 is 25 and 15 is 225.","default":5},"zoom":{"type":"number","minimum":100,"maximum":10000000,"title":"Map altitude (map endpoint)","description":"The endpoint’s `1d` parameter, in metres. Lower covers less ground per request but hits the 20-result cap less often.","default":13499.795714815926},"resultsPerRequest":{"type":"number","minimum":1,"maximum":20,"title":"Results per request (map endpoint)","description":"Google truncates above 20 without saying so.","default":20},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":800}}}}},"example":{"input":{"query":"coffee shop","locations":["new york","los angeles","chicago","houston","phoenix","philadelphia","san antonio","san diego","dallas","austin","miami","seattle","san francisco"],"requireWebsite":false,"requirePhone":false}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/google-search/runs":{"post":{"operationId":"run_google_search","summary":"Run Google Search Results","description":"Organic Google search results for a set of queries, as business-website leads.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"queries":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search queries","description":"One walk per query. Operators work here — `site:`, `inurl:`, quoted phrases.","default":["plumbers in austin tx"],"examples":["plumbers in austin tx"]},"maxPages":{"type":"number","minimum":1,"maximum":20,"title":"Pages per query","description":"Google rarely serves anything useful past the third page, and each page is another chance to be rate limited.","default":3},"startPage":{"type":"number","minimum":1,"maximum":100,"title":"First page","default":1},"country":{"type":"string","maxLength":2000,"title":"Country (gl)","description":"Results are country-specific. Recorded on every row, because the same query in two countries is two datasets.","default":"us","examples":["us"]},"language":{"type":"string","maxLength":2000,"title":"Language (hl)","default":"en","examples":["en"]},"siteFilter":{"type":"string","maxLength":2000,"title":"Restrict to site","description":"Adds `site:` to every query.","examples":["yelp.com"]},"extraOperators":{"type":"string","maxLength":2000,"title":"Extra operators","description":"Appended to every query verbatim.","examples":["-inurl:facebook.com \"contact us\""]},"resultsPerPage":{"type":"number","minimum":1,"maximum":100,"title":"Results per page (num)","description":"Google treats large values as a hint, not an instruction, and a high one attracts rate limiting.","default":10},"domain":{"type":"string","maxLength":2000,"title":"Google domain","default":"www.google.com","examples":["www.google.com"]},"impersonate":{"type":"string","enum":["chrome","firefox"],"title":"Browser impersonation","description":"Neither profile got results from google.com in September 2026; both got the JavaScript shell. Kept switchable because that is the sort of thing that changes.","default":"chrome"},"requestDelayMs":{"type":"number","minimum":0,"maximum":120000,"title":"Delay between requests (ms)","description":"Lowering this is the fastest way to earn a /sorry/ page for the whole proxy.","default":5000},"maxResults":{"type":"number","minimum":1,"maximum":10000,"title":"Max results per run","default":500}}}}},"example":{"input":{"queries":["plumbers in austin tx"],"maxPages":3,"startPage":1,"country":"us"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/gulf-wealth-firms/runs":{"post":{"operationId":"run_gulf_wealth_firms","summary":"Run Gulf Wealth Firms (DFSA & FSRA registers)","description":"Wealth managers, private banks, custodians, trust and fiduciary firms authorised in the DIFC (DFSA) and ADGM (FSRA) — reference number, status, licence date, permissions, address, phone, email and the authorised individuals (SEO, Compliance Officer, MLRO, directors) with their functions.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"regulators":{"type":"array","items":{"type":"string","enum":["dfsa","fsra"]},"uniqueItems":true,"title":"Regulators","default":["dfsa","fsra"]},"permissions":{"type":"array","items":{"type":"string","enum":["managing-assets","advising","arranging-custody","providing-custody","trust-services","fund-administration","private-banking","family-office","company-services","fund-management","arranging-deals","legal-services"]},"uniqueItems":true,"title":"Wealth-relevant permissions","description":"A firm is kept when it currently holds at least one of these. Each choice maps to the matching DFSA financial service or FSRA regulated activity; DNFBP choices exist on the DFSA register only.","default":["managing-assets","advising","arranging-custody","providing-custody","trust-services","fund-administration","private-banking","family-office","company-services"]},"includeAll":{"type":"boolean","title":"Include every firm","description":"Ignore the permission filter and take every authorised firm and DNFBP on the selected registers.","default":false},"includeIndividuals":{"type":"boolean","title":"Include individuals","description":"Nests the authorised / approved individuals (SEO, Compliance Officer, MLRO, Licensed Director…) with their functions. On the DFSA register this costs one request per individual.","default":true},"includeWithdrawnIndividuals":{"type":"boolean","title":"Include withdrawn individuals","default":false},"includeWithdrawnFirms":{"type":"boolean","title":"Include withdrawn / inactive firms","default":false},"maxItems":{"type":"number","minimum":1,"maximum":20000,"title":"Max firms per run","default":20000},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel firms","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":0}}}}},"example":{"input":{"regulators":["dfsa","fsra"],"permissions":["managing-assets","advising","arranging-custody","providing-custody","trust-services","fund-administration","private-banking","family-office","company-services"],"includeAll":false,"includeIndividuals":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/hud-elderly-housing/runs":{"post":{"operationId":"run_hud_elderly_housing","summary":"Run HUD Elderly Assisted Housing Properties","description":"Every HUD-assisted multifamily property designated for the elderly (Section 202 and other elderly client groups), with units, phone, and the management agent and its contact.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter state codes. Empty means nationwide.","default":[],"examples":["FL, AZ, CA"]},"designations":{"type":"array","items":{"type":"string","enum":["elderly","partially-elderly","family-and-elderly","section-202"]},"uniqueItems":true,"title":"Elderly designations","description":"From HUD's client group on each property. Section 202 covers properties funded for the elderly whose client group is blank.","default":["elderly","partially-elderly","family-and-elderly","section-202"]},"maxItems":{"type":"number","minimum":1,"maximum":1000000,"title":"Max properties","description":"Empty means the full elderly-designated set."},"pageSize":{"type":"number","minimum":1,"maximum":2000,"title":"Page size","default":1000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between pages (ms)","default":250},"layerUrl":{"type":"string","maxLength":2000,"title":"Feature layer URL","description":"Override only if HUD moves the Multifamily Properties - Assisted layer."}}}}},"example":{"input":{"states":["FL","AZ","CA"],"designations":["elderly","partially-elderly","family-and-elderly","section-202"],"pageSize":1000,"requestDelayMs":250}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/indeed-jobs/runs":{"post":{"operationId":"run_indeed_jobs","summary":"Run Indeed Job Postings","description":"Indeed job postings as employer leads — which companies are hiring, where, for what and at what pay.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"queries":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search queries","description":"One walk per query per location. Two queries across four locations is eight walks.","default":["software engineer"],"examples":["software engineer"]},"locations":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Locations","description":"Anything Indeed’s own location box accepts — a metro, a postal code, a state, or a country.","default":["Austin, TX","New York, NY","San Francisco, CA","Chicago, IL"],"examples":["Austin, TX"]},"radiusMiles":{"type":"number","minimum":0,"maximum":100,"title":"Search radius (miles)","description":"Ignored by Indeed for country-wide locations.","default":50},"postedWithinDays":{"type":"number","minimum":0,"maximum":365,"title":"Posted within (days)","description":"Zero means no age filter. A small value is what makes a scheduled run collect only what is new.","default":0},"domain":{"type":"string","enum":["www.indeed.com","ca.indeed.com","uk.indeed.com","ie.indeed.com","au.indeed.com","nz.indeed.com","de.indeed.com","fr.indeed.com","nl.indeed.com","es.indeed.com","it.indeed.com","in.indeed.com","sg.indeed.com","za.indeed.com"],"title":"Indeed country site","default":"www.indeed.com"},"includeSponsored":{"type":"boolean","title":"Include sponsored postings","description":"A company paying to advertise a role is spending money on hiring, which is the signal this dataset exists for.","default":true},"maxPages":{"type":"number","minimum":1,"maximum":50,"title":"Pages per query","description":"Each page is one request and yields roughly forty cards, heavily overlapping the page before it.","default":3},"startPage":{"type":"number","minimum":1,"maximum":100,"title":"Start at page","default":1},"maxJobs":{"type":"number","minimum":1,"maximum":100000,"title":"Max jobs per run","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":5000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Indeed blocks on request rate before it blocks on volume. Lowering this is the fastest way to lose an address.","default":1500}}}}},"example":{"input":{"queries":["software engineer"],"locations":["Austin, TX","New York, NY","San Francisco, CA","Chicago, IL"],"radiusMiles":50,"postedWithinDays":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/portfolio-rosters/runs":{"post":{"operationId":"run_portfolio_rosters","summary":"Run Investor & PE Portfolio Rosters","description":"Portfolio companies of accelerators, VC and private-equity firms, plus conference exhibitors, keyed by domain.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"kinds":{"type":"array","items":{"type":"string","enum":["accelerator","venture","private-equity","conference"]},"uniqueItems":true,"title":"Backer types","description":"Private equity is the least contested of these: a firm buys a mid-market business, a rebrand is standard playbook, and the budget was committed at the deal.","default":["accelerator","venture","private-equity","conference"]},"targets":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Rosters","description":"Empty runs every seeded roster of the selected kinds (18 available: antler, techstars, entrepreneur-first, seedcamp, founders-factory, a16z-speedrun, …). A URL adds an ad-hoc roster — this is how conference exhibitor lists are run, since their URLs carry the year. Longer forms: `private-equity|https://…` or `private-equity|Example Capital|https://…`.","default":[],"examples":["antler, thoma-bravo, https://event.com/exhibitors"]},"minRosterSize":{"type":"number","minimum":1,"maximum":1000,"title":"Minimum roster size","description":"A page returning fewer companies than this is reported as thin and named in the warnings, which almost always means its roster is rendered by JavaScript after load.","default":6},"render":{"type":"string","enum":["auto","never","always"],"title":"Browser rendering","description":"Most private-equity and venture rosters are drawn by JavaScript after load and are invisible without this. Accelerator rosters usually are not, so `auto` renders only the pages that need it and leaves the rest at one cheap request. Requires the obscura browser.","default":"auto"},"followDetailPages":{"type":"boolean","title":"Resolve company domains","description":"Private-equity rosters link to the firm's own page per company, not to the company's website, so the domain — the column that joins this dataset onto every other one — is only on that page. This follows them, at one cheap request each. Off, those rows carry a name and no domain.","default":true},"detailDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between detail pages (ms)","default":300},"maxPerTarget":{"type":"number","minimum":1,"maximum":20000,"title":"Max companies per roster","default":2000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between rosters (ms)","description":"One request per roster, so a run is small. The delay is politeness towards firms whose marketing sites are not built for traffic.","default":1500}}}}},"example":{"input":{"kinds":["accelerator","venture","private-equity","conference"],"targets":["antler","thoma-bravo","https://event.com/exhibitors"],"minRosterSize":6,"render":"auto"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/linkedin-profiles/runs":{"post":{"operationId":"run_linkedin_profiles","summary":"Run LinkedIn Profiles","description":"LinkedIn profiles as structured people — headline, location, current role, work history, education and skills.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"linkedinUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"LinkedIn profile URLs","description":"Paste a list — one URL per line, or comma separated. Each profile is one request and one credit, so the run costs as many credits as there are new URLs.","default":[],"examples":["https://www.linkedin.com/in/janedoe"]},"mode":{"type":"string","enum":["cached","live"],"title":"Data freshness","description":"Cached answers from the provider index. Live re-scrapes the profile and is asynchronous: the run submits a job and polls until it resolves. Live needs a paid plan — on a free trial key it answers 403 and the run stops.","default":"cached"},"skipExisting":{"type":"boolean","title":"Skip URLs already stored","description":"Every fetch costs a credit whether or not the row is new, so a re-run of the same list is free only with this on.","default":true},"refreshOlderThanDays":{"type":"number","minimum":0,"maximum":3650,"title":"Re-fetch rows older than (days)","description":"Only applies when skipping stored URLs. Zero never re-fetches; 30 re-fetches a stored profile once it is a month old.","default":0},"maxProfiles":{"type":"number","minimum":1,"maximum":10000,"title":"Max profiles per run","description":"A ceiling on credits spent. URLs beyond it are left untouched and reported as remaining.","default":100},"concurrency":{"type":"number","minimum":1,"maximum":10,"title":"Parallel requests","description":"The API takes one URL per request. Keep this at or below your per-minute rate limit divided by the delay below.","default":1},"requestDelayMs":{"type":"number","minimum":0,"maximum":120000,"title":"Delay between requests (ms)","description":"Paces each worker. 6500ms with one worker stays under a 10 requests/minute key. A 429 is retried at the reset time the API reports, so this is a courtesy pace, not the only guard.","default":6500},"maxRetries":{"type":"number","minimum":0,"maximum":10,"title":"Retries per URL","description":"Applies to rate limits and 5xx. A 404, a GDPR block and an invalid URL are recorded and never retried.","default":3},"maxDurationSeconds":{"type":"number","minimum":10,"maximum":21600,"title":"Max run duration (seconds)","description":"Rate limits make a long list slow: 100 profiles at 10 per minute is ten minutes. Whatever is unfinished is reported and can be re-run.","default":900},"livePollIntervalMs":{"type":"number","minimum":500,"maximum":30000,"title":"Live poll interval (ms)","description":"Live mode only. Polling the job is free and does not count against the rate limit.","default":2000},"livePollTimeoutSeconds":{"type":"number","minimum":5,"maximum":1800,"title":"Live poll timeout (seconds)","description":"Live mode only. Most jobs resolve in seconds, but a busy target can take minutes.","default":120},"apiKey":{"type":"string","maxLength":2000,"title":"API key override","description":"Defaults to REVERSE_CONTACT_API_KEY."}}}}},"example":{"input":{"linkedinUrls":["https://www.linkedin.com/in/janedoe"],"mode":"cached","skipExisting":true,"refreshOlderThanDays":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/linkedin-public-companies/runs":{"post":{"operationId":"run_linkedin_public_companies","summary":"Run LinkedIn Public Company Profiles","description":"Public company overview, website, industry, employee range and headquarters.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"companySlugs":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Company slugs","default":["microsoft"]}}}}},"example":{"input":{"companySlugs":["microsoft"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/linkedin-public-jobs/runs":{"post":{"operationId":"run_linkedin_public_jobs","summary":"Run LinkedIn Public Job Listings","description":"Public LinkedIn job search cards with employer, location and posting date.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Job keywords","default":"software"},"location":{"type":"string","maxLength":2000,"title":"Location","default":"United States"},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum jobs","default":100},"maxPages":{"type":"number","minimum":1,"maximum":40,"title":"Maximum pages","default":4}}}}},"example":{"input":{"query":"software","location":"United States","maxItems":100,"maxPages":4}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/osher-institutes/runs":{"post":{"operationId":"run_osher_institutes","summary":"Run Osher Lifelong Learning Institutes (US)","description":"Every Osher Lifelong Learning Institute (OLLI) in the US — host university, address, phone and website from the Osher National Resource Center, enriched from each institute site with its general email, program director and published membership size.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or state names. Empty means every institute.","default":[],"examples":["CA, FL, NY"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Max institutes","default":1000},"enrichWebsites":{"type":"boolean","title":"Visit institute websites","description":"Reads each institute site and its contact/staff pages for the general email, director and published membership size.","default":true},"maxPagesPerSite":{"type":"number","minimum":1,"maximum":12,"title":"Pages per website","default":5},"concurrency":{"type":"number","minimum":1,"maximum":10,"title":"Sites in parallel","default":4}}}}},"example":{"input":{"states":["CA","FL","NY"],"maxItems":1000,"enrichWebsites":true,"maxPagesPerSite":5}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/owler-companies/runs":{"post":{"operationId":"run_owler_companies","summary":"Run Owler Company Profiles","description":"Company overview, public estimates, location, leadership and funding from Owler.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"companySlugs":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Owler company slugs","default":["microsoft"]}}}}},"example":{"input":{"companySlugs":["microsoft"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/product-hunt-products/runs":{"post":{"operationId":"run_product_hunt_products","summary":"Run Product Hunt Catalog","description":"Every Product Hunt product — website, socials, company facts, launches, reviews, alternatives, awards and team.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"mode":{"type":"string","enum":["backfill","discover","sync","drain"],"title":"Mode","description":"backfill — walk every category listing into the product queue, then scrape the queue. discover — walk each category newest-first until the pages hold only known products, then scrape what is new. sync — rescrape products older than syncAfterDays, oldest first. drain — only scrape what is already queued. Every mode scrapes new products before stale ones.","default":"backfill"},"syncAfterDays":{"type":"number","minimum":1,"maximum":3650,"title":"Resync after (days)","description":"In sync mode, products last scraped longer ago than this are rescraped.","default":30},"maxDiscoverPagesPerCategory":{"type":"number","minimum":1,"maximum":10000,"title":"Max newest-first pages per category","description":"Discover mode stops a category after two pages with no unknown product, or after this many pages.","default":50},"followLinks":{"type":"boolean","title":"Queue linked products","description":"Queue products seen in alternatives, customers and makers' product lists. Catches products filed under no category, which no listing ever shows.","default":true},"categoriesInParallel":{"type":"number","minimum":1,"maximum":64,"title":"Category listings in parallel","default":8},"cookie":{"type":"string","maxLength":2000,"title":"Cloudflare cookie","description":"Usually unnecessary. Cloudflare only challenges some IPs (typically VPN or datacenter ranges); from those, solve the challenge in a browser on the same IP and paste its cf_clearance (the bare value or a full Cookie header) with that browser's userAgent.","examples":["cf_clearance=…"]},"userAgent":{"type":"string","maxLength":2000,"title":"User-Agent","description":"Only matters with a cookie: use the User-Agent of the browser that produced it.","default":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:156.0) Gecko/20100101 Firefox/156.0"},"impersonation":{"type":"string","enum":["firefox","chrome"],"title":"TLS profile","description":"Match the browser family of the User-Agent.","default":"firefox"},"useProxy":{"type":"boolean","title":"Use the proxy pool","description":"Off by default: a rotating pool mixes IPs Cloudflare lets through with ones it challenges.","default":false},"categories":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Category slugs","description":"Empty discovers every category from /categories, recursing into subcategories.","examples":["engineering-development"]},"products":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product slugs","description":"Scrape exactly these products and skip category discovery.","examples":["vercel"]},"includeSubcategories":{"type":"boolean","title":"Include subcategories","default":true},"featuredOnly":{"type":"boolean","title":"Featured products only","description":"The site defaults to featured products; off collects the full category listing.","default":false},"maxProducts":{"type":"number","minimum":1,"maximum":1000000,"title":"Max products per run","default":1000000},"maxCategories":{"type":"number","minimum":1,"maximum":5000,"title":"Max categories per run","default":5000},"maxPagesPerCategory":{"type":"number","minimum":1,"maximum":10000,"title":"Max listing pages per category","description":"Twenty products per page; Product Hunt caps the page size.","default":10000},"refreshAfterHours":{"type":"number","minimum":0,"maximum":8760,"title":"Refresh after (hours)","description":"How long a category listing checkpoint stays valid for backfill resumes, and, with rescrapeKnownMakers, how old a maker must be to be refetched.","default":24},"resumeCategories":{"type":"boolean","title":"Resume category listings","description":"Checkpoints each category listing in lead_gen_product_hunt_crawl_state. Within refreshAfterHours a rerun skips categories already walked to the end and restarts partial ones one page before where they stopped, instead of re-reading every listing from page 1.","default":true},"productSections":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product sections","description":"Empty fetches all of: layout, about, reviewSummary, reviews, launches, alternatives, customers, team, awards, embed.","examples":["layout, about, reviewSummary, reviews, launches, alternatives, customers, team, awards, embed"]},"scrapeTeamProfiles":{"type":"boolean","title":"Scrape team member profiles","description":"Writes each maker to lead_gen_product_hunt_makers.","default":true},"rescrapeKnownMakers":{"type":"boolean","title":"Rescrape known makers","description":"Off: a maker already in lead_gen_product_hunt_makers is never fetched again, only linked to the new product. On: makers older than refreshAfterHours are fetched and refreshed in place.","default":false},"profileSections":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Profile sections","description":"Empty fetches all of: layout, about, activity, upvotes, forums, collections, stacks, reviews.","examples":["layout, about, activity, upvotes, forums, collections, stacks, reviews"]},"maxReviewsPerProduct":{"type":"number","minimum":0,"maximum":20000,"title":"Max reviews per product","default":1000},"maxLaunchesPerProduct":{"type":"number","minimum":0,"maximum":5000,"title":"Max launches per product","default":500},"maxAlternativesPerProduct":{"type":"number","minimum":0,"maximum":2000,"title":"Max alternatives per product","default":100},"maxCustomersPerProduct":{"type":"number","minimum":0,"maximum":5000,"title":"Max customers per product","default":500},"maxTeamPerProduct":{"type":"number","minimum":0,"maximum":5000,"title":"Max team members per product","default":500},"maxAwardsPerProduct":{"type":"number","minimum":0,"maximum":5000,"title":"Max awards per product","default":500},"concurrency":{"type":"number","minimum":1,"maximum":128,"title":"Products in parallel","description":"Products scraped at once. Each one fetches its sections in parallel and its team four profiles at a time, all under maxInFlight.","default":32},"maxInFlight":{"type":"number","minimum":1,"maximum":256,"title":"Max requests in flight","description":"Global cap on simultaneous requests to Product Hunt, whatever the concurrency. A 429 pauses every worker together.","default":96},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":0},"maxConsecutiveBlocks":{"type":"number","minimum":1,"maximum":100,"title":"Abort after consecutive blocks","description":"A challenged request is retried after a pause; once Cloudflare refuses this many requests in a row the run stops and keeps what it collected. High enough to ride out an isolated challenge under heavy concurrency, low enough that a challenged IP stops within seconds.","default":10},"maxOfflineMinutes":{"type":"number","minimum":1,"maximum":1440,"title":"Abort after offline (minutes)","description":"Connection failures pause the crawl and retry with backoff instead of skipping work. If Product Hunt stays unreachable this long, the run stops cleanly so it can be resumed.","default":30}}}}},"example":{"input":{"mode":"backfill","syncAfterDays":30,"maxDiscoverPagesPerCategory":50,"followLinks":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/senior-community-contacts/runs":{"post":{"operationId":"run_senior_community_contacts","summary":"Run Senior Living Community Contacts","description":"Contact emails, main phone and named staff — activity and life-enrichment directors first — read from senior living communities' own websites.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"urls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Community websites","description":"One community website per line. Optionally add the facility name and state after pipes: `url | name | state`.","default":[],"examples":["https://www.example-seniorliving.com | Example Gardens | OR"]},"sourceScraperId":{"type":"string","maxLength":2000,"title":"Read websites from dataset","description":"Id of another scraper whose rows carry a `website` or `url` column. Its rows are read from that scraper's collection and enriched alongside any URLs above.","examples":["senior-living-facilities"]},"sourceExecutionId":{"type":"string","maxLength":2000,"title":"Source run id","description":"Restrict the source dataset to the rows of one run."},"sourceLimit":{"type":"number","minimum":1,"maximum":5000,"title":"Max rows from dataset","default":100},"maxPagesPerSite":{"type":"number","minimum":1,"maximum":20,"title":"Max pages per site","description":"Home page included. Team, life-enrichment, activities and contact pages are visited first.","default":8},"concurrency":{"type":"number","minimum":1,"maximum":12,"title":"Sites in parallel","default":4},"requestTimeoutMs":{"type":"number","minimum":2000,"maximum":60000,"title":"Request timeout (ms)","default":15000},"pageDelayMs":{"type":"number","minimum":0,"maximum":10000,"title":"Delay between pages of one site (ms)","default":250},"respectRobots":{"type":"boolean","title":"Respect robots.txt","default":true},"includeOtherStaff":{"type":"boolean","title":"Keep other named staff","description":"Off keeps only activity, life-enrichment, lifestyle, executive and sales roles.","default":true}}}}},"example":{"input":{"urls":["https://www.example-seniorliving.com | Example Gardens | OR"],"sourceScraperId":"senior-living-facilities","sourceLimit":100,"maxPagesPerSite":8}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/senioradvisor-communities/runs":{"post":{"operationId":"run_senioradvisor_communities","summary":"Run SeniorAdvisor Senior Living Communities","description":"US senior living communities listed on SeniorAdvisor.com — assisted living, independent living, memory care and nursing homes with address, coordinates, operator, care types, rating, review count, services and awards.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or full names. Empty crawls every state SeniorAdvisor Senior Living Communities lists.","default":[],"examples":["FL, AZ"]},"maxItems":{"type":"number","minimum":0,"maximum":1000000,"title":"Max listings","description":"0 means no ceiling.","default":0},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel requests","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":250}}}}},"example":{"input":{"states":["FL","AZ"],"maxItems":0,"concurrency":4,"requestDelayMs":250}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/shopify-stores/runs":{"post":{"operationId":"run_shopify_stores","summary":"Run Shopify Store Directory","description":"Directory of live Shopify storefronts, each confirmed as an active store.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/uae-family-office-registers/runs":{"post":{"operationId":"run_uae_family_office_registers","summary":"Run UAE Family Offices, Foundations & Private Trust Companies (DIFC + ADGM registers)","description":"Family offices, single family offices, private trust companies, foundations and family holding vehicles on the DIFC and ADGM public company registers — registration number, legal type, status, incorporation date, licensed activities, registered address, current directors, shareholders and other officers.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"registers":{"type":"array","items":{"type":"string","enum":["difc","adgm"]},"uniqueItems":true,"title":"Registers","default":["difc","adgm"]},"keywords":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Name keywords","description":"Each keyword is searched against entity names on both registers. A keyword that contains a broader one in the list (Family Office inside Family) is not searched again but still labels the match.","default":["Single Family Office","Family Office","Private Trust Company","Family Holding","Family Investment","Family","PTC","Private Trust","Trust Company","Foundation","Private Office","Wealth","Trust"]},"activities":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"ADGM licensed activities","description":"ADGM can be searched by licensed activity, which finds single family offices whose names say nothing about it. Add \"Proprietary investment\" for family holding vehicles. DIFC exposes activities only on rows already found by name.","default":["Family Office","Trust Services"]},"includeFoundations":{"type":"boolean","title":"Every ADGM foundation","description":"ADGM lets the foundations register be listed whole, whatever the name.","default":true},"activeOnly":{"type":"boolean","title":"Active entities only","description":"Drops struck off, dissolved, deregistered and expired entities. DIFC counts only \"Active\", ADGM only \"Registered\".","default":true},"includeAll":{"type":"boolean","title":"Keep every search hit","description":"By default a name hit must contain the keyword as a whole word (Trust, not Trustpilot). Turn on to keep every substring hit the registers return.","default":false},"includeOfficers":{"type":"boolean","title":"Fetch directors, shareholders and officers","description":"One extra request per entity on each register: current directors, shareholders, secretaries and members, and for ADGM foundations the founders, council members and guardians (beneficiaries are left out). Also fills ADGM licensed activities.","default":true},"maxItems":{"type":"number","minimum":1,"maximum":50000,"title":"Max entities","default":10000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","description":"DIFC answers bursts with HTTP 429; requests back off and retry on top of this pause.","default":300}}}}},"example":{"input":{"registers":["difc","adgm"],"keywords":["Single Family Office","Family Office","Private Trust Company","Family Holding","Family Investment","Family","PTC","Private Trust","Trust Company","Foundation","Private Office","Wealth","Trust"],"activities":["Family Office","Trust Services"],"includeFoundations":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/uk-share-allotments/runs":{"post":{"operationId":"run_uk_share_allotments","summary":"Run UK Share Allotments","description":"UK companies that just issued new shares, often before a funding round is announced.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"descriptions":{"type":"array","items":{"type":"string","enum":["capital-allotment-shares","capital-statement-capital-shares-allotment","capital-statement-capital","resolution-resolution-class-of-share"]},"uniqueItems":true,"title":"Filing types","description":"The SH01 is the return a company must file within a month of allotting shares — what a funding round looks like on the register. Cancellations and buybacks are deliberately not offered: that is money leaving.","default":["capital-allotment-shares","capital-statement-capital-shares-allotment"]},"maxRecords":{"type":"number","minimum":1,"maximum":50000,"title":"Max allotments per run","description":"The stream never ends, so a run stops on whichever of this and the duration limit comes first.","default":500},"maxDurationSeconds":{"type":"number","minimum":10,"maximum":3600,"title":"Max run duration (seconds)","description":"A quiet stream can go minutes between allotments, so this is usually what ends a run rather than the record ceiling.","default":180},"enrichCompanies":{"type":"boolean","title":"Fetch company profiles","description":"The stream event carries a company number but no name. Enrichment adds the name, status, SIC codes, incorporation date and registered address — one REST request per company, and it needs the REST key.","default":true},"sicPrefixes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"SIC code prefixes","description":"Requires enrichment. Empty means every trade. Software and media: 62, 63, 58, 73, 70. Note that SIC codes are declared at incorporation and rarely updated, so this screen loses real companies.","default":[],"examples":["62, 63, 58"]},"incorporatedAfterYear":{"type":"number","minimum":0,"maximum":2200,"title":"Incorporated after (year)","description":"Requires enrichment. Zero means no limit.","default":0},"fromTimepoint":{"type":"number","minimum":0,"title":"Resume from timepoint","description":"Zero resumes from the highest timepoint already stored, and from the live edge of the stream if the collection is empty. Set a value only to replay a known point.","default":0},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between enrichment requests (ms)","description":"The REST API allows 600 requests per five minutes. This paces the enrichment calls; the stream itself is not rate limited.","default":120},"streamKey":{"type":"string","maxLength":2000,"title":"Streaming key override","description":"Defaults to COMPANIES_HOUSE_STREAM_KEY. A streaming application key is a different key from the REST one."},"restKey":{"type":"string","maxLength":2000,"title":"REST key override","description":"Defaults to COMPANIES_HOUSE_API_KEY. Used only for company-profile enrichment."}}}}},"example":{"input":{"descriptions":["capital-allotment-shares","capital-statement-capital-shares-allotment"],"maxRecords":500,"maxDurationSeconds":180,"enrichCompanies":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/state-assisted-living/runs":{"post":{"operationId":"run_state_assisted_living","summary":"Run US Assisted Living Facilities (State Licensing Rosters)","description":"Licensed assisted living, residential care and adult family care facilities from US state licensing agencies — facility name, type, license number and status, licensee/operator, administrator where published, address, county, phone, capacity and coordinates.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string","enum":["FL","CA","TX","AZ","NC","PA","NY","OH","MI","WA","MO","MD"]},"uniqueItems":true,"title":"States","description":"Empty means every supported state. Each state is read from its own licensing agency roster.","default":[]},"includeInactive":{"type":"boolean","title":"Include closed facilities","description":"Rosters that publish closed or inactive licenses (California) keep them only when this is on.","default":false},"maxItems":{"type":"number","minimum":1,"maximum":250000,"title":"Max facilities per run","default":250000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between pages (ms)","default":250}}}}},"example":{"input":{"states":["FL"],"includeInactive":false,"maxItems":250000,"requestDelayMs":250}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/us-federal-contracts/runs":{"post":{"operationId":"run_us_federal_contracts","summary":"Run US Federal Contracting Opportunities","description":"US federal contracting opportunities by NAICS trade, with the named contracting officer on each.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"naicsCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"NAICS codes","description":"One query per code. Software and web work: 541511 (Custom Computer Programming Services), 541512 (Computer Systems Design Services), 541513 (Computer Facilities Management Services), 541519 (Other Computer Related Services), 541430 (Graphic Design Services), 541810 (Advertising Agencies), 511210 (Software Publishers), 518210 (Data Processing, Hosting & Related Services).","default":["541511","541512","541519"],"examples":["541511"]},"noticeTypes":{"type":"array","items":{"type":"string","enum":["o","p","k","r","g","s","i","a","u"]},"uniqueItems":true,"title":"Notice types","description":"The defaults are the notices that represent a live buy. Award notices are history, not leads.","default":["o","p","k"]},"postedWithinDays":{"type":"number","minimum":1,"maximum":1825,"title":"Posted within (days)","description":"Ignored if an explicit posted-from date is set. Ranges over a year are split automatically.","default":30},"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Place of performance states","description":"Two-letter codes. Empty means anywhere.","default":[],"examples":["CA, TX, NY"]},"titleContains":{"type":"string","maxLength":2000,"title":"Title contains","description":"Applied by SAM.gov's own search, not locally.","examples":["website"]},"postedFrom":{"type":"string","maxLength":2000,"title":"Posted from (MM/DD/YYYY)","description":"Overrides the lookback window.","examples":["01/01/2026"]},"postedTo":{"type":"string","maxLength":2000,"title":"Posted to (MM/DD/YYYY)","examples":["12/31/2026"]},"activeOnly":{"type":"boolean","title":"Open opportunities only","description":"Drops notices whose response deadline has passed.","default":true},"requireContactEmail":{"type":"boolean","title":"Require a contact email","description":"Drops notices with no published point of contact.","default":false},"setAsideCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Set-aside codes","default":[],"examples":["SBA, 8A, WOSB, SDVOSBC"]},"maxRecords":{"type":"number","minimum":1,"maximum":100000,"title":"Max records per run","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":5000},"pageSize":{"type":"number","minimum":1,"maximum":1000,"title":"Page size","default":200},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":500},"apiKey":{"type":"string","maxLength":2000,"title":"API key override","description":"Defaults to the SAM_GOV_API_KEY environment variable. Set here only to run against a different key."}}}}},"example":{"input":{"naicsCodes":["541511","541512","541519"],"noticeTypes":["o","p","k"],"postedWithinDays":30,"states":["CA","TX","NY"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cms-nursing-homes/runs":{"post":{"operationId":"run_cms_nursing_homes","summary":"Run US Nursing Homes (CMS)","description":"Every Medicare/Medicaid-certified nursing home in the US — legal business name, address, phone, coordinates, beds, occupancy, ownership type, chain affiliation, CMS star ratings, last inspection date and the owners and managing employees on file with CMS.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter USPS codes. Empty pulls every nursing home in the country.","default":[],"examples":["FL, AZ, CA"]},"includeOwners":{"type":"boolean","title":"Include owners","description":"Joins the CMS Ownership dataset: owner and managing-employee names, roles, stakes and start dates for each facility.","default":true},"maxItems":{"type":"number","minimum":1,"maximum":1000000,"title":"Max facilities per run","default":1000000},"pageSize":{"type":"number","minimum":1,"maximum":1500,"title":"Page size","description":"The CMS datastore caps a page at 1500 rows.","default":1500},"ownerConcurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel ownership requests","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between provider pages (ms)","default":0}}}}},"example":{"input":{"states":["FL","AZ","CA"],"includeOwners":true,"maxItems":1000000,"pageSize":1500}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/hifld-senior-facilities/runs":{"post":{"operationId":"run_hifld_senior_facilities","summary":"Run US Nursing Homes & Assisted Living Facilities (HIFLD)","description":"Nationwide nursing homes and assisted living facilities from the HIFLD Nursing Homes / Assisted Care layer, with address, phone, website, beds, ownership and coordinates.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter state codes. Empty means nationwide.","default":[],"examples":["FL, AZ, CA"]},"types":{"type":"array","items":{"type":"string","enum":["assisted-living","nursing-home","unknown"]},"uniqueItems":true,"title":"Facility types","default":["assisted-living","nursing-home","unknown"]},"openOnly":{"type":"boolean","title":"Open facilities only","default":true},"maxItems":{"type":"number","minimum":1,"maximum":1000000,"title":"Max facilities","description":"Empty means the full nationwide layer."},"pageSize":{"type":"number","minimum":1,"maximum":2000,"title":"Page size","default":2000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between pages (ms)","default":250},"layerUrl":{"type":"string","maxLength":2000,"title":"Feature layer URL","description":"HIFLD Open is retired; the default is the FEMA-hosted copy of the HIFLD Nursing Homes / Assisted Care layer. Override if it moves."}}}}},"example":{"input":{"states":["FL","AZ","CA"],"types":["assisted-living","nursing-home","unknown"],"openOnly":true,"pageSize":2000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/us-private-fundraising/runs":{"post":{"operationId":"run_us_private_fundraising","summary":"Run US Private Fundraising Filings","description":"US private companies that just raised — offering amount, first-sale date and officers, as declared in their filings.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"lookbackDays":{"type":"number","minimum":1,"maximum":365,"title":"Look back (days)","description":"Daily indexes are walked one calendar day at a time. Weekends and federal holidays have no index and are skipped.","default":7},"excludeFunds":{"type":"boolean","title":"Exclude investment vehicles","description":"Drops filings whose industry group is one of: Pooled Investment Fund, Investing, Investment Banking, Other Banking and Financial Services, REITS and Finance. About two thirds of all Form D filings are funds raising from their own investors, which are not leads.","default":true},"industryGroups":{"type":"array","items":{"type":"string","enum":["Agriculture","Airlines and Airports","Biotechnology","Business Services","Coal Mining","Commercial Banking","Computers","Construction","Electric Utilities","Energy Conservation","Environmental Services","Health Insurance","Hospitals and Physicians","Insurance","Investing","Investment Banking","Lodging and Conventions","Manufacturing","Oil and Gas","Other","Other Banking and Financial Services","Other Energy","Other Health Care","Other Real Estate","Other Technology","Other Travel","Pharmaceuticals","Pooled Investment Fund","REITS and Finance","Residential","Restaurants","Retailing","Telecommunications","Tourism and Travel Services"]},"uniqueItems":true,"title":"Industry groups","description":"Empty means every group that survives the fund screen. A business-to-business starting point: Business Services, Computers, Other Technology, Telecommunications, Biotechnology, Pharmaceuticals, Manufacturing, Retailing.","default":[]},"minAmountSold":{"type":"number","minimum":0,"title":"Minimum raised ($)","description":"Screens on the amount already sold, not the amount offered. A filing reporting $0 sold has announced an offering it has not closed.","default":0},"maxAmountSold":{"type":"number","minimum":0,"title":"Maximum raised ($)","description":"Zero means no upper bound.","default":0},"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Issuer states","description":"Two-letter codes, matched against the issuer's own address. Empty means anywhere.","default":[],"examples":["CA, NY, TX"]},"newIssuersOnly":{"type":"boolean","title":"Recently incorporated issuers only","description":"Keeps only issuers who declared incorporation within the last five years.","default":false},"includeAmendments":{"type":"boolean","title":"Include amendments (D/A)","description":"An amendment usually reports a later closing at a higher amount, which is a live signal in its own right. Rows carry `is_amendment` either way.","default":true},"filedFrom":{"type":"string","maxLength":2000,"title":"Filed from (YYYY-MM-DD)","description":"Overrides the lookback window.","examples":["2026-08-01"]},"filedTo":{"type":"string","maxLength":2000,"title":"Filed to (YYYY-MM-DD)","examples":["2026-08-31"]},"maxFilings":{"type":"number","minimum":1,"maximum":50000,"title":"Max filings per run","description":"Each filing costs one extra request, so this is the main lever on run time.","default":2000},"requestDelayMs":{"type":"number","minimum":100,"maximum":30000,"title":"Delay between requests (ms)","description":"EDGAR asks for no more than ten requests a second and blocks clients that ignore it. The floor here is deliberate.","default":120},"userAgent":{"type":"string","maxLength":2000,"title":"User-Agent override","description":"Defaults to the SEC_EDGAR_USER_AGENT environment variable. EDGAR's access policy requires a name and a contact address.","examples":["Acme Research contact@acme.com"]}}}}},"example":{"input":{"lookbackDays":7,"excludeFunds":true,"industryGroups":["Agriculture"],"minAmountSold":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/senior-centers/runs":{"post":{"operationId":"run_senior_centers","summary":"Run US Senior Centers & Area Agencies on Aging","description":"US aging-network organizations — every Area Agency on Aging, State Unit on Aging, tribal aging program and aging service provider in the Eldercare Locator, with director, email, phone, website and services, plus senior centers mapped on OpenStreetMap.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"sources":{"type":"array","items":{"type":"string","enum":["eldercare","eldercare-legacy","osm"]},"uniqueItems":true,"title":"Sources","description":"OpenStreetMap adds mapped senior centers state by state through the public Overpass API; it is slow and sparse (few phones or emails), so it is off by default.","default":["eldercare","eldercare-legacy"]},"states":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"States","description":"Two-letter codes or state names. Empty means every state and territory.","default":[],"examples":["FL, AZ, CA"]},"agencyTypes":{"type":"array","items":{"type":"string","enum":["AAA","LSP","SSP","I&R","SGN"]},"uniqueItems":true,"title":"Eldercare agency types","default":["AAA","LSP","SSP","I&R","SGN"]},"maxItems":{"type":"number","minimum":1,"maximum":100000,"title":"Max organizations","default":100000},"overpassTimeoutSeconds":{"type":"number","minimum":60,"maximum":1800,"title":"OpenStreetMap query timeout per state (s)","default":300}}}}},"example":{"input":{"sources":["eldercare","eldercare-legacy"],"states":["FL","AZ","CA"],"agencyTypes":["AAA","LSP","SSP","I&R","SGN"],"maxItems":100000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/xing-profiles/runs":{"post":{"operationId":"run_xing_profiles","summary":"Run XING Public Professional Profiles","description":"Public XING profile names, professional roles, career history and location.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"profileSlugs":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Profile slugs"},"maxItems":{"type":"number","minimum":1,"maximum":100,"title":"Maximum profiles","default":10}}}}},"example":{"input":{"maxItems":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/yelp-businesses/runs":{"post":{"operationId":"run_yelp_businesses","summary":"Run Yelp Business Profiles","description":"Public business details, location, ratings, hours, phone and categories.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"businessSlugs":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Yelp business aliases","default":["blue-bottle-coffee-san-francisco-44"]}}}}},"example":{"input":{"businessSlugs":["blue-bottle-coffee-san-francisco-44"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/zoominfo-company-directory/runs":{"post":{"operationId":"run_zoominfo_company_directory","summary":"Run ZoomInfo Public Company Directory","description":"Company names, locations, industries and reported metrics from public directory pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"directoryPaths":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Public directory path segments","default":["location-usa-industry-software"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum companies","default":100}}}}},"example":{"input":{"directoryPaths":["location-usa-industry-software"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/apify-store-actors/runs":{"post":{"operationId":"run_apify_store_actors","summary":"Run Apify Store Actor Rankings","description":"Every public scraper and automation actor on the Apify Store in popularity order, with monthly, weekly and quarterly user counts, 30-day run volume and success rate, reviews, bookmarks, categories and pricing (model, primary charge event, price per result). Snapshotted daily, so successive runs show which data sources are gaining or losing demand.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"category":{"type":"string","enum":["ALL","AI","AGENTS","AUTOMATION","BUSINESS","DEVELOPER_TOOLS","ECOMMERCE","FOR_CREATORS","INTEGRATIONS","JOBS","LEAD_GENERATION","MARKETING","MCP_SERVERS","NEWS","OPEN_SOURCE","OTHER","REAL_ESTATE","SEO_TOOLS","SOCIAL_MEDIA","TRAVEL","VIDEOS"],"title":"Store category","default":"ALL"},"minUsers30Days":{"type":"number","minimum":0,"title":"Min users in last 30 days","description":"Skip actors with fewer monthly users. The store is ranked by popularity, so the long tail has close to zero.","default":0},"maxActors":{"type":"number","minimum":1,"maximum":100000,"title":"Max actors per run","default":20000},"requestDelayMs":{"type":"number","minimum":200,"maximum":30000,"title":"Delay between requests (ms)","default":500}}}}},"example":{"input":{"category":"ALL","minUsers30Days":0,"maxActors":20000,"requestDelayMs":500}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/creative-commons-3d-models/runs":{"post":{"operationId":"run_creative_commons_3d_models","summary":"Run Creative Commons 3D Models","description":"Downloadable Creative-Commons-licensed 3D models from Sketchfab (sketchfab.com) via its public Data API v3 search: URL, id, title, description, license, thumbnails, creator, view/like/comment counts, geometry stats and download formats. Only models whose license resolves to a CC license are kept.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxModels":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum models","default":100},"licenses":{"type":"array","items":{"type":"string","enum":["by","by-sa","by-nd","by-nc","by-nc-sa","by-nc-nd","cc0"]},"uniqueItems":true,"title":"Licenses","description":"Sketchfab Creative Commons license slugs, one search pass each: by, by-sa, by-nd, by-nc, by-nc-sa, by-nc-nd, cc0. Unknown slugs are ignored.","default":["by","cc0"]},"query":{"type":"string","maxLength":2000,"title":"Search text","description":"Optional free-text filter passed to Sketchfab search.","examples":["chair"]},"categories":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Categories","description":"Optional Sketchfab category slugs (e.g. animals-pets, architecture, vehicles-transportation). Each category runs its own pass per license.","examples":["animals-pets"]},"maxPages":{"type":"number","minimum":1,"maximum":50,"title":"Max pages per pass","default":2},"pageSize":{"type":"number","minimum":1,"maximum":24,"title":"Models per page","default":24},"requestDelayMs":{"type":"number","minimum":300,"maximum":30000,"title":"Delay between requests (ms)","default":500}}}}},"example":{"input":{"maxModels":100,"licenses":["by","cc0"],"query":"chair","categories":["animals-pets"]}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/openverse-images/runs":{"post":{"operationId":"run_openverse_images","summary":"Run Creative Commons Images (Openverse)","description":"Openverse image metadata, original source, creator and license attribution.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Image search","default":"landscape"},"license":{"type":"string","maxLength":2000,"title":"License filter"},"maxItems":{"type":"number","minimum":1,"maximum":500,"title":"Maximum images","default":20},"maxPages":{"type":"number","minimum":1,"maximum":20,"title":"Maximum pages","default":5}}}}},"example":{"input":{"query":"landscape","maxItems":20,"maxPages":5}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/espn-games/runs":{"post":{"operationId":"run_espn_games","summary":"Run ESPN Games","description":"ESPN game summaries — teams, score, status, venue and date.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"league":{"type":"string","enum":["football/nfl","football/college-football","basketball/nba","basketball/wnba","basketball/mens-college-basketball","baseball/mlb","hockey/nhl","soccer/eng.1","soccer/usa.1"],"title":"Sport / league","description":"Sport and league travel together in the endpoint path; an unmatched pair is a 404, not an empty result. Unlisted leagues can be set as `sport/league` through the raw-JSON options.","default":"football/nfl"},"eventIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Event ids","description":"ESPN's own game ids — the number in a Gamecast URL. Every id must belong to the league selected above.","default":["401671789"],"examples":["401671789"]},"maxEvents":{"type":"number","minimum":1,"maximum":5000,"title":"Max events per run","description":"Ceiling on how many of the listed ids are fetched. Rows upsert, so this bounds one run rather than the dataset.","default":200},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":400}}}}},"example":{"input":{"league":"football/nfl","eventIds":["401671789"],"maxEvents":200,"requestDelayMs":400}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/github-repository-files/runs":{"post":{"operationId":"run_github_repository_files","summary":"Run GitHub Repository Files","description":"Public GitHub repository source files, repository metadata and license attribution.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"repositories":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Repositories (owner/name)"},"paths":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"File paths (default README)"},"maxItems":{"type":"number","minimum":1,"maximum":50,"title":"Maximum files","default":10},"maxFileBytes":{"type":"number","minimum":1,"maximum":1000000,"title":"Maximum file size","default":100000}}}}},"example":{"input":{"maxItems":10,"maxFileBytes":100000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/goodreads-books/runs":{"post":{"operationId":"run_goodreads_books","summary":"Run Goodreads Books","description":"Book records from Goodreads (goodreads.com book pages, optionally discovered from Listopia lists): title, author, star rating, ratings and review counts, rating distribution, summary, genres, first published date, pages, format, ISBN, series, cover image, awards, characters and places.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"bookIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Book ids or URLs","description":"Goodreads book ids (the number in /book/show/2767052-the-hunger-games) or full book URLs.","default":["2767052","4671"],"examples":["2767052"]},"listIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Listopia list ids","description":"Optional Goodreads Listopia lists (id or URL). Every book on the fetched list pages is added after the explicit book ids.","default":[],"examples":["1.Best_Books_Ever"]},"maxPagesPerList":{"type":"number","minimum":1,"maximum":50,"title":"Max pages per list","description":"A list page holds 100 books.","default":1},"maxBooks":{"type":"number","minimum":1,"maximum":2000,"title":"Max books per run","description":"One page request per book; this caps the run.","default":20},"requestDelayMs":{"type":"number","minimum":300,"maximum":30000,"title":"Delay between requests (ms)","description":"Goodreads answers bursts from one address with an AWS WAF challenge, which stops the run; keep this generous.","default":5000}}}}},"example":{"input":{"bookIds":["2767052","4671"],"listIds":["1.Best_Books_Ever"],"maxPagesPerList":1,"maxBooks":20}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/imdb-titles/runs":{"post":{"operationId":"run_imdb_titles","summary":"Run IMDb Titles","description":"IMDb film and series metadata — title, year, type, rating, genres, runtime, plot and people.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"titleIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Title ids","description":"IMDb ids. A bare number or a full imdb.com/title/… URL is accepted and normalised.","default":["tt0120338"],"examples":["tt0120338"]},"includeImages":{"type":"boolean","title":"Collect the still gallery","description":"Off by default: the poster is always kept, and the gallery is a long tail of stills that dominates the row size.","default":false},"maxImages":{"type":"number","minimum":1,"maximum":100,"title":"Max gallery images","description":"Ignored unless the gallery is collected.","default":12},"maxTitles":{"type":"number","minimum":1,"maximum":5000,"title":"Max titles per run","description":"Ceiling on how many of the listed ids are fetched. Rows upsert, so this bounds one run rather than the dataset.","default":200},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"IMDb's WAF escalates on request rate. Lowering this is the fastest way to get a run blocked.","default":1500}}}}},"example":{"input":{"titleIds":["tt0120338"],"includeImages":false,"maxImages":12,"maxTitles":200}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ia-pptx-items/runs":{"post":{"operationId":"run_ia_pptx_items","summary":"Run Internet Archive PowerPoint Files","description":"PowerPoint (.pptx) files on the Internet Archive — title, download link, source page, size and license.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"targetCount":{"type":"number","minimum":1,"maximum":20000,"title":"Target row count","description":"Stops once this many pptx-file rows have been collected, or the search runs out of identifiers. Use 5-10 for a quick check, up to 10000+ for a full collection run.","default":200},"query":{"type":"string","maxLength":2000,"title":"Archive.org search query","description":"Raw advancedsearch/scrape `q=` query against archive.org. Defaults to a format filter that matches PowerPoint files.","default":"format:(\"Microsoft PowerPoint\" OR \"Microsoft PowerPoint 2007+\" OR PowerPoint)"},"requestDelayMs":{"type":"number","minimum":200,"maximum":30000,"title":"Delay between requests (ms)","description":"Applied between scrape-page calls and between per-item metadata calls, to stay polite to archive.org.","default":600}}}}},"example":{"input":{"targetCount":200,"query":"format:(\"Microsoft PowerPoint\" OR \"Microsoft PowerPoint 2007+\" OR PowerPoint)","requestDelayMs":600}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/kick-clips/runs":{"post":{"operationId":"run_kick_clips","summary":"Run Kick Clips","description":"Kick clip metadata — title, channel, creator, category, views and duration.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"clipIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Clip ids","description":"The `clip_…` id from a kick.com clip URL. One request per id; a dead id costs that id only.","default":["clip_01JGM36FCSZWTEVA1EG1P0CQE4"],"examples":["clip_01JGM36FCSZWTEVA1EG1P0CQE4"]},"maxClips":{"type":"number","minimum":1,"maximum":10000,"title":"Max clips per run","description":"Ceiling on how many of the listed ids are fetched. Rows upsert, so this bounds one run rather than the dataset.","default":500},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":300}}}}},"example":{"input":{"clipIds":["clip_01JGM36FCSZWTEVA1EG1P0CQE4"],"maxClips":500,"requestDelayMs":300}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/nba-player-stats/runs":{"post":{"operationId":"run_nba_player_stats","summary":"Run NBA Player Stats","description":"Every NBA player's season stats from the official NBA stats API (stats.nba.com leaguedashplayerstats): team, age, games played and started, minutes, shooting splits, rebounds, assists, steals, blocks, points and plus-minus, per game, totals or per 36.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"season":{"type":"string","maxLength":2000,"title":"Season","description":"NBA season as YYYY-YY. Empty means the latest season with data: the current one once it has tipped off, otherwise the last completed one.","examples":["2025-26"]},"seasonType":{"type":"string","enum":["Regular Season","Playoffs"],"title":"Season type","default":"Regular Season"},"perMode":{"type":"string","enum":["PerGame","Totals","Per36"],"title":"Stat mode","default":"PerGame"},"includeGamesStarted":{"type":"boolean","title":"Resolve games started","description":"Adds one request for the starters split; games started is the games played in that split.","default":true},"maxPlayers":{"type":"number","minimum":1,"maximum":2000,"title":"Max players per run","default":1000},"requestDelayMs":{"type":"number","minimum":300,"maximum":30000,"title":"Delay between requests (ms)","default":600}}}}},"example":{"input":{"season":"2025-26","seasonType":"Regular Season","perMode":"PerGame","includeGamesStarted":true}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/wikipedia-articles/runs":{"post":{"operationId":"run_wikipedia_articles","summary":"Run Wikipedia Articles","description":"Wikipedia article text and attribution by title or search query.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"titles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Article titles"},"query":{"type":"string","maxLength":2000,"title":"Search query","default":"computer science"},"language":{"type":"string","maxLength":2000,"title":"Wikipedia language","default":"en"},"maxItems":{"type":"number","minimum":1,"maximum":100,"title":"Maximum articles","default":10},"maxPages":{"type":"number","minimum":1,"maximum":20,"title":"Maximum API pages","default":5}}}}},"example":{"input":{"query":"computer science","language":"en","maxItems":10,"maxPages":5}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/world-population/runs":{"post":{"operationId":"run_world_population","summary":"Run World Population","description":"Population of every country from the World Bank World Development Indicators API (api.worldbank.org): population and previous-year population, yearly change, growth rate, share of world population, surface and land area, density, urban share, fertility rate, region, income level and capital, ranked by population.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"year":{"type":"number","minimum":1961,"title":"Year","description":"Reference year for population. Empty means the latest year the World Bank has published a world total for. Area, density, urbanisation and fertility use the latest value at or before that year.","examples":["2024"]},"includeAggregates":{"type":"boolean","title":"Include regional aggregates","description":"Also emit World Bank aggregates such as World, regions and income groups. They are never ranked.","default":false},"maxCountries":{"type":"number","minimum":1,"maximum":400,"title":"Max rows per run","default":300},"requestDelayMs":{"type":"number","minimum":300,"maximum":30000,"title":"Delay between requests (ms)","default":400}}}}},"example":{"input":{"includeAggregates":false,"maxCountries":300,"requestDelayMs":400}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/world-zipcodes/runs":{"post":{"operationId":"run_world_zipcodes","summary":"Run World Zipcodes","description":"Postal code lookups from the public Zippopotam.us API (api.zippopotam.us, ~70 countries): country, region, city, postal codes and coordinates per CC/POSTCODE or CC/STATE/CITY input. One row per input, including not-found and invalid inputs with their error.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"lookups":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Lookups","description":"Each entry is either CC/POSTCODE (e.g. fr/75001) or CC/STATE/CITY (e.g. us/ca/beverly hills). Supported country codes: ad, ar, as, at, au, bd, be, bg, br, ca, ch, cz, de, dk, do, es, fi, fo, fr, gb, gf, gg, gl, gp, gt, gu, gy, hr, hu, im, in, is, it, je, jp, li, lk, lt, lu, mc, md, mh, mk, mp, mq, mx, my, nl, no, nz, ph, pk, pl, pm, pr, pt, re, ru, se, si, sj, sk, sm, th, tr, us, va, vi, yt, za. Every entry yields one row; unknown or invalid lookups are kept with an error.","default":["us/90210","fr/75001","us/ca/beverly hills"],"examples":["us/90210"]},"maxLookups":{"type":"number","minimum":1,"maximum":1000,"title":"Max lookups per run","default":100},"requestDelayMs":{"type":"number","minimum":300,"maximum":30000,"title":"Delay between requests (ms)","default":400}}}}},"example":{"input":{"lookups":["us/90210","fr/75001","us/ca/beverly hills"],"maxLookups":100,"requestDelayMs":400}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/yahoo-finance-business/runs":{"post":{"operationId":"run_yahoo_finance_business","summary":"Run Yahoo Finance Business Information","description":"Company profiles from Yahoo Finance (finance.yahoo.com quote profile pages): name, entity type, business summary, sector, industry, employees, address, officers, exchange, currency, earnings date, price, market cap, 52-week range, P/E and dividend data. One row per requested ticker.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"tickers":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Tickers","description":"Yahoo Finance symbols, e.g. AAPL, BRK-B, SHOP.TO, ^GSPC. One profile page is fetched per ticker.","default":["AAPL","MSFT"],"examples":["AAPL"]},"maxTickers":{"type":"number","minimum":1,"maximum":500,"title":"Max tickers per run","default":50},"requestDelayMs":{"type":"number","minimum":300,"maximum":30000,"title":"Delay between requests (ms)","default":800}}}}},"example":{"input":{"tickers":["AAPL","MSFT"],"maxTickers":50,"requestDelayMs":800}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/numbering-plan-fr/runs":{"post":{"operationId":"run_numbering_plan_fr","summary":"Run France Phone Number Ranges","description":"French phone number ranges and the operators they are allocated to (+33).\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/numbering-plan-in/runs":{"post":{"operationId":"run_numbering_plan_in","summary":"Run India Phone Number Ranges","description":"Indian mobile number series and the Telecom Circle (LSA) each was allotted to (+91).\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/numbering-plan-gb/runs":{"post":{"operationId":"run_numbering_plan_gb","summary":"Run United Kingdom Phone Number Ranges","description":"UK telephone number block allocations (+44).\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/numbering-plan-us/runs":{"post":{"operationId":"run_numbering_plan_us","summary":"Run United States Phone Number Ranges","description":"US NPA-NXX code assignments (+1).\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ninetynine-listings/runs":{"post":{"operationId":"run_ninetynine_listings","summary":"Run 99.co Singapore Listings","description":"Every 99.co Singapore sale and rent listing — HDB, condo, landed and commercial — with price, psf, size, beds, tenure, built year, floor level, postal code, district, coordinates and the listing agent’s CEA registration, agency and licence.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"listingTypes":{"type":"array","items":{"type":"string","enum":["sale","rent"]},"uniqueItems":true,"title":"Listing types","default":["sale","rent"]},"segments":{"type":"array","items":{"type":"string","enum":["residential","commercial"]},"uniqueItems":true,"title":"Segments","default":["residential","commercial"]},"maxListings":{"type":"number","minimum":1,"maximum":500000,"title":"Maximum listings","default":500000},"pageSize":{"type":"number","minimum":10,"maximum":100,"title":"Listings per page","default":100},"concurrency":{"type":"number","minimum":1,"maximum":4,"title":"Parallel requests","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Minimum delay between requests (ms)","default":1000},"includeAgentDetails":{"type":"boolean","title":"Add agent CEA number, agency licence, floor level and verification (residential)","description":"A second pass over the 99.co app API, matched to the web rows by listing id.","default":true}}}}},"example":{"input":{"listingTypes":["sale","rent"],"segments":["residential","commercial"],"maxListings":500000,"pageSize":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/airbnb-listings/runs":{"post":{"operationId":"run_airbnb_listings","summary":"Run Airbnb Stay Listings","description":"Airbnb rental listings — location, price breakdown, rating, reviews, rooms, beds, host badges and coordinates.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"location":{"type":"string","maxLength":2000,"title":"Destination","description":"Typed exactly as it would be into Airbnb’s search box. Ignored when map bounds are set.","default":"Lisbon, Portugal","examples":["Lisbon, Portugal"]},"checkin":{"type":"string","maxLength":2000,"title":"Check-in","description":"YYYY-MM-DD. Leave both dates empty for undated prices — Airbnb then quotes its own default stay, which is not comparable between runs.","examples":["2026-10-10"]},"checkout":{"type":"string","maxLength":2000,"title":"Check-out","description":"YYYY-MM-DD. Only applied together with a check-in.","examples":["2026-10-14"]},"adults":{"type":"number","minimum":1,"maximum":16,"title":"Adults","description":"Guest count filters out listings too small for the party, so it changes which listings exist, not only their price.","default":2},"children":{"type":"number","minimum":0,"maximum":15,"title":"Children","default":0},"currency":{"type":"string","maxLength":2000,"title":"Currency","description":"ISO code. Airbnb renders every price in it, so mixing currencies between runs makes the price columns incomparable.","default":"USD","examples":["USD"]},"maxListings":{"type":"number","minimum":1,"maximum":50000,"title":"Max listings per run","description":"Rows upsert on re-run, so this bounds one run rather than the dataset.","default":540},"priceMin":{"type":"number","minimum":0,"maximum":100000,"title":"Min price per night","description":"0 leaves the filter off.","default":0},"priceMax":{"type":"number","minimum":0,"maximum":100000,"title":"Max price per night","description":"0 leaves the filter off. Bounds are per night before fees, in the run’s currency, and Airbnb applies them server-side — a 30-60 cap and a 400 floor return visibly different markets.","default":0},"infants":{"type":"number","minimum":0,"maximum":5,"title":"Infants","default":0},"pets":{"type":"number","minimum":0,"maximum":5,"title":"Pets","description":"Non-zero restricts results to pet-friendly listings.","default":0},"mapBounds":{"type":"string","maxLength":2000,"title":"Map bounds","description":"swLat,swLng,neLat,neLng. Searches a viewport instead of a named destination — the way to cover an area with no Airbnb place id, or to sweep a city in tiles.","examples":["41.34,2.10,41.42,2.23"]},"placeId":{"type":"string","maxLength":2000,"title":"Place id","description":"Google place id for the destination. Worth setting where the name is ambiguous; Airbnb resolves the text itself otherwise.","examples":["ChIJ…"]},"zoomLevel":{"type":"number","minimum":1,"maximum":20,"title":"Zoom level","description":"Accompanies map bounds. Only affects how Airbnb clusters, not what it returns.","default":12},"maxPages":{"type":"number","minimum":1,"maximum":200,"title":"Max pages","description":"Airbnb hands out 15 page cursors (18 results each) and then stops; pages beyond that need deep paging, and repeat more the further they go.","default":30},"deepPaging":{"type":"boolean","title":"Page past Airbnb’s last cursor","description":"Airbnb stops issuing cursors after page 15, but still answers a hand-built one — its cursor is just a base64 result offset. Measured on Lisbon, that took one search from 229 listings to 331. Turn it off to stay strictly inside what Airbnb offers.","default":true},"locale":{"type":"string","maxLength":2000,"title":"Locale","description":"Response language. Changing it changes the number formatting inside the price strings, which the price parser assumes is English.","default":"en"},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between pages (ms)","default":1200},"apiKey":{"type":"string","maxLength":2000,"title":"API key override","description":"Defaults to AIRBNB_API_KEY, then the public browser key airbnb.com ships in its own page source. Set only if Airbnb rotates that key."},"persistedQueryHash":{"type":"string","maxLength":2000,"title":"Persisted query hash","description":"The hash in the request path. Airbnb ignores it because the request carries its own query document, so this is here for the day it stops doing so."}}}}},"example":{"input":{"location":"Lisbon, Portugal","checkin":"2026-10-10","checkout":"2026-10-14","adults":2}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/auction/runs":{"post":{"operationId":"run_auction","summary":"Run Auction Property Listings","description":"Property listings from real estate auctions.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/bayut-agents/runs":{"post":{"operationId":"run_bayut_agents","summary":"Run Bayut UAE Agents & Agencies","description":"The Bayut directory of UAE real-estate brokers and agencies: agency ORN/RERA licence numbers, TruBroker, Quality Lister and Responsive badges, XP, active listings by purpose, category and off-plan vs ready, TruChecked listings, specialities, languages and service areas, with agent BRN, experience and claimed deals when profile pages are opened. Professional profile data only — no phone numbers or emails.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"include":{"type":"array","items":{"type":"string","enum":["agents","agencies"]},"uniqueItems":true,"title":"Records","default":["agents","agencies"]},"profileDetails":{"type":"boolean","title":"Open each agent profile","description":"Loads every agent profile page for the BRN number, years of experience and claimed deals. Bayut keeps those out of its search index, so this costs one page per agent (about 20,000 for the UAE).","default":false},"maxRecords":{"type":"number","minimum":1,"maximum":1000000,"title":"Max records per run","default":1000000},"algoliaHost":{"type":"string","maxLength":2000,"title":"Search host","description":"The Algolia-compatible host the Bayut site queries.","default":"https://search-dsn.bayut.com"},"algoliaApiKey":{"type":"string","maxLength":2000,"title":"Search API key","description":"The x-algolia-api-key the Bayut site sends. Update it if Bayut rotates its frontend key.","default":"strat_a5e4568c"},"algoliaAgent":{"type":"string","maxLength":2000,"title":"Search agent","default":"strat-bayut-prod-fec/09d7f4d0"},"hitsPerPage":{"type":"number","minimum":1,"maximum":1000,"title":"Results per request","default":250},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":250}}}}},"example":{"input":{"include":["agents","agencies"],"profileDetails":false,"maxRecords":1000000,"algoliaHost":"https://search-dsn.bayut.com"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/bayut-listings/runs":{"post":{"operationId":"run_bayut_listings","summary":"Run Bayut UAE Property Listings","description":"Every residential and commercial property for sale and for rent on Bayut, the largest UAE property portal — Dubai by default, any emirate on request. Price and rent frequency, size in sqft, beds and baths, off-plan or ready, the full location hierarchy with coordinates, furnishing, amenities, TruCheck and verification status, developer and completion date, and the listing agent and agency with their RERA licence numbers.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"emirates":{"type":"array","items":{"type":"string","enum":["dubai","abu-dhabi","sharjah","ajman","ras-al-khaimah","umm-al-quwain","fujairah","al-ain"]},"uniqueItems":true,"title":"Emirates","default":["dubai"]},"purposes":{"type":"array","items":{"type":"string","enum":["for-sale","for-rent"]},"uniqueItems":true,"title":"Purpose","default":["for-sale","for-rent"]},"categories":{"type":"array","items":{"type":"string","enum":["residential","commercial"]},"uniqueItems":true,"title":"Property categories","default":["residential","commercial"]},"maxListings":{"type":"number","minimum":1,"maximum":10000000,"title":"Max listings per run","default":10000000},"algoliaHost":{"type":"string","maxLength":2000,"title":"Search host","description":"The Algolia-compatible host the Bayut site queries.","default":"https://search-dsn.bayut.com"},"algoliaApiKey":{"type":"string","maxLength":2000,"title":"Search API key","description":"The x-algolia-api-key the Bayut site sends. Update it if Bayut rotates its frontend key.","default":"strat_a5e4568c"},"algoliaAgent":{"type":"string","maxLength":2000,"title":"Search agent","default":"strat-bayut-prod-fec/09d7f4d0"},"hitsPerPage":{"type":"number","minimum":1,"maximum":1000,"title":"Results per request","default":250},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":250}}}}},"example":{"input":{"emirates":["dubai"],"purposes":["for-sale","for-rent"],"categories":["residential","commercial"],"maxListings":10000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubai-brokerage-intel/runs":{"post":{"operationId":"run_dubai_brokerage_intel","summary":"Run Dubai Brokerage & Agent Intelligence","description":"Market share and recruiting intelligence for Dubai real-estate brokerages: per brokerage (DLD office ORN joined to Property Finder and Bayut ORNs) the active portal listings by purpose and segment, DLD-registered vs portal agents, SuperAgent and TruBroker counts and closed deals; per brokerage and community the listing share and rank; and per agent (BRN) the licence, office, listings and closed deals.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows","description":"Stop after this many output rows (for a quick sample)."}}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-buildings/runs":{"post":{"operationId":"run_dld_buildings","summary":"Run Dubai Building Register (DLD)","description":"Buildings and villas entered in the Dubai Land Department register — building number, land number, parcel, area, zone, project and master project, property sub-type, floors, rooms, car parks, built-up, plot and common areas, shops, flats, offices, pools and elevators, freehold, leasehold and off-plan flags and creation date. DLD publishes the current year; the dataset keeps every earlier year it has seen.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"pageSize":5000,"maxItems":20000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-rent-contracts/runs":{"post":{"operationId":"run_dld_rent_contracts","summary":"Run Dubai Ejari Rent Contracts","description":"Every rent contract registered in Ejari with the Dubai Land Department — registration, start and end dates, new or renewed, area, project, property type and sub-type, usage, rooms, size, contract and annual amount, rent per sqm, freehold flag and the nearest metro, mall and landmark.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"fromDate":{"type":"string","maxLength":2000,"title":"From date","description":"YYYY-MM-DD. Empty: January 1 on the first run, then the last lookback days. DLD only serves the current calendar year.","examples":["2026-01-01"]},"toDate":{"type":"string","maxLength":2000,"title":"To date","description":"YYYY-MM-DD. Empty: today (Dubai time).","examples":["2026-12-31"]},"lookbackDays":{"type":"number","minimum":1,"maximum":366,"title":"Lookback days on incremental runs","description":"Re-reads this many days back so late registrations and corrections are picked up.","default":45},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Days fetched in parallel","default":3},"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"fromDate":"2026-01-01","toDate":"2026-12-31","lookbackDays":45,"concurrency":3}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-transactions/runs":{"post":{"operationId":"run_dld_transactions","summary":"Run Dubai Land Department Transactions","description":"Every property transaction registered with the Dubai Land Department — sales, off-plan pre-registrations, mortgages and gifts — with date, procedure, area, project, property type and sub-type, usage, size, rooms, parking, price, price per sqm, off-plan or ready, freehold flag and the nearest metro, mall and landmark.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"fromDate":{"type":"string","maxLength":2000,"title":"From date","description":"YYYY-MM-DD. Empty: January 1 on the first run, then the last lookback days. DLD only serves the current calendar year.","examples":["2026-01-01"]},"toDate":{"type":"string","maxLength":2000,"title":"To date","description":"YYYY-MM-DD. Empty: today (Dubai time).","examples":["2026-12-31"]},"lookbackDays":{"type":"number","minimum":1,"maximum":366,"title":"Lookback days on incremental runs","description":"Re-reads this many days back so late registrations and corrections are picked up.","default":45},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Days fetched in parallel","default":3},"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"fromDate":"2026-01-01","toDate":"2026-12-31","lookbackDays":45,"concurrency":3}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-lands/runs":{"post":{"operationId":"run_dld_lands","summary":"Run Dubai Land Registry (DLD)","description":"The Dubai Land Department land register — every land parcel with land number and sub-number, parcel id, municipality number, area, zone, land type, property sub-type, size, project and master project, freehold and registration flags, pre-registration number and the parcel it was separated from.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"pageSize":5000,"maxItems":20000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-brokers/runs":{"post":{"operationId":"run_dld_brokers","summary":"Run Dubai Licensed Real Estate Brokers (DLD)","description":"Every real estate broker card registered with the Dubai Land Department — broker registration number (BRN), name in English and Arabic, gender, licence start and end dates, active flag and the brokerage office (ORN and name) the card is attached to.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"pageSize":5000,"maxItems":20000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-broker-offices/runs":{"post":{"operationId":"run_dld_broker_offices","summary":"Run Dubai Licensed Real Estate Offices (DLD)","description":"Every real estate brokerage office licensed by the Dubai Land Department — office registration number (ORN), trade licence number, name in English and Arabic, licence issue and expiry dates, active flag, DLD classification rank, awards, licensed activities, office phone, website and social links.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"pageSize":5000,"maxItems":20000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubai-offplan-projects/runs":{"post":{"operationId":"run_dubai_offplan_projects","summary":"Run Dubai Off-Plan Projects","description":"Off-plan and new-launch residential projects in Dubai and the UAE, read from the official sites of Emaar, DAMAC, Sobha, Nakheel, Meraas, Binghatti, Ellington, Danube, Azizi, Omniyat, Select Group and Aldar: launch and handover dates, status, unit types with sizes and starting prices, payment plans, brochures and location.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"developers":{"type":"array","items":{"type":"string","enum":["damac","emaar","azizi","sobha","aldar","ellington","danube","nakheel","meraas","binghatti","omniyat","select-group"]},"uniqueItems":true,"title":"Developers","description":"Each developer is read from its own official website.","default":["damac","emaar","azizi","sobha","aldar","ellington","danube","nakheel","meraas","binghatti","omniyat","select-group"]},"maxProjectsPerDeveloper":{"type":"number","minimum":1,"maximum":1000,"title":"Max projects per developer","default":1000},"fetchDetails":{"type":"boolean","title":"Open each project page","description":"Project pages carry unit types, prices, payment plans and brochures. Off reads listing pages only.","default":true},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":400}}}}},"example":{"input":{"developers":["damac","emaar","azizi","sobha","aldar","ellington","danube","nakheel","meraas","binghatti","omniyat","select-group"],"maxProjectsPerDeveloper":1000,"fetchDetails":true,"requestDelayMs":400}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubai-offplan-sellthrough/runs":{"post":{"operationId":"run_dubai_offplan_sellthrough","summary":"Run Dubai Off-Plan Sell-Through","description":"Per Dubai off-plan project: units sold this year from DLD off-plan sale registrations, median price per sqft paid against the developer starting price, monthly sales velocity, DLD completion percentage, escrow bank, expected completion and developer handover dates, total units and unit mix from the DLD project register, joined to the developer-site project catalogue.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows","description":"Stop after this many output rows (for a quick sample)."}}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-developers/runs":{"post":{"operationId":"run_dld_developers","summary":"Run Dubai Real Estate Developers (DLD)","description":"Every real estate developer registered with the Dubai Land Department — developer number, name in English and Arabic, DLD rating, website and logo, with project counts (total, active, finished, cancelled), average completion of active projects and the project numbers they own.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"pageSize":{"type":"number","minimum":100,"maximum":5000,"title":"Rows per request","default":5000},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"pageSize":5000,"maxItems":20000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dld-projects/runs":{"post":{"operationId":"run_dld_projects","summary":"Run Dubai Real Estate Projects (DLD)","description":"Every real estate project registered with the Dubai Land Department — project number and name, developer, status, completion percentage, registration, start, planned end and completion dates, escrow bank and account, project value, total area and units, unit mix by usage and bedrooms, buildings and land plots, location and the latest site inspection.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Project detail requests in parallel","default":4},"maxItems":{"type":"number","minimum":1,"maximum":20000000,"title":"Max rows per run","default":20000000}}}}},"example":{"input":{"concurrency":4,"maxItems":20000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubai-rent-renewals/runs":{"post":{"operationId":"run_dubai_rent_renewals","summary":"Run Dubai Rent Renewals Radar","description":"Landlord and tenant prospecting radar built from DLD Ejari rent contracts: per building/project and per area, the contracts ending in the next 30/60/90 days, contracts that just ended, renewed vs new share, median annual rent by room count, and the current asking rents for the same building from Property Finder, Dubizzle and Bayut.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows","description":"Stop after this many output rows (for a quick sample)."}}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubai-listings-unified/runs":{"post":{"operationId":"run_dubai_listings_unified","summary":"Run Dubai Unified Property Listings","description":"One row per real-world Dubai unit for sale or rent, deduplicated across Property Finder, Dubizzle and Bayut: every portal listing id and url, how many agents and agencies advertise it, min/max/median asking price, owner-direct flag, first and last seen, days on market, price history and price-drop events from daily snapshots, delisting, and DLD comps for the same building or area (12-month sales count and median price per sqm, Ejari median annual rent per sqm for the same room count, asking-vs-DLD gap).\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows","description":"Stop after this many output rows (for a quick sample)."},"sourceSnapshots":{"type":"number","minimum":1,"maximum":60,"title":"Source snapshots","description":"How many of the newest listing snapshots to read for history and delisting.","default":30},"compsMonths":{"type":"number","minimum":1,"maximum":36,"title":"DLD comps window (months)","default":12}}}}},"example":{"input":{"sourceSnapshots":30,"compsMonths":12}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubizzle-property/runs":{"post":{"operationId":"run_dubizzle_property","summary":"Run Dubizzle UAE Property Listings","description":"Every Dubizzle UAE property listing for sale and for rent — residential, commercial, land, rooms and short-term — with price, size, bedrooms, bathrooms, community and building, coordinates, furnishing, completion status, posting dates, and whether the listing comes from an agency or directly from the owner or landlord, with the agency and agent names for agency listings.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"emirates":{"type":"array","items":{"type":"string","enum":["dubai","abu-dhabi","sharjah","ajman","ras-al-khaimah","fujairah","umm-al-quwain","al-ain"]},"uniqueItems":true,"title":"Emirates","description":"The scheduled crawl runs one emirate per run: Dubai, Abu Dhabi, then Sharjah.","default":["dubai"]},"purposes":{"type":"array","items":{"type":"string","enum":["sale","rent"]},"uniqueItems":true,"title":"Purpose","default":["sale","rent"]},"categories":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Property categories","description":"Narrow to Dubizzle property category paths or category page URLs. Leave empty for every residential, commercial, land, room and short-term category.","default":[],"examples":["property-for-rent/residential, property-for-sale/commercial/office"]},"maxListings":{"type":"number","minimum":1,"maximum":5000000,"title":"Max listings per run","default":5000000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":200}}}}},"example":{"input":{"emirates":["dubai"],"purposes":["sale","rent"],"categories":["property-for-rent/residential","property-for-sale/commercial/office"],"maxListings":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/edgeprop-sg-listings/runs":{"post":{"operationId":"run_edgeprop_sg_listings","summary":"Run EdgeProp Singapore Listings","description":"Every EdgeProp.sg sale and rental listing across Singapore — HDB, condo, landed, commercial and industrial — with project, block, district, coordinates, asking price, psf, size, rooms, tenure, EdgeProp fair-value discount, and the listing agent with CEA registration number and agency.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"purposes":{"type":"array","items":{"type":"string","enum":["sale","rent"]},"uniqueItems":true,"title":"Listing types","description":"Each type is crawled exhaustively by splitting the asking-price range until every slice fits on one result page.","default":["sale","rent"]},"maxListings":{"type":"number","minimum":1,"maximum":500000,"title":"Max listings per run","default":200000},"geocode":{"type":"boolean","title":"Add coordinates","description":"EdgeProp result cards carry a postal code but no coordinates; this resolves each postal code once through OneMap, reusing coordinates already stored by earlier runs.","default":true},"concurrency":{"type":"number","minimum":1,"maximum":16,"title":"Parallel requests","default":8},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests per worker (ms)","default":250},"tor":{"type":"boolean","title":"Route through Tor","description":"EdgeProp refuses datacenter and VPN ranges outright. On by default whenever Tor is configured; each request takes a fresh circuit.","default":true}}}}},"example":{"input":{"purposes":["sale","rent"],"maxListings":200000,"geocode":true,"concurrency":8}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/infocasas-uruguay-listings/runs":{"post":{"operationId":"run_infocasas_uruguay_listings","summary":"Run InfoCasas Uruguay Property Listings","description":"Uruguayan property search with prices, areas, bedrooms, location and advertiser from InfoCasas searchFast data.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"location":{"type":"string","maxLength":2000,"title":"Location slug","default":"montevideo"},"operation":{"type":"string","enum":["venta","alquiler"],"title":"Operation","default":"venta"},"propertyType":{"type":"string","enum":["inmuebles","apartamentos","casas","terrenos"],"title":"Property type","default":"inmuebles"},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum listings","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":3}}}}},"example":{"input":{"location":"montevideo","operation":"venta","propertyType":"inmuebles","maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/king-county-recorder/runs":{"post":{"operationId":"run_king_county_recorder","summary":"Run King County Recorder","description":"King County (WA) recorded documents — trustee-sale notices, deeds and deeds of trust — by record date or party.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"searchMode":{"type":"string","enum":["recordDate","name"],"title":"Search by","description":"A date sweep needs no name and is what a scheduled run wants. Name search falls back to a date sweep if no name is given.","default":"recordDate"},"name":{"type":"string","maxLength":2000,"title":"Party name","examples":["Last name, First name"]},"documentTypes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Document types","description":"Codes or numeric ids; resolved against the catalogue the portal publishes. Common: NTS, ANTS, DT, D, LP. Empty means every type.","default":["NTS"],"examples":["NTS, DT"]},"beginDate":{"type":"string","maxLength":2000,"title":"Recorded from (MM/DD/YYYY)","description":"Overrides the lookback window."},"endDate":{"type":"string","maxLength":2000,"title":"Recorded to (MM/DD/YYYY)","description":"Defaults to today."},"lookbackDays":{"type":"number","minimum":1,"maximum":3650,"title":"Lookback (days)","default":7},"nameMatchType":{"type":"number","minimum":0,"maximum":2,"title":"Name match","description":"The portal's own numbering: 0 starts with, 1 contains, 2 equals.","default":0},"partyType":{"type":"number","minimum":0,"maximum":2,"title":"Party type","description":"0 both, 1 grantor, 2 grantee.","default":0},"recordCount":{"type":"number","minimum":0,"maximum":10000,"title":"Records requested","description":"0 asks the portal for its own default cap.","default":0},"maxPages":{"type":"number","minimum":1,"maximum":200,"title":"Max result pages","default":10},"maxRecords":{"type":"number","minimum":1,"maximum":200000,"title":"Max records per run","default":5000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":2000},"captchaTimeoutMs":{"type":"number","minimum":10000,"maximum":600000,"title":"Captcha solve timeout (ms)","description":"A reCAPTCHA v2 image challenge typically takes 15-60s at 2Captcha.","default":180000},"twoCaptchaApiKey":{"type":"string","maxLength":2000,"title":"2Captcha API key override","description":"Defaults to TWO_CAPTCHA_API_KEY. Prefer the environment variable; run options are stored in plain text on the config row."}}}}},"example":{"input":{"searchMode":"recordDate","name":"Last name, First name","documentTypes":["NTS"],"lookbackDays":7}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/kitsap-recorder/runs":{"post":{"operationId":"run_kitsap_recorder","summary":"Run Kitsap County Recorder","description":"Kitsap County (WA) recorded documents, by date range or party name.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"startDate":{"type":"string","maxLength":2000,"title":"Recorded from (MM/DD/YYYY)","description":"Overrides the lookback window.","examples":["01/01/2026"]},"endDate":{"type":"string","maxLength":2000,"title":"Recorded to (MM/DD/YYYY)","description":"Defaults to today.","examples":["01/31/2026"]},"lookbackDays":{"type":"number","minimum":1,"maximum":3650,"title":"Lookback (days)","description":"Used when no explicit start date is set. A daily run wants a few days of overlap — the county backdates recordings.","default":7},"grantorName":{"type":"string","maxLength":2000,"title":"Grantor name","description":"Left blank, the search is by date alone."},"granteeName":{"type":"string","maxLength":2000,"title":"Grantee name"},"bothNames":{"type":"string","maxLength":2000,"title":"Either party","description":"Matches a name appearing as grantor or grantee."},"documentNumber":{"type":"string","maxLength":2000,"title":"Recording number","description":"Looks up one document. The date window still applies unless it is cleared."},"parcelId":{"type":"string","maxLength":2000,"title":"Parcel ID"},"maxPages":{"type":"number","minimum":1,"maximum":500,"title":"Max result pages","description":"Each page is one request against a county server. A wide date range with this set low silently truncates — the shortfall is reported as a warning.","default":20},"maxRecords":{"type":"number","minimum":1,"maximum":200000,"title":"Max records per run","default":5000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"This is a small county server. The default is deliberately unhurried.","default":1500},"docTypeTotal":{"type":"number","minimum":1,"maximum":10000,"title":"Document type count","description":"EagleWeb posts the number of document types its form offered. Only change this if an all-types search starts returning nothing.","default":528}}}}},"example":{"input":{"startDate":"01/01/2026","endDate":"01/31/2026","lookbackDays":7,"maxPages":20}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/missouri-public-notices/runs":{"post":{"operationId":"run_missouri_public_notices","summary":"Run Missouri Public Notices","description":"Missouri newspaper legal notices — trustee's sales, foreclosure and tax sales, probate and hearing notices.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"keywords":{"type":"string","maxLength":2000,"title":"Keywords","description":"Posted into the portal's own search box — this is the only narrowing the server does. Clear it to sweep every notice type.","default":"foreclosure trustee","examples":["foreclosure trustee"]},"keywordMode":{"type":"string","enum":["OR","AND","EXACT"],"title":"Keyword mode","description":"The default list needs \"any\": a HUD foreclosure notice and a bank trustee sale share no single word.","default":"OR"},"excludeKeywords":{"type":"string","maxLength":2000,"title":"Exclude keywords","description":"Notices containing these are dropped by the portal before they are counted against the 1,000-result cap."},"counties":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Counties","description":"Spelled as the site does (\"Buchanan\", not \"Buchanan County\"). One search per county, and the only way to get a county onto a row — a statewide search leaves the column blank. Leave empty and set \"Sweep every county\" to cover all of them.","examples":["Buchanan, Greene, Jackson"]},"sweepCounties":{"type":"boolean","title":"Sweep every county","description":"One search per county, over all 116 the form offers. The only way to fill county and city on a statewide sweep, and it costs roughly a hundred extra searches.","default":false},"fromDate":{"type":"string","maxLength":2000,"title":"Published from (M/D/YYYY)","description":"Set with a to-date to use the portal's explicit range instead of the lookback.","examples":["8/1/2026"]},"toDate":{"type":"string","maxLength":2000,"title":"Published to (M/D/YYYY)"},"lookbackDays":{"type":"number","minimum":1,"maximum":3650,"title":"Lookback (days)","description":"Used when no explicit range is set. Papers post late, so a daily run wants overlap.","default":30},"autoSplit":{"type":"boolean","title":"Split searches past the result cap","description":"The portal never returns more than 1,000 notices for one search. With this on, a search that fills the cap is re-run a day at a time, and a capped single day is re-run county by county, until the window fits.","default":true},"maxSearches":{"type":"number","minimum":1,"maximum":5000,"title":"Max searches per run","description":"A ceiling on what auto-splitting may spend. Reaching it raises a warning naming the windows that went unsearched.","default":400},"noticeCategories":{"type":"array","items":{"type":"string","enum":["foreclosure","tax-sale","probate","hearing","bids","ordinance","name-change","storage-lien"]},"uniqueItems":true,"title":"Notice categories","description":"Applied after parsing — the portal has no type facet, so it can only discard rows the keyword search already returned, never widen it. Matched against every category a notice fits, not just the first.","default":[]},"resultsPerPage":{"type":"number","minimum":5,"maximum":50,"title":"Results per page","description":"Snapped to one of the grid's own sizes (5, 10, 15, 20, 25, 30, 50). 50 costs one extra postback and saves four in five page fetches.","default":50},"sortOrder":{"type":"string","enum":["DatePublishedDate DESC","DatePublishedDate ASC","Rank DESC","PaperName ASC","PaperName DESC","CityName ASC","CityName DESC","CountyName ASC","CountyName DESC"],"title":"Sort order","default":"DatePublishedDate DESC"},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Max pages per search","description":"The portal caps a result set at 1,000 notices however they are paged, so 20 pages of 50 is the whole of what any one search can yield. Auto-splitting is what gets past that, not this.","default":20},"maxRecords":{"type":"number","minimum":1,"maximum":500000,"title":"Max records per run","default":50000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Every page is a full WebForms postback carrying a ~90 KB viewstate. The default is deliberately unhurried.","default":1500}}}}},"example":{"input":{"keywords":"foreclosure trustee","keywordMode":"OR","counties":["Buchanan","Greene","Jackson"],"sweepCounties":false}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/otodom-listings/runs":{"post":{"operationId":"run_otodom_listings","summary":"Run Otodom Poland Property Listings","description":"Polish listing search with prices, property types, room counts and agency details from Otodom search hydration.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"location":{"type":"string","maxLength":2000,"title":"Otodom location path","default":"mazowieckie/warszawa/warszawa/warszawa"},"transaction":{"type":"string","enum":["sprzedaz","wynajem"],"title":"Transaction","default":"sprzedaz"},"propertyType":{"type":"string","enum":["mieszkanie","dom","dzialka"],"title":"Property type","default":"mieszkanie"},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum listings","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":3}}}}},"example":{"input":{"location":"mazowieckie/warszawa/warszawa/warszawa","transaction":"sprzedaz","propertyType":"mieszkanie","maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ottawa-parcels/runs":{"post":{"operationId":"run_ottawa_parcels","summary":"Run Ottawa Property Parcels","description":"City of Ottawa land parcels — boundaries, addresses and Ontario PINs.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"bbox":{"type":"string","maxLength":2000,"title":"Bounding box (WGS84)","description":"west,south,east,north in decimal degrees. Empty queries the whole city (~336,000 parcels).","examples":["-75.72,45.38,-75.70,45.40"]},"roadName":{"type":"string","maxLength":2000,"title":"Road name","description":"Matches FULL_ROADNAME_EN exactly, as the layer spells it ('Ave', not 'Avenue').","examples":["Athlone Ave"]},"pin":{"type":"string","maxLength":2000,"title":"PIN","description":"Ontario Property Identification Number. Collects a single parcel's record.","examples":["040150087"]},"where":{"type":"string","maxLength":2000,"title":"SQL where clause","description":"Passed to ArcGIS as written, ANDed with the filters above.","default":"1=1"},"layerId":{"type":"string","enum":["3","0","2","4"],"title":"Layer","description":"Only the parcel layer maps onto named columns; other layers land in `attributes`.","default":"3"},"includeGeometry":{"type":"boolean","title":"Collect parcel boundaries","description":"Boundary rings and a derived centroid. Turning this off makes pages far smaller.","default":true},"maxRecords":{"type":"number","minimum":1,"maximum":500000,"title":"Max parcels per run","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":10000},"pageSize":{"type":"number","minimum":1,"maximum":1000,"title":"Page size","description":"The layer caps a page at 1000 regardless of what is asked for.","default":1000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":250}}}}},"example":{"input":{"bbox":"-75.72,45.38,-75.70,45.40","roadName":"Athlone Ave","pin":"040150087","where":"1=1"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/properati-colombia-listings/runs":{"post":{"operationId":"run_properati_colombia_listings","summary":"Run Properati Colombia Property Listings","description":"Colombian property listing cards with prices, rooms, area, location and advertiser from Properati search pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"location":{"type":"string","maxLength":2000,"title":"Properati location slug","default":"bogota-d-c-colombia"},"operation":{"type":"string","enum":["venta","arriendo"],"title":"Operation","default":"venta"},"propertyType":{"type":"string","enum":["apartamento","casa","lote"],"title":"Property type","default":"apartamento"},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum listings","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":3}}}}},"example":{"input":{"location":"bogota-d-c-colombia","operation":"venta","propertyType":"apartamento","maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/propertyfinder-agents/runs":{"post":{"operationId":"run_propertyfinder_agents","summary":"Run Property Finder UAE Agents & Brokerages","description":"The Property Finder UAE agent and brokerage directory (Dubai by default): agent name, RERA BRN, brokerage, nationality, languages, SuperAgent and verified flags, live listing counts by sale/rent and residential/commercial, closed deals and deal volume shown on the profile, ratings and reviews; brokerages with ORN licence, listing counts, agent and SuperAgent counts and branches. No personal phone numbers or emails.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"locationId":{"type":"string","enum":["all","1","6","4","5","3","2","7","8"],"title":"Emirate","default":"1"},"includeAgents":{"type":"boolean","title":"Agents","default":true},"includeBrokerages":{"type":"boolean","title":"Brokerages","default":true},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel requests","default":3}}}}},"example":{"input":{"locationId":"1","includeAgents":true,"includeBrokerages":true,"concurrency":3}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/propertyfinder-listings/runs":{"post":{"operationId":"run_propertyfinder_listings","summary":"Run Property Finder UAE Listings","description":"Every residential and commercial listing for sale and rent on Property Finder UAE (Dubai by default, other emirates on request): price and rent period, off-plan or ready, property type, size, beds and baths, furnishing, amenities, the full community / sub-community / tower location tree with coordinates, listed and refreshed dates, verified and price-drop flags, photo count, agent and brokerage, and the DLD Trakheesi permit number, agent BRN and broker ORN. Snapshotted daily so price changes and delistings can be derived across runs.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"locationIds":{"type":"array","items":{"type":"string","enum":["1","6","4","5","3","2","7","8"]},"uniqueItems":true,"title":"Emirates","description":"Property Finder location ids to crawl. Any location id from the site (community, tower) also works.","default":["1"]},"segments":{"type":"array","items":{"type":"string","enum":["residential-sale","residential-rent","commercial-sale","commercial-rent"]},"uniqueItems":true,"title":"Segments","default":["residential-sale","residential-rent","commercial-sale","commercial-rent"]},"detailFetchLimit":{"type":"number","minimum":0,"maximum":500000,"title":"Listing detail pages per run","description":"Permit (Trakheesi) number, agent BRN and broker ORN are only on the listing page. They never change for a listing, so each is fetched once and cached; this caps how many new ones a run fetches.","default":10000},"concurrency":{"type":"number","minimum":1,"maximum":12,"title":"Parallel requests","default":4},"maxListings":{"type":"number","minimum":1,"maximum":2000000,"title":"Max listings per run","default":2000000}}}}},"example":{"input":{"locationIds":["1"],"segments":["residential-sale","residential-rent","commercial-sale","commercial-rent"],"detailFetchLimit":10000,"concurrency":4}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/propertyguru-agents/runs":{"post":{"operationId":"run_propertyguru_agents","summary":"Run PropertyGuru Singapore Agent Directory","description":"Every agent in the PropertyGuru Singapore directory with CEA registration, agency and agency licence, listing counts, median listing price and psf, ratings, specialities, regions served and three-year transaction mix. No personal phone numbers or emails.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxAgents":{"type":"number","minimum":1,"maximum":50000,"title":"Maximum agents","default":50000},"fetchProfiles":{"type":"boolean","title":"Open each agent profile for agency licence, specialities, regions and transaction mix","description":"Profiles are cached for profileMaxAgeDays, so coverage grows run over run within the per-run cap.","default":true},"maxProfiles":{"type":"number","minimum":0,"maximum":50000,"title":"Maximum profiles to open this run","default":1500},"profileMaxAgeDays":{"type":"number","minimum":1,"maximum":365,"title":"Re-open a profile after this many days","default":30},"directoryIntervalMs":{"type":"number","minimum":0,"maximum":60000,"title":"Minimum milliseconds between directory pages","default":1500},"profileIntervalMs":{"type":"number","minimum":0,"maximum":60000,"title":"Minimum milliseconds between profile pages","default":2500},"concurrency":{"type":"number","minimum":1,"maximum":6,"title":"Parallel page fetches inside the browser","default":2},"requestsPerContext":{"type":"number","minimum":50,"maximum":20000,"title":"Requests before recycling the browser context","default":1500}}}}},"example":{"input":{"maxAgents":50000,"fetchProfiles":true,"maxProfiles":1500,"profileMaxAgeDays":30}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/propertyguru-listings/runs":{"post":{"operationId":"run_propertyguru_listings","summary":"Run PropertyGuru Singapore Listings","description":"Every PropertyGuru Singapore sale and rent listing — HDB, condo, EC, landed and rooms — with price, psf, size, beds, tenure, TOP year, district, postal code, coordinates, floor level, furnishing, and the listing agent’s CEA registration with the agency’s licence.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"listingTypes":{"type":"array","items":{"type":"string","enum":["sale","rent"]},"uniqueItems":true,"title":"Listing types","default":["sale","rent"]},"maxListings":{"type":"number","minimum":1,"maximum":200000,"title":"Maximum listings","default":200000},"concurrency":{"type":"number","minimum":1,"maximum":6,"title":"Parallel page fetches inside the browser","default":2},"searchIntervalMs":{"type":"number","minimum":0,"maximum":60000,"title":"Minimum milliseconds between search pages","description":"PropertyGuru rate-limits by IP; bursts get the whole site challenged for ten minutes or more.","default":3000},"mapCoordinates":{"type":"boolean","title":"Take coordinates from the open map-cluster API","default":true},"agencyLicences":{"type":"boolean","title":"Resolve each agency licence from one agent profile (cached 30 days)","default":true},"fetchDetails":{"type":"boolean","title":"Open listing pages for postal code, coordinates, floor level, furnishing and agency licence","description":"Listing pages are rate-limited much harder than search pages, so they are paced and capped per run; details are cached per listing and coverage grows run over run.","default":true},"maxDetails":{"type":"number","minimum":0,"maximum":200000,"title":"Maximum listing pages to open this run","default":500},"detailIntervalMs":{"type":"number","minimum":0,"maximum":300000,"title":"Minimum milliseconds between listing pages","default":15000},"detailMaxAgeDays":{"type":"number","minimum":1,"maximum":365,"title":"Re-open a listing page after this many days","default":30},"requestsPerContext":{"type":"number","minimum":50,"maximum":20000,"title":"Requests before recycling the browser context","default":1500}}}}},"example":{"input":{"listingTypes":["sale","rent"],"maxListings":200000,"concurrency":2,"searchIntervalMs":3000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/realtor-agents/runs":{"post":{"operationId":"run_realtor_agents","summary":"Run Realtor.com Agent Directory","description":"US real estate agent profiles by ZIP code — brokerage, licences, contact details and transaction volume.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"postalCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"ZIP codes","description":"One search per code. The endpoint searches by postal code only.","default":["78702"],"examples":["78702, 78704"]},"types":{"type":"string","enum":["agent","office","team"],"title":"Result type","description":"Offices and teams are organisations rather than people, and carry far fewer fields.","default":"agent"},"sort":{"type":"string","enum":["recent_activity_high","agent_rating_high","recommendations_count_high","for_sale_price_high","for_sale_price_low","recently_sold_high","review_count_high"],"title":"Sort order","description":"Only matters when a ceiling stops the sweep early — it decides which agents you keep.","default":"recent_activity_high"},"name":{"type":"string","maxLength":2000,"title":"Name contains","description":"Applied by realtor.com's own search, not locally."},"requireContact":{"type":"boolean","title":"Require an email or phone","description":"Drops profiles with no published contact details.","default":false},"narOnly":{"type":"boolean","title":"NAR members only","description":"Only licensed REALTORS. The site sends this on by default.","default":true},"photoOnly":{"type":"boolean","title":"Profiles with a photo only","default":true},"agentRatingMin":{"type":"number","minimum":0,"maximum":5,"title":"Minimum rating"},"recommendationsCountMin":{"type":"number","minimum":0,"maximum":1000,"title":"Minimum recommendations"},"languages":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Languages","default":[],"examples":["es, zh"]},"agentType":{"type":"string","maxLength":2000,"title":"Agent type","description":"`buyer` or `seller`. Empty means both.","examples":["buyer"]},"priceMin":{"type":"number","minimum":0,"title":"Minimum transaction price"},"priceMax":{"type":"number","minimum":0,"title":"Maximum transaction price"},"designations":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Designations","default":[],"examples":["ABR, CRS"]},"maxAgentsPerPostalCode":{"type":"number","minimum":1,"maximum":10000,"title":"Max agents per ZIP","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":500},"pageSize":{"type":"number","minimum":1,"maximum":50,"title":"Page size","default":20},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"realtor.com rate-limits aggressively per address. Lowering this earns 429s.","default":1500},"jwtSecret":{"type":"string","maxLength":2000,"title":"Token signing secret","description":"The secret realtor.com's own frontend signs its request token with. Set this if they rotate it.","default":"17ad51b0-08c3-4263-a711-d94477ad7ea3"}}}}},"example":{"input":{"postalCodes":["78702"],"types":"agent","sort":"recent_activity_high","requireContact":false}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sarpy-parcels/runs":{"post":{"operationId":"run_sarpy_parcels","summary":"Run Sarpy County Parcel Sales","description":"Sarpy County (NE) parcel sales, with sale price alongside the county's assessed value.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"saleDateStart":{"type":"string","maxLength":2000,"title":"Sold from (MM/DD/YYYY)","description":"Overrides the lookback window.","examples":["01/01/2026"]},"saleDateEnd":{"type":"string","maxLength":2000,"title":"Sold to (MM/DD/YYYY)","description":"Defaults to today."},"lookbackDays":{"type":"number","minimum":1,"maximum":3650,"title":"Lookback (days)","description":"Used when no explicit start date is set. Sales are recorded with a lag, so a daily run wants overlap.","default":30},"minSalePrice":{"type":"number","minimum":0,"maximum":100000000,"title":"Minimum sale price","description":"Blank means no floor. Leaving it blank also returns $0 transfers — quitclaims and family conveyances.","examples":["250000"]},"maxSalePrice":{"type":"number","minimum":0,"maximum":100000000,"title":"Maximum sale price"},"taxYear":{"type":"string","maxLength":2000,"title":"Tax year","description":"Assessment year the values come from. Defaults to the current calendar year."},"recordsPerPage":{"type":"number","minimum":1,"maximum":500,"title":"Records per page","description":"The portal's own dropdown offers 20, 50, 100, 200.","default":200},"maxPages":{"type":"number","minimum":1,"maximum":500,"title":"Max result pages","description":"Each page is a full WebForms postback. Truncation is reported as a warning.","default":20},"maxRecords":{"type":"number","minimum":1,"maximum":200000,"title":"Max records per run","default":5000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":2000}}}}},"example":{"input":{"saleDateStart":"01/01/2026","lookbackDays":30,"recordsPerPage":200,"maxPages":20}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-cea-transactions/runs":{"post":{"operationId":"run_sg_cea_transactions","summary":"Run Singapore CEA Agent Transaction Records","description":"Every residential deal closed by a CEA-registered salesperson since January 2017 — salesperson name and registration number, month, property type (HDB, condo, EC, landed), sale or rental, which party the agent represented, and the HDB town or private postal district.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"datasetIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Only these data.gov.sg datasets","description":"Empty pulls data.gov.sg collection 55 (CEA Salespersons' Property Transaction Records, residential, Jan 2017 onwards).","default":[],"examples":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"]},"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"datasetIds":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"],"maxItems":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-cea-salespersons/runs":{"post":{"operationId":"run_sg_cea_salespersons","summary":"Run Singapore CEA Salesperson Register","description":"The Council for Estate Agencies public register of property salespersons — name, CEA registration number, registration period and active status, and the estate agency (name and licence number) each salesperson is registered under.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"datasetIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Only these data.gov.sg datasets","description":"Empty pulls data.gov.sg collection 54 (CEA Salesperson Information, the public register).","default":[],"examples":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"]},"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"datasetIds":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"],"maxItems":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-enbloc-tracker/runs":{"post":{"operationId":"run_sg_enbloc_tracker","summary":"Run Singapore En Bloc (Collective Sale) Tracker","description":"Every Singapore collective sale reported by The Business Times, EdgeProp and The Edge Singapore — development, address, district, tenure, site area, plot ratio, reserve or guide price, psf ppr, tender closing date, status (launched, relaunched, closed without award, private treaty, sold, aborted), awarded buyer and price, marketing agent and the source article.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"sources":{"type":"array","items":{"type":"string","enum":["business-times","edgeprop","the-edge-singapore"]},"uniqueItems":true,"title":"Sources","description":"Business Times articles are read in full. EdgeProp and The Edge Singapore wall their article pages behind Cloudflare, so their en bloc coverage is indexed from headlines through Google News.","default":["business-times","edgeprop","the-edge-singapore"]},"sinceYear":{"type":"number","minimum":2014,"maximum":2100,"title":"Earliest year","description":"Articles published before this year are skipped. The default reaches back through the 2017-2018 en bloc wave.","default":2014},"maxArticles":{"type":"number","minimum":1,"maximum":20000,"title":"Max articles per run","default":5000},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Parallel article fetches","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests per worker (ms)","default":300}}}}},"example":{"input":{"sources":["business-times","edgeprop","the-edge-singapore"],"sinceYear":2014,"maxArticles":5000,"concurrency":4}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-hdb-blocks/runs":{"post":{"operationId":"run_sg_hdb_blocks","summary":"Run Singapore HDB Blocks & MOP Timeline","description":"Every HDB block in Singapore — block, street, town, max floor, year completed, residential/commercial/hawker/carpark flags and dwelling units by flat type (sold and rental) — with the Minimum Occupation Period year (completion + 5) and flags for blocks reaching MOP this year, next year or within two years.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"datasetIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Only these data.gov.sg datasets","description":"Empty pulls data.gov.sg collection 150 (HDB Property Information, dataset d_17f5382f26140b1fdae0ba2ef6239d2f).","default":[],"examples":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"]},"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"datasetIds":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"],"maxItems":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-hdb-rentals/runs":{"post":{"operationId":"run_sg_hdb_rentals","summary":"Run Singapore HDB Flat Rentals","description":"Every approved application to rent out a whole HDB flat since January 2021 — approval month, town, block, street, flat type and monthly rent.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"datasetIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Only these data.gov.sg datasets","description":"Empty pulls data.gov.sg collection 166 (Renting Out of Flats, approvals from Jan 2021).","default":[],"examples":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"]},"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"datasetIds":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"],"maxItems":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-hdb-resale/runs":{"post":{"operationId":"run_sg_hdb_resale","summary":"Run Singapore HDB Resale Flat Prices","description":"Every HDB resale flat transaction published by the Housing & Development Board since January 1990 — month, town, flat type, block and street, storey range, floor area, flat model, lease commencement year, remaining lease and resale price, with price per sqm.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"datasetIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Only these data.gov.sg datasets","description":"Empty pulls every dataset in data.gov.sg collection 189 (Resale Flat Prices, 1990 to now). Name dataset ids to refresh only some eras, e.g. d_8b84c4ee58e3cfc0ece0d773c8ca6abc for Jan-2017 onwards.","default":[],"examples":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"]},"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"datasetIds":["d_8b84c4ee58e3cfc0ece0d773c8ca6abc"],"maxItems":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-agent-leaderboards/runs":{"post":{"operationId":"run_sg_agent_leaderboards","summary":"Run Singapore Property Agent Leaderboards","description":"Leaderboards of every Singapore property salesperson and agency from CEA transaction records: deals in the last 12 and 36 months and all time, split by property type, transaction type and side represented, with town/district and national ranks, 12-month trend, current agency and registration dates from the CEA register (agency moves flagged), live listing counts on PropertyGuru, 99.co and EdgeProp, and agency market share per town.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"asOfMonth":{"type":"string","maxLength":2000,"title":"As-of month (YYYY-MM)","description":"Anchor for the 12/36-month windows. Empty picks the latest month whose source volume looks complete.","examples":["2026-07"]},"maxRows":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"asOfMonth":"2026-07","maxRows":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/srx-ninetynine-transactions/runs":{"post":{"operationId":"run_srx_ninetynine_transactions","summary":"Run Singapore Property Transactions (99.co / SRX)","description":"Historical sale and rental transactions for every Singapore condo project and every HDB town as published by the 99 Group (99.co / SRX) — month, project or block, floor band, size, bedrooms, price and psf, back to the mid-2000s for condos and 1990 for HDB.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"markets":{"type":"array","items":{"type":"string","enum":["condo","hdb"]},"uniqueItems":true,"title":"Markets","default":["condo","hdb"]},"transactionTypes":{"type":"array","items":{"type":"string","enum":["sale","rent"]},"uniqueItems":true,"title":"Transaction types","default":["sale","rent"]},"projects":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Only these condo projects (99.co slugs)","examples":["the-sail-at-marina-bay, d-leedon"]},"maxProjects":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum condo projects","default":10000},"maxRows":{"type":"number","minimum":1,"maximum":10000000,"title":"Maximum transactions","default":10000000},"concurrency":{"type":"number","minimum":1,"maximum":4,"title":"Parallel requests","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Minimum delay between requests (ms)","default":600}}}}},"example":{"input":{"markets":["condo","hdb"],"transactionTypes":["sale","rent"],"projects":["the-sail-at-marina-bay","d-leedon"],"maxProjects":10000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-seller-likelihood/runs":{"post":{"operationId":"run_sg_seller_likelihood","summary":"Run Singapore Seller Likelihood (Farming Map)","description":"A seller-likelihood farming map of Singapore: one row per HDB block (MOP timeline, resale turnover, price trend, live portal listings) and one row per private condo project (purchases past the Seller’s Stamp Duty holding period that have not resold, paper gain, resale turnover, listings, en bloc activity), each with a transparent 0-100 score.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"asOfMonth":{"type":"string","maxLength":2000,"title":"As-of month (YYYY-MM)","description":"Anchor for the 12/36-month windows. Empty picks the latest month whose source volume looks complete.","examples":["2026-07"]},"maxRows":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"asOfMonth":"2026-07","maxRows":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-listings-unified/runs":{"post":{"operationId":"run_sg_listings_unified","summary":"Run Singapore Unified Property Listings","description":"One row per real-world Singapore home on the market, deduplicated across PropertyGuru, 99.co and EdgeProp: every portal listing id and URL, number of portals and agents, min/median asking price and psf, first and last seen, and the asking-vs-comparables gap against HDB resale/rental medians for the same block and flat type or URA medians for the same condo project.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"asOfMonth":{"type":"string","maxLength":2000,"title":"As-of month (YYYY-MM)","description":"Anchor for the 12/36-month windows. Empty picks the latest month whose source volume looks complete.","examples":["2026-07"]},"maxRows":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000}}}}},"example":{"input":{"asOfMonth":"2026-07","maxRows":5000000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sg-ura-private/runs":{"post":{"operationId":"run_sg_ura_private","summary":"Run Singapore URA Private Residential Market","description":"Private residential property data from the Urban Redevelopment Authority — every caveated sale (project, street, postal district, market segment, price, area, $psf, sale type, tenure, floor range), every rental contract (rent, bedrooms, floor-area band, lease month), monthly developer sales by project and, with an API key, the pipeline of upcoming projects.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string","enum":["auto","api","web"],"title":"Source","description":"The API carries the pipeline dataset and SVY21 coordinates; the website needs no key and covers transactions, rentals and developer sales.","default":"auto"},"datasets":{"type":"array","items":{"type":"string","enum":["transaction","rental","developer_sale","pipeline"]},"uniqueItems":true,"title":"Datasets","default":["transaction","rental","developer_sale","pipeline"]},"rentalQuarters":{"type":"number","minimum":1,"maximum":40,"title":"Rental quarters to walk back (API)","default":20},"developerSalesMonths":{"type":"number","minimum":1,"maximum":360,"title":"Developer-sales months to walk back","description":"The website reaches back to January 2007; the API to about three years.","default":240},"maxItems":{"type":"number","minimum":1,"maximum":5000000,"title":"Max rows per run","default":5000000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":300}}}}},"example":{"input":{"source":"auto","datasets":["transaction","rental","developer_sale","pipeline"],"rentalQuarters":20,"developerSalesMonths":240}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/toctoc-chile-listings/runs":{"post":{"operationId":"run_toctoc_chile_listings","summary":"Run Toctoc Chile Property Listings","description":"Chilean listing search with UF or CLP prices, coordinates, areas, bedrooms and development details from Toctoc PropertyState.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"region":{"type":"string","maxLength":2000,"title":"Region slug","default":"metropolitana"},"commune":{"type":"string","maxLength":2000,"title":"Commune slug","default":"santiago"},"operation":{"type":"string","enum":["venta","arriendo"],"title":"Operation","default":"venta"},"propertyType":{"type":"string","enum":["departamento","casa"],"title":"Property type","default":"departamento"},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum listings","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":3}}}}},"example":{"input":{"region":"metropolitana","commune":"santiago","operation":"venta","propertyType":"departamento"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/virginia-land-records/runs":{"post":{"operationId":"run_virginia_land_records","summary":"Run Virginia Land Records","description":"Virginia recorded land instruments — liens, lis pendens, quitclaims and transfer-on-death deeds.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"fipsCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Locality FIPS codes","description":"One search per locality. 680 is Lynchburg City; every Virginia circuit court on SRA has its own code.","default":["680"],"examples":["680"]},"instrumentTypes":{"type":"array","items":{"type":"string","enum":["DPD","DTD","LM","MEML","NLP","DQC","OTHER"]},"uniqueItems":true,"title":"Instrument types","description":"The defaults are the distress-and-transfer set: liens, lis pendens, quitclaims, transfer-on-death.","default":["DPD","DTD","LM","MEML","NLP","OTHER","DQC"]},"fromDate":{"type":"string","maxLength":2000,"title":"Recorded from (MM/DD/YYYY)","description":"Overrides the lookback window.","examples":["01/01/2026"]},"toDate":{"type":"string","maxLength":2000,"title":"Recorded to (MM/DD/YYYY)","description":"Defaults to today."},"lookbackDays":{"type":"number","minimum":1,"maximum":3650,"title":"Lookback (days)","default":30},"name":{"type":"string","maxLength":2000,"title":"Party name","description":"The API's own wildcard is %, which is the default: search by date and type alone.","default":"%"},"maxPages":{"type":"number","minimum":1,"maximum":500,"title":"Max pages per locality","default":20},"maxRecords":{"type":"number","minimum":1,"maximum":200000,"title":"Max records per run","default":5000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","default":1000},"username":{"type":"string","maxLength":2000,"title":"SRA username","description":"Defaults to VA_SRA_USERNAME. An SRA subscription account is required — see the README."},"password":{"type":"string","maxLength":2000,"title":"SRA password","description":"Defaults to VA_SRA_PASSWORD. Prefer the environment variable; options are stored in plain text on the config row."}}}}},"example":{"input":{"fipsCodes":["680"],"instrumentTypes":["DPD","DTD","LM","MEML","NLP","OTHER","DQC"],"fromDate":"01/01/2026","lookbackDays":30}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/zillow/runs":{"post":{"operationId":"run_zillow","summary":"Run Zillow Property Listings","description":"Every Zillow for-sale, rental and sold listing across the US, state by state, optionally with the full MLS record.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"states":{"type":"array","items":{"type":"string","enum":["AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"]},"uniqueItems":true,"title":"States","description":"Each state is swept tile by tile until every listing is reached. Leave empty, with no locations either, to sweep all 50 states and DC.","default":[]},"locations":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Locations","description":"A city, ZIP or neighbourhood, as typed into Zillow's search box. Swept the same way as a state, in addition to any states picked.","default":[],"examples":["Austin, TX / 78702 / Cleveland, OH"]},"markets":{"type":"array","items":{"type":"string","enum":["forSale","forRent","sold"]},"uniqueItems":true,"title":"Markets","description":"Rental results include whole buildings, which carry a price range rather than one price.","default":["forSale","forRent","sold"]},"soldWithin":{"type":"string","enum":["7","30","90","6m","12m","24m","36m"],"title":"Sold within","description":"Applies to the sold market only. 36 months is everything Zillow keeps as sold — Michigan alone holds ~430k homes over that window; a weekly refresh only needs 7 or 30 days.","default":"36m"},"minPrice":{"type":"number","minimum":0,"title":"Minimum price"},"maxPrice":{"type":"number","minimum":0,"title":"Maximum price"},"minBeds":{"type":"number","minimum":0,"maximum":20,"title":"Minimum bedrooms"},"minBaths":{"type":"number","minimum":0,"maximum":20,"title":"Minimum bathrooms"},"cookie":{"type":"string","maxLength":2000,"title":"Browser cookie","description":"Leave empty: the run mints its own PerimeterX tokens (_px3, _pxvid, pxcts) in the Chrome service and renews them when Zillow blocks. Set it only to override that with the Cookie header of a zillow.com request from your own browser (DevTools → Network → a request → Cookie).","examples":["zguid=…; _pxvid=…; pxcts=…; _px3=…"]},"fetchDetails":{"type":"boolean","title":"Fetch listing details","description":"Adds year built, MLS id, parcel id, tax figures, schools and walk scores — at one extra request per listing.","default":false},"maxDetails":{"type":"number","minimum":0,"maximum":10000,"title":"Max detail fetches per run","description":"Independent of the listing ceiling. Details are the expensive half of a run.","default":200},"maxListings":{"type":"number","minimum":1,"maximum":50000000,"title":"Max listings per run","description":"Rows persist and re-runs upsert, so a ceiling here bounds one run, not the dataset.","default":50000000},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Zillow blocks hard and slowly. Lowering this is how a run turns into a captcha wall.","default":2000}}}}},"example":{"input":{"states":["AL"],"locations":["Austin","TX / 78702 / Cleveland","OH"],"markets":["forSale","forRent","sold"],"soldWithin":"36m"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/app-store-reviews/runs":{"post":{"operationId":"run_app_store_reviews","summary":"Run App Store & Google Play Reviews","description":"User reviews for any iOS or Android app — rating, text, app version and developer replies.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"targets":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Apps","description":"One entry per app, as `store:appId`, `store:country:appId`, or a pasted App Store / Play Store URL.","default":["apple:324684580","play:com.spotify.music"],"examples":["apple:324684580, play:com.spotify.music"]},"ratings":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Star ratings","description":"Keeps only these ratings. Empty keeps all five. `1, 2` is the setting that turns this into a complaint feed.","default":[],"examples":["1, 2"]},"keywords":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Keywords","description":"Keeps only reviews whose title or body contains one of these.","default":[],"examples":["crash, subscription, export"]},"maxAgeDays":{"type":"number","minimum":0,"maximum":3650,"title":"Max age (days)","description":"Drop reviews older than this. 0 keeps everything the store returns.","default":0},"maxReviewsPerApp":{"type":"number","minimum":1,"maximum":10000,"title":"Max reviews per app","description":"Apple caps its feed at 500 per storefront whatever this says; Google keeps paging.","default":500},"includeAppMetadata":{"type":"boolean","title":"Resolve app names","description":"One extra request per Apple app. Google publishes no equivalent, so Play rows carry the package name only.","default":true},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Concurrent apps","default":3},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between pages (ms)","default":800}}}}},"example":{"input":{"targets":["apple:324684580","play:com.spotify.music"],"ratings":["1","2"],"keywords":["crash","subscription","export"],"maxAgeDays":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/apple-apps/runs":{"post":{"operationId":"run_apple_apps","summary":"Run Apple App Store Metadata","description":"App metadata, developer, screenshots, ratings, pricing and device compatibility.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"appIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Apple app IDs","default":["310633997"]},"country":{"type":"string","maxLength":2000,"title":"Country code","default":"US"}}}}},"example":{"input":{"appIds":["310633997"],"country":"US"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ekomi-targets/runs":{"post":{"operationId":"run_ekomi_targets","summary":"Run eKomi Review Targets","description":"eKomi merchant review pages for a chosen list of merchants.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/google-play-apps/runs":{"post":{"operationId":"run_google_play_apps","summary":"Run Google Play App Metadata","description":"App name, developer, category, rating and public structured metadata.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"appIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Android package IDs","default":["com.whatsapp"]},"country":{"type":"string","maxLength":2000,"title":"Country code","default":"US"},"language":{"type":"string","maxLength":2000,"title":"Language","default":"en"}}}}},"example":{"input":{"appIds":["com.whatsapp"],"country":"US","language":"en"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/trustpilot-targets/runs":{"post":{"operationId":"run_trustpilot_targets","summary":"Run Trustpilot Review Targets","description":"Every merchant review page on Trustpilot, across all locales.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/verified-reviews-targets/runs":{"post":{"operationId":"run_verified_reviews_targets","summary":"Run Verified Reviews Targets","description":"Merchant review pages on Verified Reviews (Avis Vérifiés).\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/yelp-reviews/runs":{"post":{"operationId":"run_yelp_reviews","summary":"Run Yelp Reviews","description":"Public review text, rating, author and date.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"businessSlugs":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Business aliases","default":["blue-bottle-coffee-san-francisco-44"]},"maxItems":{"type":"number","title":"Maximum reviews","default":10},"maxPages":{"type":"number","title":"Maximum pages per business","default":1}}}}},"example":{"input":{"businessSlugs":["blue-bottle-coffee-san-francisco-44"],"maxItems":10,"maxPages":1}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpo2474a22afm5inkr/runs":{"post":{"operationId":"run_catalog_gd_mpo2474a22afm5inkr","summary":"Run 1st Phorm Products","description":"Collects public product data from 1stphorm.com using its shopify interface. Verified 2026-10-02T22:55:26.935Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq54rwntxilfb92ks/runs":{"post":{"operationId":"run_catalog_gd_mq54rwntxilfb92ks","summary":"Run 1UP Nutrition Products","description":"Collects public product data from 1upnutrition.com using its shopify interface. Verified 2026-10-02T22:55:26.990Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpdtilrr28i9fhax3i/runs":{"post":{"operationId":"run_catalog_gd_mpdtilrr28i9fhax3i","summary":"Run 2nd Swing Products","description":"Collects public product data from www.2ndswing.com using its magento interface. Verified 2026-10-03T09:00:54.464Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq54td761xpjx5u2f9/runs":{"post":{"operationId":"run_catalog_gd_mq54td761xpjx5u2f9","summary":"Run 5.11 Tactical Products","description":"Collects public product data from www.511tactical.com using its structured product metadata interface. Verified 2026-10-02T23:09:05.160Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq54urg3146k65zdd9/runs":{"post":{"operationId":"run_catalog_gd_mq54urg3146k65zdd9","summary":"Run 70mai Products","description":"Collects public product data from 70mai.store using its shopify interface. Verified 2026-10-02T22:55:26.765Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhkfygneknz3s24/runs":{"post":{"operationId":"run_catalog_gd_molhkfygneknz3s24","summary":"Run A Main Hobbies Products","description":"Collects public product data from www.amainhobbies.com using its structured product metadata interface. Verified 2026-10-02T23:09:05.091Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_ml9b0z3p1ublydd463/runs":{"post":{"operationId":"run_catalog_gd_ml9b0z3p1ublydd463","summary":"Run academy products","description":"Collects public product data from www.academy.com using its structured product metadata interface. Verified 2026-10-02T23:09:06.698Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_moviqxgf13aq4cfpas/runs":{"post":{"operationId":"run_catalog_gd_moviqxgf13aq4cfpas","summary":"Run Adafruit Products","description":"Collects public product data from www.adafruit.com using its structured product metadata interface. Verified 2026-10-02T22:55:30.588Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_le6plu065keypwyir/runs":{"post":{"operationId":"run_catalog_gd_le6plu065keypwyir","summary":"Run AE.com - Complete Products","description":"Collects public product data from www.ae.com using its structured product metadata interface. Verified 2026-10-02T22:55:40.570Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/aemery/runs":{"post":{"operationId":"run_aemery","summary":"Run Aemery","description":"Product catalogue from Aemery — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/aestherekme/runs":{"post":{"operationId":"run_aestherekme","summary":"Run Aestherekme","description":"Product catalogue from Aestherekme — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movikrxc1jb1rvkyi2/runs":{"post":{"operationId":"run_catalog_gd_movikrxc1jb1rvkyi2","summary":"Run AJ Madison Products","description":"Collects public product data from www.ajmadison.com using its structured product metadata interface. Verified 2026-10-02T23:09:09.192Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq55iptgkxhro1ynp/runs":{"post":{"operationId":"run_catalog_gd_mq55iptgkxhro1ynp","summary":"Run Albee Baby Products","description":"Collects public product data from www.albeebaby.com using its shopify interface. Verified 2026-10-02T22:55:32.645Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/alemais/runs":{"post":{"operationId":"run_alemais","summary":"Run Alemais","description":"Product catalogue from Alemais — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzuxfd117aqgzlb6d/runs":{"post":{"operationId":"run_catalog_gd_mpzuxfd117aqgzlb6d","summary":"Run Alexmill Product","description":"Collects public product data from www.alexmill.com using its shopify-storefront interface. Verified 2026-10-03T09:00:26.332Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzo1hxrwfn8zet7a/runs":{"post":{"operationId":"run_catalog_gd_mpzo1hxrwfn8zet7a","summary":"Run Allbirds Product","description":"Collects public product data from www.allbirds.com using its shopify interface. Verified 2026-10-02T22:51:18.916Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzeg3361wuipv4swd/runs":{"post":{"operationId":"run_catalog_gd_mpzeg3361wuipv4swd","summary":"Run AlpinStore Products","description":"Collects public product data from www.alpinstore.com using its structured product metadata interface. Verified 2026-10-02T22:55:36.614Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq55k58g2qo7naimdm/runs":{"post":{"operationId":"run_catalog_gd_mq55k58g2qo7naimdm","summary":"Run ALT Fragrances Products","description":"Collects public product data from www.altfragrances.com using its shopify interface. Verified 2026-10-02T22:55:34.421Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpz7ectr2pxr844xnj/runs":{"post":{"operationId":"run_catalog_gd_mpz7ectr2pxr844xnj","summary":"Run Altra Running Products","description":"Collects public product data from www.altrarunning.com using its shopify interface. Verified 2026-10-02T22:55:34.435Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/amanustudio/runs":{"post":{"operationId":"run_amanustudio","summary":"Run Amanustudio","description":"Product catalogue from Amanustudio — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzeygow2cnco7bss8/runs":{"post":{"operationId":"run_catalog_gd_mpzeygow2cnco7bss8","summary":"Run Amazfit USA Products","description":"Collects public product data from us.amazfit.com using its shopify interface. Verified 2026-10-02T22:55:34.413Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/amazon-products/runs":{"post":{"operationId":"run_amazon_products","summary":"Run Amazon Products","description":"Amazon product details by ASIN or search term — names, prices, descriptions and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"asins":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"ASINs","description":"Product codes, or whole /dp/ URLs. Used only when no search terms are set, unless both are given.","default":["B09DH98BHQ"],"examples":["B09DH98BHQ"]},"searchTerms":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search terms","description":"Each term’s result pages are mined for ASINs, which are then fetched as products.","default":[],"examples":["bikes, kids helmet"]},"searchPages":{"type":"number","minimum":1,"maximum":20,"title":"Search result pages per term","description":"Roughly 60 results per page.","default":1},"domain":{"type":"string","enum":["www.amazon.com","www.amazon.co.uk","www.amazon.de","www.amazon.fr","www.amazon.it","www.amazon.es","www.amazon.ca"],"title":"Storefront","description":"Amazon localises prices by the requesting IP as well as by domain, so the currency on a row is read off the page rather than assumed from this.","default":"www.amazon.com"},"maxProducts":{"type":"number","minimum":1,"maximum":2000,"title":"Max products per run","description":"Across ASINs and search results together.","default":50},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Amazon throttles aggressively. Lowering this is the fastest way to get a run served captcha pages.","default":2500}}}}},"example":{"input":{"asins":["B09DH98BHQ"],"searchTerms":["bikes","kids helmet"],"searchPages":1,"domain":"www.amazon.com"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlj8nwjt23cmzftpax/runs":{"post":{"operationId":"run_catalog_gd_mlj8nwjt23cmzftpax","summary":"Run American Eagle","description":"Collects public product data from www.ae.com using its structured product metadata interface. Verified 2026-10-02T22:55:39.774Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq55splso409puld4/runs":{"post":{"operationId":"run_catalog_gd_mq55splso409puld4","summary":"Run American Musical Supply Products","description":"Collects public product data from www.americanmusical.com using its structured product metadata interface. Verified 2026-10-02T23:09:11.408Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ancient_greek_sandals/runs":{"post":{"operationId":"run_ancient_greek_sandals","summary":"Run Ancient Greek Sandals","description":"Product catalogue from Ancient Greek Sandals — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/andrea_gomez/runs":{"post":{"operationId":"run_andrea_gomez","summary":"Run Andrea Gomez","description":"Product catalogue from Andrea Gomez — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhoe661yq1ta6dxi/runs":{"post":{"operationId":"run_catalog_gd_molhoe661yq1ta6dxi","summary":"Run Ann Taylor Products","description":"Collects public product data from www.anntaylor.com using its structured product metadata interface. Verified 2026-10-02T23:09:13.861Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/anne_thomas/runs":{"post":{"operationId":"run_anne_thomas","summary":"Run Anne Thomas","description":"Product catalogue from Anne Thomas — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/anniel/runs":{"post":{"operationId":"run_anniel","summary":"Run Anniel","description":"Shoe catalogue from Anniel — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6qh7g63g2u02gfs/runs":{"post":{"operationId":"run_catalog_gd_mq6qh7g63g2u02gfs","summary":"Run Anycubic Store Products","description":"Collects public product data from store.anycubic.com using its shopify interface. Verified 2026-10-02T22:55:37.475Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq55uug62fejdh7cmf/runs":{"post":{"operationId":"run_catalog_gd_mq55uug62fejdh7cmf","summary":"Run APEC Water Products","description":"Collects public product data from www.apecwater.com using its shopify interface. Verified 2026-10-02T22:55:37.969Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/apointetc/runs":{"post":{"operationId":"run_apointetc","summary":"Run Apointetc","description":"Product catalogue from Apointetc — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/arket/runs":{"post":{"operationId":"run_arket","summary":"Run Arket","description":"Product catalogue from Arket — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motp6mnkr1miyoiwz/runs":{"post":{"operationId":"run_catalog_gd_motp6mnkr1miyoiwz","summary":"Run Article Products","description":"Collects public product data from www.article.com using its structured product metadata interface. Verified 2026-10-02T22:56:25.501Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli28aoc1pii55r4wo/runs":{"post":{"operationId":"run_catalog_gd_mli28aoc1pii55r4wo","summary":"Run AT&T Products","description":"Collects public product data from www.att.com using its structured product metadata interface. Verified 2026-10-02T22:56:31.925Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ateliersauguste/runs":{"post":{"operationId":"run_ateliersauguste","summary":"Run Ateliersauguste","description":"Product catalogue from Ateliersauguste — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/atorie/runs":{"post":{"operationId":"run_atorie","summary":"Run Atorie","description":"Product catalogue from Atorie — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/atpresent/runs":{"post":{"operationId":"run_atpresent","summary":"Run Atpresent","description":"Product catalogue from Atpresent — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/attersee/runs":{"post":{"operationId":"run_attersee","summary":"Run Attersee","description":"Product catalogue from Attersee — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/augusta/runs":{"post":{"operationId":"run_augusta","summary":"Run Augusta","description":"Product catalogue from Augusta — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/aureumcollective/runs":{"post":{"operationId":"run_aureumcollective","summary":"Run Aureumcollective","description":"Product catalogue from Aureumcollective — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq56prjf2e1pk8bbyp/runs":{"post":{"operationId":"run_catalog_gd_mq56prjf2e1pk8bbyp","summary":"Run Auxbeam Products","description":"Collects public product data from www.auxbeam.com using its shopify interface. Verified 2026-10-02T22:56:24.118Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq56qh3k3bhiv3vd4/runs":{"post":{"operationId":"run_catalog_gd_mq56qh3k3bhiv3vd4","summary":"Run Aventon Products","description":"Collects public product data from www.aventon.com using its shopify interface. Verified 2026-10-02T22:56:24.573Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq56r7bd1hxpav3fsq/runs":{"post":{"operationId":"run_catalog_gd_mq56r7bd1hxpav3fsq","summary":"Run Avocado Green Mattress Products","description":"Collects public product data from www.avocadogreenmattress.com using its shopify interface. Verified 2026-10-02T22:56:24.779Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpznsvcaw51fex1bi/runs":{"post":{"operationId":"run_catalog_gd_mpznsvcaw51fex1bi","summary":"Run Avocadomattress Product","description":"Collects public product data from www.avocadogreenmattress.com using its shopify interface. Verified 2026-10-02T22:56:24.771Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ayllon/runs":{"post":{"operationId":"run_ayllon","summary":"Run Ayllon","description":"Product catalogue from Ayllon — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/b_lowthebelt/runs":{"post":{"operationId":"run_b_lowthebelt","summary":"Run B Lowthebelt","description":"Product catalogue from B Lowthebelt — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq57oj0rbpjbmb0x0/runs":{"post":{"operationId":"run_catalog_gd_mq57oj0rbpjbmb0x0","summary":"Run Babyletto Products","description":"Collects public product data from babyletto.com using its shopify interface. Verified 2026-10-02T22:56:25.507Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mptny4mjtkl4bngo7/runs":{"post":{"operationId":"run_catalog_gd_mptny4mjtkl4bngo7","summary":"Run Bagsmart Products","description":"Collects public product data from www.bagsmart.com using its shopify interface. Verified 2026-10-02T22:56:25.552Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lh7oemkb2f9h596dfn/runs":{"post":{"operationId":"run_catalog_gd_lh7oemkb2f9h596dfn","summary":"Run Balenciaga.com - Products","description":"Collects public product data from www.balenciaga.com using its structured product metadata interface. Verified 2026-10-02T22:56:32.274Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpe4lpcm9uwn4ts1d/runs":{"post":{"operationId":"run_catalog_gd_mpe4lpcm9uwn4ts1d","summary":"Run Balsam Hill Products","description":"Collects public product data from www.balsamhill.com using its structured product metadata interface. Verified 2026-10-02T22:56:30.564Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motp9c8b2gm9lh5ich/runs":{"post":{"operationId":"run_catalog_gd_motp9c8b2gm9lh5ich","summary":"Run Bambu Lab Products","description":"Collects public product data from us.store.bambulab.com using its structured product metadata interface. Verified 2026-10-02T23:09:20.844Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlqsxatf2bqokzwkh1/runs":{"post":{"operationId":"run_catalog_gd_mlqsxatf2bqokzwkh1","summary":"Run Banter","description":"Collects public product data from www.banter.com using its structured product metadata interface. Verified 2026-10-02T22:56:35.676Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmaltgt5pwyrh5d4/runs":{"post":{"operationId":"run_catalog_gd_mpmaltgt5pwyrh5d4","summary":"Run Bare Necessities Products","description":"Collects public product data from www.barenecessities.com using its shopify interface. Verified 2026-10-02T22:56:28.031Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mko46hml1llklbttnj/runs":{"post":{"operationId":"run_catalog_gd_mko46hml1llklbttnj","summary":"Run Barnes & Noble Products","description":"Collects public product data from www.barnesandnoble.com using its structured product metadata interface. Verified 2026-10-02T22:56:33.755Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlf37qe01t9jypwd0a/runs":{"post":{"operationId":"run_catalog_gd_mlf37qe01t9jypwd0a","summary":"Run Bath & Body Works","description":"Collects public product data from www.bathandbodyworks.com using its constructor interface. Verified 2026-10-03T09:00:54.464Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/beaufille/runs":{"post":{"operationId":"run_beaufille","summary":"Run Beaufille","description":"Product catalogue from Beaufille — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq58uefx1ef86oznd/runs":{"post":{"operationId":"run_catalog_gd_mq58uefx1ef86oznd","summary":"Run Beauty of Joseon Products","description":"Collects public product data from beautyofjoseon.com using its shopify interface. Verified 2026-10-02T22:56:31.685Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mknxvhis2mvd2mzihe/runs":{"post":{"operationId":"run_catalog_gd_mknxvhis2mvd2mzihe","summary":"Run Bed Bath & Beyond","description":"Collects public product data from www.bedbathandbeyond.com using its constructor interface. Verified 2026-10-03T09:00:54.465Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzegt81tluq13ijy/runs":{"post":{"operationId":"run_catalog_gd_mpzegt81tluq13ijy","summary":"Run Bedsure Home Products","description":"Collects public product data from bedsurehome.com using its shopify interface. Verified 2026-10-02T22:56:31.994Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzrvbl53khqyfskl/runs":{"post":{"operationId":"run_catalog_gd_mpzrvbl53khqyfskl","summary":"Run Beekman1802 Product","description":"Collects public product data from beekman1802.com using its shopify interface. Verified 2026-10-02T22:56:32.449Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5bqr7419olrj8thq/runs":{"post":{"operationId":"run_catalog_gd_mq5bqr7419olrj8thq","summary":"Run BÉIS Travel Canada Products","description":"Collects public product data from ca.beistravel.com using its shopify interface. Verified 2026-10-02T22:57:08.793Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj6tlo2iod7fx2u1/runs":{"post":{"operationId":"run_catalog_gd_movj6tlo2iod7fx2u1","summary":"Run Belkin Products","description":"Collects public product data from www.belkin.com using its constructor interface. Verified 2026-10-03T09:00:54.465Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/belle_anna/runs":{"post":{"operationId":"run_belle_anna","summary":"Run Belle Anna","description":"Product catalogue from Belle Anna — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/bembien/runs":{"post":{"operationId":"run_bembien","summary":"Run Bembien","description":"Product catalogue from Bembien — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5a8kdmnw821d9o4/runs":{"post":{"operationId":"run_catalog_gd_mq5a8kdmnw821d9o4","summary":"Run Bestqool Products","description":"Collects public product data from www.bestqool.com using its shopify interface. Verified 2026-10-02T22:56:57.806Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5a9ynaoagh4hpff/runs":{"post":{"operationId":"run_catalog_gd_mq5a9ynaoagh4hpff","summary":"Run BimmerWorld Products","description":"Collects public product data from www.bimmerworld.com using its searchspring interface. Verified 2026-10-03T09:00:54.465Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movimfbo39wbmy1r/runs":{"post":{"operationId":"run_catalog_gd_movimfbo39wbmy1r","summary":"Run Birkenstock Products","description":"Collects public product data from www.birkenstock.com using its structured product metadata interface. Verified 2026-10-02T22:57:01.084Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm7witb212tnqrnubu/runs":{"post":{"operationId":"run_catalog_gd_mm7witb212tnqrnubu","summary":"Run Blick Art Products","description":"Collects public product data from www.dickblick.com using its structured product metadata interface. Verified 2026-10-02T22:57:01.247Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpb5nwgo2eiu57yofb/runs":{"post":{"operationId":"run_catalog_gd_mpb5nwgo2eiu57yofb","summary":"Run Blindster Products","description":"Collects public product data from www.blindster.com using its algolia interface. Verified 2026-10-03T09:00:54.465Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5alne22cm2xbln31/runs":{"post":{"operationId":"run_catalog_gd_mq5alne22cm2xbln31","summary":"Run BlockBlueLight Products","description":"Collects public product data from www.blockbluelight.com using its shopify interface. Verified 2026-10-02T22:56:59.422Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5amcvk2c0d8sk1lz/runs":{"post":{"operationId":"run_catalog_gd_mq5amcvk2c0d8sk1lz","summary":"Run Bluemercury Products","description":"Collects public product data from bluemercury.com using its shopify interface. Verified 2026-10-02T23:07:59.083Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5atmk31jesqnxdox/runs":{"post":{"operationId":"run_catalog_gd_mq5atmk31jesqnxdox","summary":"Run Boll & Branch Products","description":"Collects public product data from www.bollandbranch.com using its structured product metadata interface. Verified 2026-10-02T22:57:07.564Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq3hom9bx62yklyqk/runs":{"post":{"operationId":"run_catalog_gd_mq3hom9bx62yklyqk","summary":"Run Bombas Products","description":"Collects public product data from bombas.com using its structured product metadata interface. Verified 2026-10-02T22:57:06.299Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7qrkff2robjc7mf/runs":{"post":{"operationId":"run_catalog_gd_mq7qrkff2robjc7mf","summary":"Run Bonobos Products","description":"Collects public product data from bonobos.com using its shopify interface. Verified 2026-10-02T22:57:01.769Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj08ohe2ptnihj0/runs":{"post":{"operationId":"run_catalog_gd_movj08ohe2ptnihj0","summary":"Run Boohoo Products","description":"Collects public product data from www.boohoo.com using its bloomreach interface. Verified 2026-10-03T09:00:54.465Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5av0tr1qocbbn1gy/runs":{"post":{"operationId":"run_catalog_gd_mq5av0tr1qocbbn1gy","summary":"Run Born Primitive Products","description":"Collects public product data from www.bornprimitive.com using its shopify interface. Verified 2026-10-02T22:57:02.121Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwkp8yn6ba7bj0o8/runs":{"post":{"operationId":"run_catalog_gd_mpwkp8yn6ba7bj0o8","summary":"Run Boscov's Products","description":"Collects public product data from www.boscovs.com using its unbxd interface. Verified 2026-10-03T09:00:54.465Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhmkvp1xbzix13cz/runs":{"post":{"operationId":"run_catalog_gd_molhmkvp1xbzix13cz","summary":"Run Bose Products","description":"Collects public product data from www.bose.com using its structured product metadata interface. Verified 2026-10-02T22:57:04.164Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzci67d1svqcb51cj/runs":{"post":{"operationId":"run_catalog_gd_mpzci67d1svqcb51cj","summary":"Run Bowflex Products","description":"Collects public product data from www.bowflex.com using its shopify interface. Verified 2026-10-02T22:57:04.801Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwkpxzt70o2lhaxu/runs":{"post":{"operationId":"run_catalog_gd_mpwkpxzt70o2lhaxu","summary":"Run BrandsMart USA Products","description":"Collects public product data from www.brandsmartusa.com using its shopify interface. Verified 2026-10-02T22:57:05.007Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movix3m3egz3ppn0p/runs":{"post":{"operationId":"run_catalog_gd_movix3m3egz3ppn0p","summary":"Run Breville Products","description":"Collects public product data from www.breville.com using its algolia interface. Verified 2026-10-03T09:00:54.470Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5bb4dnt9bpgwxu0/runs":{"post":{"operationId":"run_catalog_gd_mq5bb4dnt9bpgwxu0","summary":"Run Brilliant Earth Products","description":"Collects public product data from www.brilliantearth.com using its structured product metadata interface. Verified 2026-10-02T22:57:14.330Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzedzpowenfw650a/runs":{"post":{"operationId":"run_catalog_gd_mpzedzpowenfw650a","summary":"Run Brooklinen Products","description":"Collects public product data from www.brooklinen.com using its shopify interface. Verified 2026-10-02T22:57:07.014Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mou0e1yd2agnx5a6ez/runs":{"post":{"operationId":"run_catalog_gd_mou0e1yd2agnx5a6ez","summary":"Run Brother USA Products","description":"Collects public product data from www.brother-usa.com using its structured product metadata interface. Verified 2026-10-02T22:57:11.032Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzsk9ma11dh2mbq7/runs":{"post":{"operationId":"run_catalog_gd_mpzsk9ma11dh2mbq7","summary":"Run Buckmason Product","description":"Collects public product data from www.buckmason.com using its structured product metadata interface. Verified 2026-10-02T22:57:09.207Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzrfqoe1wbc0qhbw2/runs":{"post":{"operationId":"run_catalog_gd_mpzrfqoe1wbc0qhbw2","summary":"Run Burrow Product","description":"Collects public product data from burrow.com using its structured product metadata interface. Verified 2026-10-02T22:57:10.550Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motpa4oe255gm7cm2i/runs":{"post":{"operationId":"run_catalog_gd_motpa4oe255gm7cm2i","summary":"Run Burton Products","description":"Collects public product data from www.burton.com using its shopify interface. Verified 2026-10-02T22:57:08.240Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5bs1z31kskrw0l8a/runs":{"post":{"operationId":"run_catalog_gd_mq5bs1z31kskrw0l8a","summary":"Run Callaway Golf Pre-Owned Products","description":"Collects public product data from www.callawaygolfpreowned.com using its structured product metadata interface. Verified 2026-10-02T22:57:14.230Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6fb9vy1k83ev2366/runs":{"post":{"operationId":"run_catalog_gd_mq6fb9vy1k83ev2366","summary":"Run CALPAK Travel Products","description":"Collects public product data from www.calpaktravel.com using its shopify interface. Verified 2026-10-02T22:57:09.873Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mr3kez4w1kjlmsl7aj/runs":{"post":{"operationId":"run_catalog_gd_mr3kez4w1kjlmsl7aj","summary":"Run Calvin Klein Product","description":"Collects public product data from www.calvinklein.us using its structured product metadata interface. Verified 2026-10-02T23:09:39.946Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6fbycq26ztsc3ddq/runs":{"post":{"operationId":"run_catalog_gd_mq6fbycq26ztsc3ddq","summary":"Run Camera West Products","description":"Collects public product data from camerawest.com using its shopify interface. Verified 2026-10-02T23:07:58.670Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cami_nyc/runs":{"post":{"operationId":"run_cami_nyc","summary":"Run Cami Nyc","description":"Product catalogue from Cami Nyc — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7qt4e22mtv972kih/runs":{"post":{"operationId":"run_catalog_gd_mq7qt4e22mtv972kih","summary":"Run CanvasChamp Products","description":"Collects public product data from www.canvaschamp.com using its magento interface. Verified 2026-10-03T09:00:54.687Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/carel_paris/runs":{"post":{"operationId":"run_carel_paris","summary":"Run Carel Paris","description":"Product catalogue from Carel Paris — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosgz6d35xefyi52p/runs":{"post":{"operationId":"run_catalog_gd_mosgz6d35xefyi52p","summary":"Run Carhartt Products","description":"Collects public product data from www.carhartt.com using its structured product metadata interface. Verified 2026-10-02T23:08:08.373Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwkxl9vfw0lzvs09/runs":{"post":{"operationId":"run_catalog_gd_mpwkxl9vfw0lzvs09","summary":"Run Cartier Products","description":"Collects public product data from www.cartier.com using its structured product metadata interface. Verified 2026-10-02T23:08:15.171Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/casadei/runs":{"post":{"operationId":"run_casadei","summary":"Run Casadei","description":"Product catalogue from Casadei — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzis50z1m3y4vrtzr/runs":{"post":{"operationId":"run_catalog_gd_mpzis50z1m3y4vrtzr","summary":"Run Casper Product","description":"Collects public product data from casper.com using its shopify interface. Verified 2026-10-02T22:57:27.020Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/castaner/runs":{"post":{"operationId":"run_castaner","summary":"Run Castaner","description":"Product catalogue from Castaner — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwky9mx17rjxi1tx5/runs":{"post":{"operationId":"run_catalog_gd_mpwky9mx17rjxi1tx5","summary":"Run Celestron Products","description":"Collects public product data from www.celestron.com using its shopify interface. Verified 2026-10-02T23:07:58.718Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/celia_b/runs":{"post":{"operationId":"run_celia_b","summary":"Run Celia B","description":"Product catalogue from Celia B — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cettire/runs":{"post":{"operationId":"run_cettire","summary":"Run Cettire","description":"Product catalogue from Cettire — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6d99cn1ln4hyhux/runs":{"post":{"operationId":"run_catalog_gd_mq6d99cn1ln4hyhux","summary":"Run Chemical Guys Products","description":"Collects public product data from www.chemicalguys.com using its shopify interface. Verified 2026-10-02T22:57:27.391Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpjqpvsjrjz78buw7/runs":{"post":{"operationId":"run_catalog_gd_mpjqpvsjrjz78buw7","summary":"Run Chicco Products","description":"Collects public product data from www.chiccousa.com using its structured product metadata interface. Verified 2026-10-02T22:57:29.869Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motp7oqkiuakwnx0f/runs":{"post":{"operationId":"run_catalog_gd_motp7oqkiuakwnx0f","summary":"Run Christianbook Products","description":"Collects public product data from www.christianbook.com using its structured product metadata interface. Verified 2026-10-02T23:09:48.984Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/chrono24-watches/runs":{"post":{"operationId":"run_chrono24_watches","summary":"Run Chrono24 Watches","description":"Watch listings on Chrono24 — names, prices, descriptions and images, with optional full listing details.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"watchType":{"type":"string","enum":["used","new","all"],"title":"Condition","description":"Sent as `usedOrNew`. The legacy `watchTypes=U` parameter is dead — it no longer filters anything.","default":"used"},"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Leave empty to walk the whole catalogue. A query that resolves to one brand or model makes Chrono24 redirect to a canonical listing path; pagination follows it either way.","examples":["omega speedmaster"]},"sortOrder":{"type":"string","enum":["relevance","priceAsc","priceDesc","newest","popularity"],"title":"Sort order","description":"Only nine pages of any search are reachable, so the sort order decides which 1,080 listings a run sees.","default":"relevance"},"priceFrom":{"type":"number","minimum":0,"maximum":100000000,"title":"Min price","description":"In the selected currency. Combined with a max price this is the practical way to walk more of the catalogue than nine pages."},"priceTo":{"type":"number","minimum":0,"maximum":100000000,"title":"Max price","description":"In the selected currency. Ignored if it is below the min price."},"currency":{"type":"string","enum":["USD","EUR","GBP","CHF","JPY","AUD","CAD"],"title":"Currency","description":"Set through the `c24userprefs` cookie as well as the query string — the query parameter alone is ignored. The currency stored on a row is read back off the page, not assumed from this.","default":"USD"},"fetchDetails":{"type":"boolean","title":"Fetch listing detail pages","description":"Adds reference number, movement, case material and diameter, year, condition, box/papers, dealer, shipping cost and the full-size image set. Costs one request per listing.","default":false},"maxDetails":{"type":"number","minimum":1,"maximum":5000,"title":"Max detail pages per run","description":"Listings past this keep their search-card fields; the run warns when the ceiling bites.","default":100},"pageSize":{"type":"string","enum":["30","60","120"],"title":"Listings per page","description":"Only 30, 60 and 120 are honoured. Depth is capped in pages, so the largest size is the only way to reach more listings.","default":"120"},"maxPages":{"type":"number","minimum":1,"maximum":9,"title":"Max pages","description":"Chrono24 serves page 1-9 and answers a Cloudflare challenge for every page beyond, however many its own paginator advertises.","default":9},"maxItems":{"type":"number","minimum":1,"maximum":50000,"title":"Max listings per run","description":"Hard ceiling, applied across pages. One search cannot reach more than 1,080 listings anyway.","default":1080},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Cloudflare fronts Chrono24 and answers bursts with a challenge page. Applies between result pages and between detail pages alike.","default":1500}}}}},"example":{"input":{"watchType":"used","query":"omega speedmaster","sortOrder":"relevance","currency":"USD"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzqsc7m2eg7lnpmnc/runs":{"post":{"operationId":"run_catalog_gd_mpzqsc7m2eg7lnpmnc","summary":"Run Chubbiesshorts Product","description":"Collects public product data from www.chubbiesshorts.com using its structured product metadata interface. Verified 2026-10-02T22:57:31.176Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzciubq1lhonekcu7/runs":{"post":{"operationId":"run_catalog_gd_mpzciubq1lhonekcu7","summary":"Run Classic Industries Products","description":"Collects public product data from www.classicindustries.com using its constructor interface. Verified 2026-10-03T09:00:54.872Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5cocdb1r6dqgata1/runs":{"post":{"operationId":"run_catalog_gd_mq5cocdb1r6dqgata1","summary":"Run Clever Fox Planner Products","description":"Collects public product data from cleverfoxplanner.com using its shopify interface. Verified 2026-10-02T22:57:31.188Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm3g3x4i29pqz8568x/runs":{"post":{"operationId":"run_catalog_gd_mm3g3x4i29pqz8568x","summary":"Run Clinique Products","description":"Collects public product data from www.clinique.com using its shopify interface. Verified 2026-10-02T22:57:30.838Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cliopeppiatt/runs":{"post":{"operationId":"run_cliopeppiatt","summary":"Run Cliopeppiatt","description":"Product catalogue from Cliopeppiatt — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/co/runs":{"post":{"operationId":"run_co","summary":"Run Co","description":"Product catalogue from Co — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7qvg13is186r68i/runs":{"post":{"operationId":"run_catalog_gd_mq7qvg13is186r68i","summary":"Run Codeage Products","description":"Collects public product data from www.codeage.com using its shopify interface. Verified 2026-10-02T22:57:31.848Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpkvjyo72gm05lgea2/runs":{"post":{"operationId":"run_catalog_gd_mpkvjyo72gm05lgea2","summary":"Run Cole Haan Products","description":"Collects public product data from www.colehaan.com using its shopify interface. Verified 2026-10-02T22:57:31.787Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mobct3l81epz6mljms/runs":{"post":{"operationId":"run_catalog_gd_mobct3l81epz6mljms","summary":"Run Columbia Products","description":"Collects public product data from www.columbia.com using its structured product metadata interface. Verified 2026-10-02T23:09:47.180Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli2ou2l2mbp4alghs/runs":{"post":{"operationId":"run_catalog_gd_mli2ou2l2mbp4alghs","summary":"Run Containerstore products","description":"Collects public product data from www.containerstore.com using its bloomreach interface. Verified 2026-10-03T09:00:55.089Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7qw7he1dpwrkxhld/runs":{"post":{"operationId":"run_catalog_gd_mq7qw7he1dpwrkxhld","summary":"Run Coop Sleep Goods Products","description":"Collects public product data from coopsleepgoods.com using its shopify interface. Verified 2026-10-02T22:57:32.984Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7r9tg1iyocaz6z9/runs":{"post":{"operationId":"run_catalog_gd_mq7r9tg1iyocaz6z9","summary":"Run Corbetts Ski + Snowboard Products","description":"Collects public product data from www.corbetts.com using its searchspring interface. Verified 2026-10-03T09:00:55.180Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cordera/runs":{"post":{"operationId":"run_cordera","summary":"Run Cordera","description":"Product catalogue from Cordera — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosaajl02m06rzm8zk/runs":{"post":{"operationId":"run_catalog_gd_mosaajl02m06rzm8zk","summary":"Run Corsair Products","description":"Collects public product data from www.corsair.com using its structured product metadata interface. Verified 2026-10-02T22:57:36.345Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cos/runs":{"post":{"operationId":"run_cos","summary":"Run COS","description":"Product catalogue from COS — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ralkc1jp2fds85u/runs":{"post":{"operationId":"run_catalog_gd_mq7ralkc1jp2fds85u","summary":"Run COSRX Products","description":"Collects public product data from www.cosrx.com using its shopify interface. Verified 2026-10-02T22:57:33.563Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mkcbmac44j178pook/runs":{"post":{"operationId":"run_catalog_gd_mkcbmac44j178pook","summary":"Run Costco products","description":"Collects public product data from www.costco.com using its structured product metadata interface. Verified 2026-10-02T22:57:40.923Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/costco-products/runs":{"post":{"operationId":"run_costco_products","summary":"Run Costco Products","description":"Costco products across every category — names, prices, descriptions and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"mode":{"type":"string","enum":["categories","catalog"],"title":"Enumeration mode","description":"Categories pages each megamenu leaf and takes the taxonomy from Costco’s own breadcrumb. Catalog asks the search app for everything at once — the complete shippable catalogue in ~61 requests — and names the taxonomy from the megamenu instead.","default":"categories"},"categoryUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Category paths","description":"Leave empty to discover every leaf category from Costco’s megamenu. Full costco.com URLs are accepted and reduced to their path.","default":[],"examples":["/laptops.html, /cooktops.html"]},"maxCategories":{"type":"number","minimum":1,"maximum":2000,"title":"Max categories (discovery only)","description":"The megamenu yields ~995 leaf entries, 847 of them distinct. Ignored when category paths are given explicitly, and in catalog mode.","default":250},"maxProductsPerCategory":{"type":"number","minimum":1,"maximum":20000,"title":"Max products per category","description":"Paging stops at this many, or when the category runs out. The deepest category measured holds 1,978 products and pages to the last one, so the default clears it.","default":2000},"maxProducts":{"type":"number","minimum":1,"maximum":200000,"title":"Max products per run","description":"Across every category together. The whole shippable catalogue is ~12,100 products, so the default does not bite on a full run. Hitting it ends the run with a truncation warning.","default":25000},"shipItOnly":{"type":"boolean","title":"Shippable items only","description":"Applies the storefront’s ShipIt eligibility filter. Turning it off also returns warehouse-only and grocery-delivery items, which have no shippable price.","default":true},"pageSize":{"type":"number","minimum":1,"maximum":200,"title":"Products per request","description":"Verified 2026-09-03: 200 is honoured exactly, 201 already falls back to 24. Clamped for that reason.","default":200},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Costco throttles by resetting the connection rather than returning a status code, so a run that suddenly reports fetch errors is usually going too fast.","default":750},"userLocation":{"type":"string","maxLength":2000,"title":"User state","description":"Together with the postal code, decides regional pricing and availability.","default":"NJ"},"userPostal":{"type":"string","maxLength":2000,"title":"User postal code","default":"07094"},"locations":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Inventory nodes (Solr `loc`)","description":"Which fulfilment nodes are joined onto each product. Trimming this changes which products come back and at what price — leave it alone unless you are deliberately re-targeting the run.","default":["729-bd","306-wh","1260-3pl","1321-wm","1477-3pl","283-wm","561-wm","725-wm","731-wm","758-wm","759-wm","847_0-cor","847_0-cwt","847_0-edi","847_0-ehs","847_0-membership","847_0-mpt","847_0-spc","847_0-wm","847_1-cwt","847_1-edi","847_d-fis","847_lg_n1a-edi","847_lux_us81-edi","847_NA-cor","847_NA-pharmacy","847_NA-wm","847_ss_u360-edi","847_wp_r428-edi","951-wm","952-wm","9847-wcs"]},"warehouse":{"type":"string","maxLength":2000,"title":"Reporting warehouse (`whloc`)","default":"306-wh"},"apiKey":{"type":"string","maxLength":2000,"title":"Search API key","description":"The key costco.com ships to every browser. Set only if Costco rotates it; the environment variable is the better place for that.","examples":["defaults to COSTCO_SEARCH_API_KEY, then the storefront’s public key"]}}}}},"example":{"input":{"mode":"categories","categoryUrls":["/laptops.html","/cooktops.html"],"maxCategories":250,"maxProductsPerCategory":2000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5cpr1g2ebjuffdr7/runs":{"post":{"operationId":"run_catalog_gd_mq5cpr1g2ebjuffdr7","summary":"Run Cotopaxi Products","description":"Collects public product data from www.cotopaxi.com using its shopify interface. Verified 2026-10-02T22:57:33.706Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lemtcp2p2qdyd24vq5/runs":{"post":{"operationId":"run_catalog_gd_lemtcp2p2qdyd24vq5","summary":"Run Crateandbarrel - Products","description":"Collects public product data from www.crateandbarrel.com using its constructor interface. Verified 2026-10-03T09:00:55.329Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq76z67m15ropqmmmq/runs":{"post":{"operationId":"run_catalog_gd_mq76z67m15ropqmmmq","summary":"Run CRZ YOGA US Products","description":"Collects public product data from crzyoga.com using its shopify interface. Verified 2026-10-02T22:57:37.188Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/cultgaia/runs":{"post":{"operationId":"run_cultgaia","summary":"Run Cultgaia","description":"Product catalogue from Cultgaia — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mranfsvu1h3j00kyf/runs":{"post":{"operationId":"run_catalog_gd_mranfsvu1h3j00kyf","summary":"Run Cupshe Products","description":"Collects public product data from www.cupshe.com using its structured product metadata interface. Verified 2026-10-02T22:58:41.353Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrulmkqx16nk6jdzz7/runs":{"post":{"operationId":"run_catalog_gd_mrulmkqx16nk6jdzz7","summary":"Run Cuts Product","description":"Collects public product data from www.cutsclothing.com using its structured product metadata interface. Verified 2026-10-02T22:58:38.092Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpztp1ms1l9eu1fi95/runs":{"post":{"operationId":"run_catalog_gd_mpztp1ms1l9eu1fi95","summary":"Run Cuyana Product","description":"Collects public product data from www.cuyana.com using its shopify interface. Verified 2026-10-02T22:58:31.561Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motpcav91n2n6s3b2v/runs":{"post":{"operationId":"run_catalog_gd_motpcav91n2n6s3b2v","summary":"Run Cycle Gear Products","description":"Collects public product data from www.cyclegear.com using its structured product metadata interface. Verified 2026-10-02T22:58:42.310Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5cr7k018ww9rwcxr/runs":{"post":{"operationId":"run_catalog_gd_mq5cr7k018ww9rwcxr","summary":"Run Cymbiotika Products","description":"Collects public product data from cymbiotika.com using its shopify interface. Verified 2026-10-02T23:07:58.521Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7rczqv22bkfm0zb/runs":{"post":{"operationId":"run_catalog_gd_mq7rczqv22bkfm0zb","summary":"Run Darn Tough Products","description":"Collects public product data from darntough.com using its shopify interface. Verified 2026-10-02T22:58:31.901Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5crwzb16ky3cl5bh/runs":{"post":{"operationId":"run_catalog_gd_mq5crwzb16ky3cl5bh","summary":"Run DaVinci Baby Products","description":"Collects public product data from davincibaby.com using its shopify interface. Verified 2026-10-02T22:58:31.692Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5d69dqvwe3ex7qj/runs":{"post":{"operationId":"run_catalog_gd_mq5d69dqvwe3ex7qj","summary":"Run De'Longhi Products","description":"Collects public product data from www.delonghi.com using its structured product metadata interface. Verified 2026-10-02T22:58:39.798Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dear_frances/runs":{"post":{"operationId":"run_dear_frances","summary":"Run Dear Frances","description":"Product catalogue from Dear Frances — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mp5342tl2r5kcvg7mu/runs":{"post":{"operationId":"run_catalog_gd_mp5342tl2r5kcvg7mu","summary":"Run Decathlon Products","description":"Collects public product data from www.decathlon.com using its shopify interface. Verified 2026-10-02T22:58:32.072Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dehanche/runs":{"post":{"operationId":"run_dehanche","summary":"Run Dehanche","description":"Product catalogue from Dehanche — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/deiji_studios/runs":{"post":{"operationId":"run_deiji_studios","summary":"Run Deiji Studios","description":"Product catalogue from Deiji Studios — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movipiak2mwo2qw3u8/runs":{"post":{"operationId":"run_catalog_gd_movipiak2mwo2qw3u8","summary":"Run Delta Children Products","description":"Collects public product data from www.deltachildren.com using its shopify interface. Verified 2026-10-02T22:58:32.501Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/demellier/runs":{"post":{"operationId":"run_demellier","summary":"Run Demellier","description":"Product catalogue from Demellier — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm9aokhq2faa5ylgly/runs":{"post":{"operationId":"run_catalog_gd_mm9aokhq2faa5ylgly","summary":"Run Dermalogica Products","description":"Collects public product data from www.dermalogica.com using its shopify interface. Verified 2026-10-02T22:58:33.193Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj1oo528f0nhhf4w/runs":{"post":{"operationId":"run_catalog_gd_movj1oo528f0nhhf4w","summary":"Run Dermstore Products","description":"Collects public product data from www.dermstore.com using its structured product metadata interface. Verified 2026-10-02T22:58:34.719Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/destree/runs":{"post":{"operationId":"run_destree","summary":"Run Destree","description":"Product catalogue from Destree — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7rdr3tapxsoiijk/runs":{"post":{"operationId":"run_catalog_gd_mq7rdr3tapxsoiijk","summary":"Run Detroit Axle Products","description":"Collects public product data from www.detroitaxle.com using its shopify interface. Verified 2026-10-02T22:58:33.767Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7resvb65v0m3oz9/runs":{"post":{"operationId":"run_catalog_gd_mq7resvb65v0m3oz9","summary":"Run DFRobot Products","description":"Collects public product data from www.dfrobot.com using its structured product metadata interface. Verified 2026-10-02T22:58:37.310Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5d7ngd2aa9bwydr0/runs":{"post":{"operationId":"run_catalog_gd_mq5d7ngd2aa9bwydr0","summary":"Run Dickies Products","description":"Collects public product data from www.dickies.com using its shopify interface. Verified 2026-10-02T22:58:37.133Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrul24q22duz8sj92u/runs":{"post":{"operationId":"run_catalog_gd_mrul24q22duz8sj92u","summary":"Run Dieux Skin Product","description":"Collects public product data from dieuxskin.com using its shopify interface. Verified 2026-10-02T22:58:37.943Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmb5th42f6bsyouhb/runs":{"post":{"operationId":"run_catalog_gd_mpmb5th42f6bsyouhb","summary":"Run Discount Today Products","description":"Collects public product data from discounttoday.net using its woocommerce interface. Verified 2026-10-02T22:58:40.255Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dissh/runs":{"post":{"operationId":"run_dissh","summary":"Run Dissh","description":"Product catalogue from Dissh — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosh6ejmi5y82mqr7/runs":{"post":{"operationId":"run_catalog_gd_mosh6ejmi5y82mqr7","summary":"Run DJI Products","description":"Collects public product data from store.dji.com using its structured product metadata interface. Verified 2026-10-02T22:58:44.693Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/doen/runs":{"post":{"operationId":"run_doen","summary":"Run Doen","description":"Product catalogue from Doen — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/donni/runs":{"post":{"operationId":"run_donni","summary":"Run Donni","description":"Product catalogue from Donni — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dorsey/runs":{"post":{"operationId":"run_dorsey","summary":"Run Dorsey","description":"Product catalogue from Dorsey — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzeepplcyj69gvq/runs":{"post":{"operationId":"run_catalog_gd_mpzeepplcyj69gvq","summary":"Run Dosaze Products","description":"Collects public product data from dosaze.com using its shopify interface. Verified 2026-10-02T22:58:40.513Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7rg95glfrjudcwf/runs":{"post":{"operationId":"run_catalog_gd_mq7rg95glfrjudcwf","summary":"Run Dossier Products","description":"Collects public product data from dossier.co using its structured product metadata interface. Verified 2026-10-02T22:58:44.955Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5d9rgs2nun6j7v10/runs":{"post":{"operationId":"run_catalog_gd_mq5d9rgs2nun6j7v10","summary":"Run Double Wood Supplements Products","description":"Collects public product data from doublewoodsupplements.com using its shopify interface. Verified 2026-10-02T22:58:40.714Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5dah3k1c2emq5hhe/runs":{"post":{"operationId":"run_catalog_gd_mq5dah3k1c2emq5hhe","summary":"Run Dr. Dennis Gross Products","description":"Collects public product data from www.drdennisgross.com using its structured product metadata interface. Verified 2026-10-02T22:58:42.050Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq770nja1k47z74hoh/runs":{"post":{"operationId":"run_catalog_gd_mq770nja1k47z74hoh","summary":"Run Dr. Pen US Products","description":"Collects public product data from us.drpen.co using its shopify interface. Verified 2026-10-02T22:58:40.731Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dragondiffusion/runs":{"post":{"operationId":"run_dragondiffusion","summary":"Run Dragondiffusion","description":"Product catalogue from Dragondiffusion — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5dpi1m1pqgi3p2fw/runs":{"post":{"operationId":"run_catalog_gd_mq5dpi1m1pqgi3p2fw","summary":"Run Dreo Products","description":"Collects public product data from www.dreo.com using its shopify interface. Verified 2026-10-02T22:58:41.058Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/drogheriacrivellini/runs":{"post":{"operationId":"run_drogheriacrivellini","summary":"Run Drogheria Crivellini","description":"Product catalogue from Drogheria Crivellini — names, prices, descriptions and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzo0m562eyeyl79u2/runs":{"post":{"operationId":"run_catalog_gd_mpzo0m562eyeyl79u2","summary":"Run Drsquatch Product","description":"Collects public product data from www.drsquatch.com using its structured product metadata interface. Verified 2026-10-02T22:58:46.691Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrulfo341bp4efhhj4/runs":{"post":{"operationId":"run_catalog_gd_mrulfo341bp4efhhj4","summary":"Run Drunk Elephant Product","description":"Collects public product data from www.drunkelephant.com using its structured product metadata interface. Verified 2026-10-02T23:08:02.217Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dubizzle-listings/runs":{"post":{"operationId":"run_dubizzle_listings","summary":"Run Dubizzle UAE Listings","description":"Dubizzle classifieds across the UAE — cars, property, electronics, furniture, jobs and more — by search term, emirate, category and price, with AED prices, listing attributes, seller type, photos and posting dates. Filter to recently posted listings to monitor a search for new items.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"queries":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search terms","description":"One search per term, the same as typing it into the Dubizzle search bar. Leave empty to list everything that matches the other filters.","default":[],"examples":["iphone 15 pro, land cruiser, ps5"]},"emirates":{"type":"array","items":{"type":"string","enum":["dubai","abu-dhabi","sharjah","ajman","ras-al-khaimah","fujairah","umm-al-quwain","al-ain"]},"uniqueItems":true,"title":"Emirates","description":"Leave empty to search all of the UAE.","default":[]},"categories":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Categories","description":"Dubizzle category paths or category page URLs. Top level: motors, property-for-sale, property-for-rent, classified, jobs, jobs-wanted, community. Deeper paths such as motors/used-cars/toyota narrow further. Leave empty for every category.","default":[],"examples":["motors/used-cars, classified/mobile-phones-pdas"]},"minPrice":{"type":"number","minimum":0,"title":"Min price (AED)","default":0},"maxPrice":{"type":"number","minimum":0,"title":"Max price (AED)","description":"0 means no upper limit.","default":0},"postedWithinHours":{"type":"number","minimum":0,"maximum":8760,"title":"Posted within (hours)","description":"Only listings posted in the last N hours. Set it to the interval between monitoring runs to get just the new listings each time. 0 means any age.","default":0},"sort":{"type":"string","enum":["relevance","newest","price-low"],"title":"Sort","default":"newest"},"maxListings":{"type":"number","minimum":1,"maximum":10000000,"title":"Max listings per run","description":"Across all search terms together. Raise it to 10,000,000 to pull every listing matching a search.","default":1000},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":300}}}}},"example":{"input":{"queries":["iphone 15 pro","land cruiser","ps5"],"emirates":["dubai"],"categories":["motors/used-cars","classified/mobile-phones-pdas"],"minPrice":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/dunststudio/runs":{"post":{"operationId":"run_dunststudio","summary":"Run Dunst Studio","description":"Product catalogue from Dunst Studio — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/eberjey/runs":{"post":{"operationId":"run_eberjey","summary":"Run Eberjey","description":"Product catalogue from Eberjey — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5dqvyt25jgqybu0s/runs":{"post":{"operationId":"run_catalog_gd_mq5dqvyt25jgqybu0s","summary":"Run eCosmetics Products","description":"Collects public product data from www.ecosmetics.com using its woocommerce interface. Verified 2026-10-02T23:08:00.025Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movizohpkdvy92itx/runs":{"post":{"operationId":"run_catalog_gd_movizohpkdvy92itx","summary":"Run Eddie Bauer Products","description":"Collects public product data from www.eddiebauer.com using its shopify interface. Verified 2026-10-02T22:59:08.358Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7riaritkpxjy4v0/runs":{"post":{"operationId":"run_catalog_gd_mq7riaritkpxjy4v0","summary":"Run Edikted Products","description":"Collects public product data from edikted.com using its shopify interface. Verified 2026-10-02T22:59:11.616Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrulkzmtxngcf1eri/runs":{"post":{"operationId":"run_catalog_gd_mrulkzmtxngcf1eri","summary":"Run Eight Sleep Product","description":"Collects public product data from www.eightsleep.com using its structured product metadata interface. Verified 2026-10-02T22:59:14.312Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5dsa342gaqwgtmfn/runs":{"post":{"operationId":"run_catalog_gd_mq5dsa342gaqwgtmfn","summary":"Run Electric Ride Co. Products","description":"Collects public product data from electricrideco.com using its shopify interface. Verified 2026-10-02T22:59:08.362Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/elenimalami/runs":{"post":{"operationId":"run_elenimalami","summary":"Run Elenimalami","description":"Product catalogue from Elenimalami — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzoortyns1lqg8wj/runs":{"post":{"operationId":"run_catalog_gd_mpzoortyns1lqg8wj","summary":"Run Elfcosmetics Product","description":"Collects public product data from www.elfcosmetics.com using its structured product metadata interface. Verified 2026-10-02T22:59:14.617Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5dsyf619f78xsb7/runs":{"post":{"operationId":"run_catalog_gd_mq5dsyf619f78xsb7","summary":"Run Elgato Products","description":"Collects public product data from www.elgato.com using its structured product metadata interface. Verified 2026-10-02T22:59:14.092Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/emanuela_carouso/runs":{"post":{"operationId":"run_emanuela_carouso","summary":"Run Emanuela Carouso","description":"Product catalogue from Emanuela Carouso — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmcwx2vthq4t6m0y/runs":{"post":{"operationId":"run_catalog_gd_mpmcwx2vthq4t6m0y","summary":"Run Epson Products","description":"Collects public product data from epson.com using its structured product metadata interface. Verified 2026-10-02T22:59:20.049Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5dtosp2eq0rjny2e/runs":{"post":{"operationId":"run_catalog_gd_mq5dtosp2eq0rjny2e","summary":"Run Ergobaby Products","description":"Collects public product data from ergobaby.com using its shopify interface. Verified 2026-10-02T22:59:12.423Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/eric_bompard/runs":{"post":{"operationId":"run_eric_bompard","summary":"Run Eric Bompard","description":"Product catalogue from Eric Bompard — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movinjg81t3tde9xhv/runs":{"post":{"operationId":"run_catalog_gd_movinjg81t3tde9xhv","summary":"Run Eriks Bike Shop Products","description":"Collects public product data from www.eriksbikeshop.com using its shopify interface. Verified 2026-10-02T22:59:11.570Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7rkx3d1kqt07umc5/runs":{"post":{"operationId":"run_catalog_gd_mq7rkx3d1kqt07umc5","summary":"Run ESR Tech Products","description":"Collects public product data from www.esrtech.com using its shopify interface. Verified 2026-10-02T22:59:12.353Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/eugeniakim/runs":{"post":{"operationId":"run_eugeniakim","summary":"Run Eugeniakim","description":"Product catalogue from Eugeniakim — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj8ibm24721itxqy/runs":{"post":{"operationId":"run_catalog_gd_movj8ibm24721itxqy","summary":"Run Evenflo Products","description":"Collects public product data from www.evenflo.com using its shopify interface. Verified 2026-10-02T22:59:13.029Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7rm0zerwop9869w/runs":{"post":{"operationId":"run_catalog_gd_mq7rm0zerwop9869w","summary":"Run Ever-Pretty Products","description":"Collects public product data from www.ever-pretty.com using its shopify interface. Verified 2026-10-02T22:59:13.552Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5e8hpl1wnf3mjyng/runs":{"post":{"operationId":"run_catalog_gd_mq5e8hpl1wnf3mjyng","summary":"Run Everlane Products","description":"Collects public product data from www.everlane.com using its shopify interface. Verified 2026-10-02T22:59:14.094Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosa09t6cz5hjjjqj/runs":{"post":{"operationId":"run_catalog_gd_mosa09t6cz5hjjjqj","summary":"Run Evo Products","description":"Collects public product data from www.evo.com using its structured product metadata interface. Verified 2026-10-02T22:59:17.140Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/falconeri/runs":{"post":{"operationId":"run_falconeri","summary":"Run Falconeri","description":"Product catalogue from Falconeri — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/falierosarti/runs":{"post":{"operationId":"run_falierosarti","summary":"Run Faliero Sarti","description":"Product catalogue from Faliero Sarti — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/farfetch/runs":{"post":{"operationId":"run_farfetch","summary":"Run Farfetch","description":"Product catalogue from Farfetch — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/farm_rio/runs":{"post":{"operationId":"run_farm_rio","summary":"Run Farm Rio","description":"Product catalogue from Farm Rio — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7rnac59rz968ata/runs":{"post":{"operationId":"run_catalog_gd_mq7rnac59rz968ata","summary":"Run Fashion Nova Products","description":"Collects public product data from www.fashionnova.com using its shopify-storefront interface. Verified 2026-10-03T09:02:16.819Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5ea9y52o0m2ba09k/runs":{"post":{"operationId":"run_catalog_gd_mq5ea9y52o0m2ba09k","summary":"Run Fashionphile Products","description":"Collects public product data from www.fashionphile.com using its shopify interface. Verified 2026-10-02T22:59:16.812Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzcjj5426257smmqr/runs":{"post":{"operationId":"run_catalog_gd_mpzcjj5426257smmqr","summary":"Run Fender Products","description":"Collects public product data from www.fender.com using its shopify interface. Verified 2026-10-02T22:59:17.740Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lbqsfpfk71ubir3pi/runs":{"post":{"operationId":"run_catalog_gd_lbqsfpfk71ubir3pi","summary":"Run Fendi Products","description":"Collects public product data from www.fendi.com using its structured product metadata interface. Verified 2026-10-02T22:59:21.080Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzil9rf2kpa968fn1/runs":{"post":{"operationId":"run_catalog_gd_mpzil9rf2kpa968fn1","summary":"Run Fentybeauty Product","description":"Collects public product data from fentybeauty.com using its shopify interface. Verified 2026-10-02T22:59:17.941Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/filippa_k/runs":{"post":{"operationId":"run_filippa_k","summary":"Run Filippa K","description":"Product catalogue from Filippa K — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq75u1vy1q6wplh3c3/runs":{"post":{"operationId":"run_catalog_gd_mq75u1vy1q6wplh3c3","summary":"Run FitVille Products","description":"Collects public product data from thefitville.com using its shopify interface. Verified 2026-10-02T22:59:18.447Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/flattered/runs":{"post":{"operationId":"run_flattered","summary":"Run Flattered","description":"Product catalogue from Flattered — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mljhtaoe2n284ux79e/runs":{"post":{"operationId":"run_catalog_gd_mljhtaoe2n284ux79e","summary":"Run Flipkart Products unified schema","description":"Collects public product data from www.flipkart.com using its structured product metadata interface. Verified 2026-10-02T22:59:38.298Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm9b2j9d1udbsadimz/runs":{"post":{"operationId":"run_catalog_gd_mm9b2j9d1udbsadimz","summary":"Run Flooranddecor Products","description":"Collects public product data from www.flooranddecor.com using its algolia interface. Verified 2026-10-03T09:00:55.500Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/flowze/runs":{"post":{"operationId":"run_flowze","summary":"Run Flowze","description":"Product catalogue from Flowze — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mruks69eclyuexdja/runs":{"post":{"operationId":"run_catalog_gd_mruks69eclyuexdja","summary":"Run Floyd Home Product","description":"Collects public product data from floydhome.com using its shopify interface. Verified 2026-10-02T22:59:37.358Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwla7o81g9tlyj2at/runs":{"post":{"operationId":"run_catalog_gd_mpwla7o81g9tlyj2at","summary":"Run FoodServiceDirect Products","description":"Collects public product data from www.foodservicedirect.com using its magento interface. Verified 2026-10-03T09:00:55.579Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhetz34oq81o661/runs":{"post":{"operationId":"run_catalog_gd_molhetz34oq81o661","summary":"Run Foot Locker Products","description":"Collects public product data from www.footlocker.com using its constructor interface. Verified 2026-10-03T09:00:55.590Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mozk6gdt19xdfnr8io/runs":{"post":{"operationId":"run_catalog_gd_mozk6gdt19xdfnr8io","summary":"Run Fossil Products","description":"Collects public product data from www.fossil.com using its structured product metadata interface. Verified 2026-10-02T22:59:41.952Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/frejanyc/runs":{"post":{"operationId":"run_frejanyc","summary":"Run Frejanyc","description":"Product catalogue from Frejanyc — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mp536xf4aqaxfc4rf/runs":{"post":{"operationId":"run_catalog_gd_mp536xf4aqaxfc4rf","summary":"Run Frigidaire Products","description":"Collects public product data from www.frigidaire.com using its structured product metadata interface. Verified 2026-10-02T23:00:05.349Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5edch620l2q0ctlr/runs":{"post":{"operationId":"run_catalog_gd_mq5edch620l2q0ctlr","summary":"Run Full Leaf Tea Company Products","description":"Collects public product data from fullleafteacompany.com using its shopify interface. Verified 2026-10-02T22:59:37.602Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/fwrd/runs":{"post":{"operationId":"run_fwrd","summary":"Run FWRD","description":"Product catalogue from FWRD — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mktp5v432bmlul6bvd/runs":{"post":{"operationId":"run_catalog_gd_mktp5v432bmlul6bvd","summary":"Run GameStop Products","description":"Collects public product data from www.gamestop.com using its structured product metadata interface. Verified 2026-10-02T22:59:40.832Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5ee2ampqfcqpjqg/runs":{"post":{"operationId":"run_catalog_gd_mq5ee2ampqfcqpjqg","summary":"Run Garden of Life Products","description":"Collects public product data from www.gardenoflife.com using its structured product metadata interface. Verified 2026-10-02T23:08:06.791Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm7w9szp24mnnqnfov/runs":{"post":{"operationId":"run_catalog_gd_mm7w9szp24mnnqnfov","summary":"Run Garmin Products","description":"Collects public product data from www.garmin.com using its structured product metadata interface. Verified 2026-10-02T22:59:39.710Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhiirnivtvf7fp4/runs":{"post":{"operationId":"run_catalog_gd_molhiirnivtvf7fp4","summary":"Run Gear 4 Music Products","description":"Collects public product data from www.gear4music.com using its structured product metadata interface. Verified 2026-10-02T22:59:41.847Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5esf0q2l84vvl4aw/runs":{"post":{"operationId":"run_catalog_gd_mq5esf0q2l84vvl4aw","summary":"Run GEEKOM Products","description":"Collects public product data from www.geekompc.com using its woocommerce interface. Verified 2026-10-02T22:59:42.033Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzo9a92fuvz6a3on/runs":{"post":{"operationId":"run_catalog_gd_mpzo9a92fuvz6a3on","summary":"Run Glossier Product","description":"Collects public product data from www.glossier.com using its shopify interface. Verified 2026-10-02T22:59:41.638Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzrgg5h1eideztqu4/runs":{"post":{"operationId":"run_catalog_gd_mpzrgg5h1eideztqu4","summary":"Run Glowrecipe Product","description":"Collects public product data from www.glowrecipe.com using its shopify interface. Verified 2026-10-02T22:59:42.134Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5ev8bss0xgjtvtw/runs":{"post":{"operationId":"run_catalog_gd_mq5ev8bss0xgjtvtw","summary":"Run Goo Goo Hair Products","description":"Collects public product data from googoohair.com using its shopify interface. Verified 2026-10-02T22:59:42.560Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6hiwkd2ira6m97yf/runs":{"post":{"operationId":"run_catalog_gd_mq6hiwkd2ira6m97yf","summary":"Run GOTRAX Products","description":"Collects public product data from gotrax.com using its shopify interface. Verified 2026-10-02T22:59:42.921Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7725htqzpobjugk/runs":{"post":{"operationId":"run_catalog_gd_mq7725htqzpobjugk","summary":"Run Govee US Products","description":"Collects public product data from us.govee.com using its structured product metadata interface. Verified 2026-10-02T22:59:46.634Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6hjjok1ezaxhriqm/runs":{"post":{"operationId":"run_catalog_gd_mq6hjjok1ezaxhriqm","summary":"Run Grain Wood Furniture Products","description":"Collects public product data from grainwoodfurniture.com using its shopify interface. Verified 2026-10-02T22:59:43.680Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movivgl4tbemmgriu/runs":{"post":{"operationId":"run_catalog_gd_movivgl4tbemmgriu","summary":"Run Greatmats Products","description":"Collects public product data from www.greatmats.com using its structured product metadata interface. Verified 2026-10-02T23:08:02.027Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzefefl1fbx97swmj/runs":{"post":{"operationId":"run_catalog_gd_mpzefefl1fbx97swmj","summary":"Run GreenPan Products","description":"Collects public product data from www.greenpan.us using its shopify interface. Verified 2026-10-02T22:59:44.551Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli30v55hp38vcqie/runs":{"post":{"operationId":"run_catalog_gd_mli30v55hp38vcqie","summary":"Run Greenrow","description":"Collects public product data from www.greenrow.com using its constructor interface. Verified 2026-10-03T09:00:55.670Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwlawcy2odyjmid46/runs":{"post":{"operationId":"run_catalog_gd_mpwlawcy2odyjmid46","summary":"Run Grizzly Industrial Products","description":"Collects public product data from www.grizzly.com using its structured product metadata interface. Verified 2026-10-02T22:59:53.338Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mogx9thmt4szn89a0/runs":{"post":{"operationId":"run_catalog_gd_mogx9thmt4szn89a0","summary":"Run Grocerye Shop Products","description":"Collects public product data from groceryeshop.us using its shopify interface. Verified 2026-10-02T22:59:45.123Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpz7wthv1e4cqofnl9/runs":{"post":{"operationId":"run_catalog_gd_mpz7wthv1e4cqofnl9","summary":"Run Grove Collaborative Products","description":"Collects public product data from www.grove.co using its shopify interface. Verified 2026-10-02T22:59:45.767Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzijwl02l61bn4o9p/runs":{"post":{"operationId":"run_catalog_gd_mpzijwl02l61bn4o9p","summary":"Run Gymshark Product","description":"Collects public product data from www.gymshark.com using its structured product metadata interface. Verified 2026-10-02T22:59:49.064Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vqz92nqnieqgqj/runs":{"post":{"operationId":"run_catalog_gd_mq7vqz92nqnieqgqj","summary":"Run Gymshark US Checkout Products","description":"Collects public product data from us.checkout.gymshark.com using its shopify interface. Verified 2026-10-02T23:00:28.478Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/hm/runs":{"post":{"operationId":"run_hm","summary":"Run H&M","description":"Full H&M catalogue for the UAE or Saudi Arabia — women, men, kids, baby, home, beauty and sport with local prices, category paths, colours, sizes, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"region":{"type":"string","enum":["ae","sa"],"title":"Region","description":"Which H&M store to pull the catalogue from.","default":"ae"}}}}},"example":{"input":{"region":"ae"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj3zcplvlqaki5t/runs":{"post":{"operationId":"run_catalog_gd_movj3zcplvlqaki5t","summary":"Run Hanes Products","description":"Collects public product data from www.hanes.com using its structured product metadata interface. Verified 2026-10-02T23:00:30.801Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzirfn211m79ld9gv/runs":{"post":{"operationId":"run_catalog_gd_mpzirfn211m79ld9gv","summary":"Run Harrys Product","description":"Collects public product data from www.harrys.com using its structured product metadata interface. Verified 2026-10-02T23:00:31.196Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movivqde28kcuxkxs7/runs":{"post":{"operationId":"run_catalog_gd_movivqde28kcuxkxs7","summary":"Run Havenly Products","description":"Collects public product data from havenly.com using its structured product metadata interface. Verified 2026-10-02T23:00:29.754Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7s4miu17n7qylp3u/runs":{"post":{"operationId":"run_catalog_gd_mq7s4miu17n7qylp3u","summary":"Run HBADA Products","description":"Collects public product data from hbada.com using its shopify interface. Verified 2026-10-02T23:07:59.719Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/heavenmayhem/runs":{"post":{"operationId":"run_heavenmayhem","summary":"Run Heavenmayhem","description":"Product catalogue from Heavenmayhem — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/heimat_atlantica/runs":{"post":{"operationId":"run_heimat_atlantica","summary":"Run Heimat Atlantica","description":"Product catalogue from Heimat Atlantica — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhpgrn1nsie31o59/runs":{"post":{"operationId":"run_catalog_gd_molhpgrn1nsie31o59","summary":"Run Helly Hansen Products","description":"Collects public product data from www.hellyhansen.com using its magento interface. Verified 2026-10-03T09:00:55.889Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/hereu/runs":{"post":{"operationId":"run_hereu","summary":"Run Hereu","description":"Product catalogue from Hereu — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmkvuccrqtmd43s4/runs":{"post":{"operationId":"run_catalog_gd_mpmkvuccrqtmd43s4","summary":"Run Herman Miller Products","description":"Collects public product data from store.hermanmiller.com using its structured product metadata interface. Verified 2026-10-02T23:00:31.342Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6hkzft24lcvnd74n/runs":{"post":{"operationId":"run_catalog_gd_mq6hkzft24lcvnd74n","summary":"Run Hiya Health Products","description":"Collects public product data from hiyahealth.com using its shopify interface. Verified 2026-10-02T23:07:59.479Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/homeofhai/runs":{"post":{"operationId":"run_homeofhai","summary":"Run Home of Hai","description":"Product catalogue from Home of Hai — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7s70n91flv74qpty/runs":{"post":{"operationId":"run_catalog_gd_mq7s70n91flv74qpty","summary":"Run Honda Parts Now Products","description":"Collects public product data from www.hondapartsnow.com using its structured product metadata interface. Verified 2026-10-02T23:00:36.131Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6hmgs2qag6sdotg/runs":{"post":{"operationId":"run_catalog_gd_mq6hmgs2qag6sdotg","summary":"Run Honeywell Store Products","description":"Collects public product data from www.honeywellstore.com using its structured product metadata interface. Verified 2026-10-02T23:00:33.293Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motp9ls42372l9jqxx/runs":{"post":{"operationId":"run_catalog_gd_motp9ls42372l9jqxx","summary":"Run Hooga Health Products","description":"Collects public product data from hoogahealth.com using its shopify interface. Verified 2026-10-02T23:00:31.428Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/hunting_season/runs":{"post":{"operationId":"run_hunting_season","summary":"Run Hunting Season","description":"Product catalogue from Hunting Season — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/hvoya/runs":{"post":{"operationId":"run_hvoya","summary":"Run Hvoya","description":"Product catalogue from Hvoya — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ibeliv/runs":{"post":{"operationId":"run_ibeliv","summary":"Run Ibeliv","description":"Product catalogue from Ibeliv — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mou0i8lp23tmcisf5q/runs":{"post":{"operationId":"run_catalog_gd_mou0i8lp23tmcisf5q","summary":"Run iFixit Products","description":"Collects public product data from www.ifixit.com using its structured product metadata interface. Verified 2026-10-02T23:00:34.351Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/imemoi/runs":{"post":{"operationId":"run_imemoi","summary":"Run Imemoi","description":"Product catalogue from Imemoi — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/inoui_editions/runs":{"post":{"operationId":"run_inoui_editions","summary":"Run Inoui Editions","description":"Product catalogue from Inoui Editions — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/intimissimi/runs":{"post":{"operationId":"run_intimissimi","summary":"Run Intimissimi","description":"Product catalogue from Intimissimi — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpv6e5fc2pkpv33tlh/runs":{"post":{"operationId":"run_catalog_gd_mpv6e5fc2pkpv33tlh","summary":"Run Irestore Products","description":"Collects public product data from www.irestorelaser.com using its shopify interface. Verified 2026-10-02T23:00:33.878Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/italic/runs":{"post":{"operationId":"run_italic","summary":"Run Italic","description":"Product catalogue from Italic — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzth9cx1jn9nkfbzq/runs":{"post":{"operationId":"run_catalog_gd_mpzth9cx1jn9nkfbzq","summary":"Run Italic Product","description":"Collects public product data from italic.com using its shopify interface. Verified 2026-10-02T23:00:34.294Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/italist/runs":{"post":{"operationId":"run_italist","summary":"Run Italist","description":"Product catalogue from Italist — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/jcrew/runs":{"post":{"operationId":"run_jcrew","summary":"Run J.Crew","description":"Product catalogue from J.Crew — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6hpa70ov79ff0zw/runs":{"post":{"operationId":"run_catalog_gd_mq6hpa70ov79ff0zw","summary":"Run Japan With Love Store Products","description":"Collects public product data from japanwithlovestore.com using its shopify interface. Verified 2026-10-02T23:00:34.958Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlqssp9b1dy7jw8idh/runs":{"post":{"operationId":"run_catalog_gd_mlqssp9b1dy7jw8idh","summary":"Run Jared Products","description":"Collects public product data from www.jared.com using its structured product metadata interface. Verified 2026-10-02T23:00:44.553Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6f95d52rfuajgwal/runs":{"post":{"operationId":"run_catalog_gd_mq6f95d52rfuajgwal","summary":"Run Jaxxon Products","description":"Collects public product data from www.jaxxon.com using its shopify interface. Verified 2026-10-02T23:00:35.797Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mos9zh502av8wu33tg/runs":{"post":{"operationId":"run_catalog_gd_mos9zh502av8wu33tg","summary":"Run JCPenney Products","description":"Collects public product data from www.jcpenney.com using its structured product metadata interface. Verified 2026-10-02T23:00:43.460Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/jenniferbehr/runs":{"post":{"operationId":"run_jenniferbehr","summary":"Run Jenniferbehr","description":"Product catalogue from Jenniferbehr — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/jimmyfairly/runs":{"post":{"operationId":"run_jimmyfairly","summary":"Run Jimmyfairly","description":"Product catalogue from Jimmyfairly — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6i3lvabrige3vi4/runs":{"post":{"operationId":"run_catalog_gd_mq6i3lvabrige3vi4","summary":"Run JLab Products","description":"Collects public product data from www.jlab.com using its shopify interface. Verified 2026-10-02T23:00:37.441Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosa1igt1jmio0z1f4/runs":{"post":{"operationId":"run_catalog_gd_mosa1igt1jmio0z1f4","summary":"Run Jomashop Products","description":"Collects public product data from www.jomashop.com using its magento interface. Verified 2026-10-03T08:44:36.549Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzuy39i20oxbdfmts/runs":{"post":{"operationId":"run_catalog_gd_mpzuy39i20oxbdfmts","summary":"Run Jonesroadbeauty Product","description":"Collects public product data from www.jonesroadbeauty.com using its shopify interface. Verified 2026-10-02T23:00:37.810Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7sbadl1n1eimz71z/runs":{"post":{"operationId":"run_catalog_gd_mq7sbadl1n1eimz71z","summary":"Run Joybird Products","description":"Collects public product data from joybird.com using its algolia interface. Verified 2026-10-03T09:00:56.254Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/kjacques/runs":{"post":{"operationId":"run_kjacques","summary":"Run K.Jacques","description":"Product catalogue from K.Jacques — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mp9iyv3b1ah8bgyhu6/runs":{"post":{"operationId":"run_catalog_gd_mp9iyv3b1ah8bgyhu6","summary":"Run K&N Filters Products","description":"Collects public product data from www.knfilters.com using its structured product metadata interface. Verified 2026-10-02T23:01:15.285Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli1mkcpyv0ka417s/runs":{"post":{"operationId":"run_catalog_gd_mli1mkcpyv0ka417s","summary":"Run Kay","description":"Collects public product data from www.kay.com using its unbxd interface. Verified 2026-10-03T09:00:56.315Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6i4z3i2mb0ba4vmx/runs":{"post":{"operationId":"run_catalog_gd_mq6i4z3i2mb0ba4vmx","summary":"Run KEEN Footwear Products","description":"Collects public product data from www.keenfootwear.com using its shopify interface. Verified 2026-10-02T23:01:12.616Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6i7t0ftjg78z08i/runs":{"post":{"operationId":"run_catalog_gd_mq6i7t0ftjg78z08i","summary":"Run Keychron Products","description":"Collects public product data from www.keychron.com using its shopify interface. Verified 2026-10-02T23:01:12.852Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj32tt15skmjtvqb/runs":{"post":{"operationId":"run_catalog_gd_movj32tt15skmjtvqb","summary":"Run Kirklands Products","description":"Collects public product data from www.kirklands.com using its bloomreach interface. Verified 2026-10-03T09:00:56.320Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhizfr1ap9iimr8g/runs":{"post":{"operationId":"run_catalog_gd_molhizfr1ap9iimr8g","summary":"Run Kitchen Aid Products","description":"Collects public product data from www.kitchenaid.com using its structured product metadata interface. Verified 2026-10-02T23:01:18.397Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzqqz6z1vkcs3y3vw/runs":{"post":{"operationId":"run_catalog_gd_mpzqqz6z1vkcs3y3vw","summary":"Run Kith Product","description":"Collects public product data from kith.com using its shopify interface. Verified 2026-10-02T23:01:13.768Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzv5tpi1juf3qd6eu/runs":{"post":{"operationId":"run_catalog_gd_mpzv5tpi1juf3qd6eu","summary":"Run Kosas Product","description":"Collects public product data from kosas.com using its shopify interface. Verified 2026-10-02T23:01:14.412Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/kujten/runs":{"post":{"operationId":"run_kujten","summary":"Run Kujten","description":"Product catalogue from Kujten — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzogzdn27av6qfa57/runs":{"post":{"operationId":"run_catalog_gd_mpzogzdn27av6qfa57","summary":"Run Kyliecosmetics Product","description":"Collects public product data from kyliecosmetics.com using its shopify interface. Verified 2026-10-02T23:01:14.828Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/la_doublej/runs":{"post":{"operationId":"run_la_doublej","summary":"Run La DoubleJ","description":"Product catalogue from La DoubleJ — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/la_veste/runs":{"post":{"operationId":"run_la_veste","summary":"Run La Veste","description":"Product catalogue from La Veste — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lg0nhuxkvxagfannn/runs":{"post":{"operationId":"run_catalog_gd_lg0nhuxkvxagfannn","summary":"Run La-z-boy.com - Products","description":"Collects public product data from www.la-z-boy.com using its structured product metadata interface. Verified 2026-10-02T23:10:31.400Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/lachoix/runs":{"post":{"operationId":"run_lachoix","summary":"Run Lachoix","description":"Product catalogue from Lachoix — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/lackofcolor/runs":{"post":{"operationId":"run_lackofcolor","summary":"Run Lackofcolor","description":"Product catalogue from Lackofcolor — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwonodl1bdm7ajma/runs":{"post":{"operationId":"run_catalog_gd_mpwonodl1bdm7ajma","summary":"Run Lakeshore Learning Products","description":"Collects public product data from www.lakeshorelearning.com using its structured product metadata interface. Verified 2026-10-02T23:01:19.063Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7sc0nu120t8pc90m/runs":{"post":{"operationId":"run_catalog_gd_mq7sc0nu120t8pc90m","summary":"Run LandAirSea Products","description":"Collects public product data from www.landairsea.com using its shopify interface. Verified 2026-10-02T23:01:16.669Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7spm3k5vo2iz8yr/runs":{"post":{"operationId":"run_catalog_gd_mq7spm3k5vo2iz8yr","summary":"Run Lasfit Products","description":"Collects public product data from www.lasfit.com using its shopify interface. Verified 2026-10-02T23:08:00.238Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/laurencebras/runs":{"post":{"operationId":"run_laurencebras","summary":"Run Laurencebras","description":"Product catalogue from Laurencebras — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6im2jf1savwp0f1e/runs":{"post":{"operationId":"run_catalog_gd_mq6im2jf1savwp0f1e","summary":"Run League Outfitters Products","description":"Collects public product data from www.leagueoutfitters.com using its shopify interface. Verified 2026-10-02T23:08:00.243Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6ims2h25gzwy46d1/runs":{"post":{"operationId":"run_catalog_gd_mq6ims2h25gzwy46d1","summary":"Run Lectric eBikes Products","description":"Collects public product data from lectricebikes.com using its shopify interface. Verified 2026-10-02T23:01:18.363Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrulhu291ouz497jy9/runs":{"post":{"operationId":"run_catalog_gd_mrulhu291ouz497jy9","summary":"Run Leesa Product","description":"Collects public product data from www.leesa.com using its structured product metadata interface. Verified 2026-10-02T23:01:22.447Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/leletny/runs":{"post":{"operationId":"run_leletny","summary":"Run Leletny","description":"Product catalogue from Leletny — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6inh0gw2lyleyis/runs":{"post":{"operationId":"run_catalog_gd_mq6inh0gw2lyleyis","summary":"Run Lenon Lures Products","description":"Collects public product data from www.lenonlures.com using its shopify interface. Verified 2026-10-02T23:01:18.366Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlf1fywqjstgnzsxc/runs":{"post":{"operationId":"run_catalog_gd_mlf1fywqjstgnzsxc","summary":"Run Lenovo Products","description":"Collects public product data from www.lenovo.com using its structured product metadata interface. Verified 2026-10-02T23:10:33.695Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzcln3mqnjg8thfl/runs":{"post":{"operationId":"run_catalog_gd_mpzcln3mqnjg8thfl","summary":"Run LensCrafters Products","description":"Collects public product data from www.lenscrafters.com using its algolia interface. Verified 2026-10-03T09:00:56.366Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/leoetviolette/runs":{"post":{"operationId":"run_leoetviolette","summary":"Run Leoetviolette","description":"Product catalogue from Leoetviolette — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/leset/runs":{"post":{"operationId":"run_leset","summary":"Run Leset","description":"Product catalogue from Leset — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/lespecs/runs":{"post":{"operationId":"run_lespecs","summary":"Run Lespecs","description":"Product catalogue from Lespecs — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6iou00cuvbueaou/runs":{"post":{"operationId":"run_catalog_gd_mq6iou00cuvbueaou","summary":"Run LEUCHTTURM1917 US Products","description":"Collects public product data from www.leuchtturm1917.us using its shopify interface. Verified 2026-10-02T23:01:19.094Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mou0gy7322kh7etn1x/runs":{"post":{"operationId":"run_catalog_gd_mou0gy7322kh7etn1x","summary":"Run Levoit Products","description":"Collects public product data from levoit.com using its shopify interface. Verified 2026-10-02T23:01:19.735Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwlrj1l2pckf7ii4m/runs":{"post":{"operationId":"run_catalog_gd_mpwlrj1l2pckf7ii4m","summary":"Run LG Parts Products","description":"Collects public product data from lgparts.com using its shopify interface. Verified 2026-10-02T23:01:19.691Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm27jcwxgfzw6lywc/runs":{"post":{"operationId":"run_catalog_gd_mm27jcwxgfzw6lywc","summary":"Run LG Products","description":"Collects public product data from www.lg.com using its structured product metadata interface. Verified 2026-10-02T23:10:32.647Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/lie_studio/runs":{"post":{"operationId":"run_lie_studio","summary":"Run Lie Studio","description":"Product catalogue from Lie Studio — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/liffner/runs":{"post":{"operationId":"run_liffner","summary":"Run Liffner","description":"Product catalogue from Liffner — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhlsbgp4qtqnchs/runs":{"post":{"operationId":"run_catalog_gd_molhlsbgp4qtqnchs","summary":"Run Light In The Box Products","description":"Collects public product data from www.lightinthebox.com using its structured product metadata interface. Verified 2026-10-02T23:01:22.387Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mou0euig1jmmga5jh1/runs":{"post":{"operationId":"run_catalog_gd_mou0euig1jmmga5jh1","summary":"Run Lights Daddy Products","description":"Collects public product data from www.lightsdaddy.com using its shopify interface. Verified 2026-10-02T23:01:20.507Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/lilysilk/runs":{"post":{"operationId":"run_lilysilk","summary":"Run LilySilk","description":"Product catalogue from LilySilk — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/loeffler_randall/runs":{"post":{"operationId":"run_loeffler_randall","summary":"Run Loeffler Randall","description":"Product catalogue from Loeffler Randall — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwct80413tzjax6d7/runs":{"post":{"operationId":"run_catalog_gd_mpwct80413tzjax6d7","summary":"Run Logitech G Products","description":"Collects public product data from www.logitechg.com using its structured product metadata interface. Verified 2026-10-02T23:01:47.823Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motp8gzdjmavhq28h/runs":{"post":{"operationId":"run_catalog_gd_motp8gzdjmavhq28h","summary":"Run Logitech Products","description":"Collects public product data from www.logitech.com using its structured product metadata interface. Verified 2026-10-02T23:01:48.236Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/louis_vuitton/runs":{"post":{"operationId":"run_louis_vuitton","summary":"Run Louis Vuitton","description":"Product catalogue from Louis Vuitton — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/loulou_de_saison/runs":{"post":{"operationId":"run_loulou_de_saison","summary":"Run Loulou De Saison","description":"Product catalogue from Loulou De Saison — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/luisaviaroma/runs":{"post":{"operationId":"run_luisaviaroma","summary":"Run LuisaViaRoma","description":"Product catalogue from LuisaViaRoma — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6iv713g9jgsztv7/runs":{"post":{"operationId":"run_catalog_gd_mq6iv713g9jgsztv7","summary":"Run Lulu and Georgia Products","description":"Collects public product data from www.luluandgeorgia.com using its shopify interface. Verified 2026-10-02T23:01:44.050Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mobd6ajc1m3m5p9cv9/runs":{"post":{"operationId":"run_catalog_gd_mobd6ajc1m3m5p9cv9","summary":"Run Lulus Products","description":"Collects public product data from www.lulus.com using its structured product metadata interface. Verified 2026-10-02T23:01:46.288Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6iwmco289phesxm3/runs":{"post":{"operationId":"run_catalog_gd_mq6iwmco289phesxm3","summary":"Run Luna Furniture Products","description":"Collects public product data from www.lunafurn.com using its shopify interface. Verified 2026-10-02T23:01:44.585Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6oud4u13xxi5nl0i/runs":{"post":{"operationId":"run_catalog_gd_mq6oud4u13xxi5nl0i","summary":"Run Luvme Hair Products","description":"Collects public product data from www.luvmehair.com using its shopify interface. Verified 2026-10-02T23:01:45.027Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmk3u0jxgxe72b3l/runs":{"post":{"operationId":"run_catalog_gd_mpmk3u0jxgxe72b3l","summary":"Run Mac Cosmetics Products","description":"Collects public product data from www.maccosmetics.com using its shopify interface. Verified 2026-10-02T23:08:00.683Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzt0wu813qciubm5m/runs":{"post":{"operationId":"run_catalog_gd_mpzt0wu813qciubm5m","summary":"Run Mackweldon Product","description":"Collects public product data from www.mackweldon.com using its shopify interface. Verified 2026-10-02T23:01:45.526Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6iy1h42ant2h2pah/runs":{"post":{"operationId":"run_catalog_gd_mq6iy1h42ant2h2pah","summary":"Run Made In Cookware Products","description":"Collects public product data from madeincookware.com using its structured product metadata interface. Verified 2026-10-02T23:01:52.352Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/madewell/runs":{"post":{"operationId":"run_madewell","summary":"Run Madewell","description":"Product catalogue from Madewell — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhmchl4sjlxakw/runs":{"post":{"operationId":"run_catalog_gd_molhmchl4sjlxakw","summary":"Run Madewell Products","description":"Collects public product data from www.madewell.com using its structured product metadata interface. Verified 2026-10-02T23:10:41.703Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrul05wf10hz7njbps/runs":{"post":{"operationId":"run_catalog_gd_mrul05wf10hz7njbps","summary":"Run Madhappy Product","description":"Collects public product data from www.madhappy.com using its shopify interface. Verified 2026-10-02T23:01:46.345Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/maeden/runs":{"post":{"operationId":"run_maeden","summary":"Run Maeden","description":"Product catalogue from Maeden — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6izd1t1coihfdqde/runs":{"post":{"operationId":"run_catalog_gd_mq6izd1t1coihfdqde","summary":"Run MagnaFlow Products","description":"Collects public product data from www.magnaflow.com using its shopify interface. Verified 2026-10-02T23:01:46.945Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6jcwsdnvl0y3e19/runs":{"post":{"operationId":"run_catalog_gd_mq6jcwsdnvl0y3e19","summary":"Run Magnolia Products","description":"Collects public product data from magnolia.com using its shopify interface. Verified 2026-10-02T23:01:47.100Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/malfroy/runs":{"post":{"operationId":"run_malfroy","summary":"Run Malfroy","description":"Product catalogue from Malfroy — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/mama_praia/runs":{"post":{"operationId":"run_mama_praia","summary":"Run Mama Praia","description":"Product catalogue from Mama Praia — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/mango/runs":{"post":{"operationId":"run_mango","summary":"Run Mango","description":"Womenswear catalogue from Mango — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/manoush/runs":{"post":{"operationId":"run_manoush","summary":"Run Manoush","description":"Product catalogue from Manoush — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mr0kafajl9aok7dn6/runs":{"post":{"operationId":"run_catalog_gd_mr0kafajl9aok7dn6","summary":"Run Manscaped Product","description":"Collects public product data from www.manscaped.com using its structured product metadata interface. Verified 2026-10-02T23:01:48.147Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/mansur_gavriel/runs":{"post":{"operationId":"run_mansur_gavriel","summary":"Run Mansur Gavriel","description":"Product catalogue from Mansur Gavriel — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/manu_atelier/runs":{"post":{"operationId":"run_manu_atelier","summary":"Run Manu Atelier","description":"Product catalogue from Manu Atelier — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/mapache/runs":{"post":{"operationId":"run_mapache","summary":"Run Mapache","description":"Product catalogue from Mapache — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6je7bo1yq64sn4y4/runs":{"post":{"operationId":"run_catalog_gd_mq6je7bo1yq64sn4y4","summary":"Run MAPerformance Products","description":"Collects public product data from www.maperformance.com using its shopify interface. Verified 2026-10-02T23:08:00.676Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/marialarosa/runs":{"post":{"operationId":"run_marialarosa","summary":"Run Marialarosa","description":"Product catalogue from Marialarosa — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzscg5p13838xibhd/runs":{"post":{"operationId":"run_catalog_gd_mpzscg5p13838xibhd","summary":"Run Marinelayer Product","description":"Collects public product data from www.marinelayer.com using its shopify interface. Verified 2026-10-02T23:01:47.421Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli3cxqr2mwe2wlnqb/runs":{"post":{"operationId":"run_catalog_gd_mli3cxqr2mwe2wlnqb","summary":"Run Markandgraham products","description":"Collects public product data from www.markandgraham.com using its constructor interface. Verified 2026-10-03T09:00:56.401Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6jewtw8dbq1zc7u/runs":{"post":{"operationId":"run_catalog_gd_mq6jewtw8dbq1zc7u","summary":"Run Marmot Products","description":"Collects public product data from www.marmot.com using its structured product metadata interface. Verified 2026-10-02T23:01:51.660Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6jgkwk3zq2ywsew/runs":{"post":{"operationId":"run_catalog_gd_mq6jgkwk3zq2ywsew","summary":"Run MaryRuth Organics Products","description":"Collects public product data from www.maryruthorganics.com using its shopify interface. Verified 2026-10-02T23:01:48.694Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/massimodutti/runs":{"post":{"operationId":"run_massimodutti","summary":"Run Massimo Dutti","description":"Product catalogue from Massimo Dutti — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/matteau/runs":{"post":{"operationId":"run_matteau","summary":"Run Matteau","description":"Product catalogue from Matteau — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6jha3i2bt4beu4at/runs":{"post":{"operationId":"run_catalog_gd_mq6jha3i2bt4beu4at","summary":"Run Maxi-Cosi Products","description":"Collects public product data from www.maxicosi.com using its shopify interface. Verified 2026-10-02T23:01:49.384Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpz8ms1iqg0fbaw8l/runs":{"post":{"operationId":"run_catalog_gd_mpz8ms1iqg0fbaw8l","summary":"Run McGrocer Products","description":"Collects public product data from mcgrocer.com using its structured product metadata interface. Verified 2026-10-02T23:01:51.763Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpz8nfsr1ub30air5y/runs":{"post":{"operationId":"run_catalog_gd_mpz8nfsr1ub30air5y","summary":"Run MechanicalKeyboards Products","description":"Collects public product data from mechanicalkeyboards.com using its shopify interface. Verified 2026-10-02T23:01:51.056Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6jwj6dwzi62dgud/runs":{"post":{"operationId":"run_catalog_gd_mq6jwj6dwzi62dgud","summary":"Run Medicube US Products","description":"Collects public product data from medicube.us using its shopify interface. Verified 2026-10-02T23:01:51.022Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosh8cq11c576gpo0v/runs":{"post":{"operationId":"run_catalog_gd_mosh8cq11c576gpo0v","summary":"Run Megelin Products","description":"Collects public product data from www.megelin.com using its shopify interface. Verified 2026-10-02T23:01:51.554Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/meher_kakalia/runs":{"post":{"operationId":"run_meher_kakalia","summary":"Run Meher Kakalia","description":"Product catalogue from Meher Kakalia — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6jygomirtbzn36x/runs":{"post":{"operationId":"run_catalog_gd_mq6jygomirtbzn36x","summary":"Run Merach Fit Products","description":"Collects public product data from merachfit.com using its shopify interface. Verified 2026-10-02T23:01:52.201Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/merlettenyc/runs":{"post":{"operationId":"run_merlettenyc","summary":"Run Merlettenyc","description":"Product catalogue from Merlettenyc — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpztx22526gv7jvkrx/runs":{"post":{"operationId":"run_catalog_gd_mpztx22526gv7jvkrx","summary":"Run Mgemi Product","description":"Collects public product data from mgemi.com using its shopify interface. Verified 2026-10-02T23:02:20.597Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq3hpc2d9c9dgphdz/runs":{"post":{"operationId":"run_catalog_gd_mq3hpc2d9c9dgphdz","summary":"Run Micro Ingredients Products","description":"Collects public product data from microingredients.com using its shopify interface. Verified 2026-10-02T23:02:20.537Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhdfmhm86pwm2j9/runs":{"post":{"operationId":"run_catalog_gd_molhdfmhm86pwm2j9","summary":"Run Microsoft Products","description":"Collects public product data from www.microsoft.com using its structured product metadata interface. Verified 2026-10-02T23:02:28.310Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzmrd1m18m3bpvxmg/runs":{"post":{"operationId":"run_catalog_gd_mpzmrd1m18m3bpvxmg","summary":"Run Microsoft Store Product","description":"Collects public product data from www.microsoft.com using its structured product metadata interface. Verified 2026-10-02T23:02:27.962Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhl89q1z8u3mp771/runs":{"post":{"operationId":"run_catalog_gd_molhl89q1z8u3mp771","summary":"Run Midway USA Products","description":"Collects public product data from www.midwayusa.com using its algolia interface. Verified 2026-10-03T09:00:56.409Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7sr4px1dme7eakn5/runs":{"post":{"operationId":"run_catalog_gd_mq7sr4px1dme7eakn5","summary":"Run Mielle Organics Products","description":"Collects public product data from mielleorganics.com using its shopify interface. Verified 2026-10-02T23:02:20.702Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/milaner/runs":{"post":{"operationId":"run_milaner","summary":"Run Milaner","description":"Product catalogue from Milaner — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzrf2c527887dssu7/runs":{"post":{"operationId":"run_catalog_gd_mpzrf2c527887dssu7","summary":"Run Milkmakeup Product","description":"Collects public product data from milkmakeup.com using its shopify interface. Verified 2026-10-02T23:02:20.468Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7uubx52ot1srdaw4/runs":{"post":{"operationId":"run_catalog_gd_mq7uubx52ot1srdaw4","summary":"Run Minisforum Store Products","description":"Collects public product data from store.minisforum.com using its shopify interface. Verified 2026-10-02T23:02:20.827Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzuck8e2psc1p4o85/runs":{"post":{"operationId":"run_catalog_gd_mpzuck8e2psc1p4o85","summary":"Run Ministryofsupply Product","description":"Collects public product data from www.ministryofsupply.com using its shopify interface. Verified 2026-10-02T23:02:20.682Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6k05wr1qs7y0h5l2/runs":{"post":{"operationId":"run_catalog_gd_mq6k05wr1qs7y0h5l2","summary":"Run Mishimoto Products","description":"Collects public product data from www.mishimoto.com using its structured product metadata interface. Verified 2026-10-02T23:02:25.520Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6k127b2dwc8aywfr/runs":{"post":{"operationId":"run_catalog_gd_mq6k127b2dwc8aywfr","summary":"Run MissAcc Products","description":"Collects public product data from www.missacc.com using its structured product metadata interface. Verified 2026-10-02T23:10:46.575Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7srw0st1o1484zq/runs":{"post":{"operationId":"run_catalog_gd_mq7srw0st1o1484zq","summary":"Run Mito Red Light Products","description":"Collects public product data from mitoredlight.com using its shopify interface. Verified 2026-10-02T23:02:21.305Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/modaoperandi/runs":{"post":{"operationId":"run_modaoperandi","summary":"Run Moda Operandi","description":"Product catalogue from Moda Operandi — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6k1rz61ey56oqp22/runs":{"post":{"operationId":"run_catalog_gd_mq6k1rz61ey56oqp22","summary":"Run Momcozy Products","description":"Collects public product data from momcozy.com using its shopify interface. Verified 2026-10-02T23:02:21.566Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movint36pmr53g9/runs":{"post":{"operationId":"run_catalog_gd_movint36pmr53g9","summary":"Run Monoprice Products","description":"Collects public product data from www.monoprice.com using its unbxd interface. Verified 2026-10-03T09:00:56.631Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kfd6a161usolnpr/runs":{"post":{"operationId":"run_catalog_gd_mq6kfd6a161usolnpr","summary":"Run Monos Products","description":"Collects public product data from monos.com using its shopify interface. Verified 2026-10-02T23:02:21.685Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpxsxmvq14o0i93ho2/runs":{"post":{"operationId":"run_catalog_gd_mpxsxmvq14o0i93ho2","summary":"Run Moroccanoil Products","description":"Collects public product data from www.moroccanoil.com using its shopify interface. Verified 2026-10-02T23:02:22.122Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj2jar1dlod0mv8h/runs":{"post":{"operationId":"run_catalog_gd_movj2jar1dlod0mv8h","summary":"Run MotoSport Products","description":"Collects public product data from www.motosport.com using its unbxd interface. Verified 2026-10-03T09:00:56.644Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lh7rh0d12qkaid87e1/runs":{"post":{"operationId":"run_catalog_gd_lh7rh0d12qkaid87e1","summary":"Run Moynat.com - Products","description":"Collects public product data from www.moynat.com using its shopify interface. Verified 2026-10-02T23:02:24.194Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpz9dqczlvlxk5fqe/runs":{"post":{"operationId":"run_catalog_gd_mpz9dqczlvlxk5fqe","summary":"Run MUJI USA Products","description":"Collects public product data from www.muji.us using its shopify interface. Verified 2026-10-02T23:02:25.640Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmkmatj2hrrdd15uf/runs":{"post":{"operationId":"run_catalog_gd_mpmkmatj2hrrdd15uf","summary":"Run Muscle And Strength Products","description":"Collects public product data from www.muscleandstrength.com using its structured product metadata interface. Verified 2026-10-02T23:10:50.488Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhg1k11b99sd45nc/runs":{"post":{"operationId":"run_catalog_gd_molhg1k11b99sd45nc","summary":"Run Musicians Friend Products","description":"Collects public product data from www.musiciansfriend.com using its algolia interface. Verified 2026-10-03T09:00:56.669Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/muun/runs":{"post":{"operationId":"run_muun","summary":"Run Muun","description":"Bag catalogue from Muun — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/my_theresa/runs":{"post":{"operationId":"run_my_theresa","summary":"Run Mytheresa","description":"Product catalogue from Mytheresa — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/naguisa/runs":{"post":{"operationId":"run_naguisa","summary":"Run Naguisa","description":"Product catalogue from Naguisa — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7stnc8m2gmnvj6u/runs":{"post":{"operationId":"run_catalog_gd_mq7stnc8m2gmnvj6u","summary":"Run Naked Nutrition Products","description":"Collects public product data from nakednutrition.com using its shopify interface. Verified 2026-10-02T23:02:26.473Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kguwz2pxiv8pgpm/runs":{"post":{"operationId":"run_catalog_gd_mq6kguwz2pxiv8pgpm","summary":"Run Nathan James Products","description":"Collects public product data from nathanjames.com using its shopify interface. Verified 2026-10-02T23:02:27.184Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzqrns28t68n6go5/runs":{"post":{"operationId":"run_catalog_gd_mpzqrns28t68n6go5","summary":"Run Nativecos Product","description":"Collects public product data from www.nativecos.com using its shopify interface. Verified 2026-10-02T23:02:27.286Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm7vvcyc29vj6rg93j/runs":{"post":{"operationId":"run_catalog_gd_mm7vvcyc29vj6rg93j","summary":"Run Nature Made Products","description":"Collects public product data from www.naturemade.com using its shopify interface. Verified 2026-10-02T23:02:27.969Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7sudwkhg48gfdmi/runs":{"post":{"operationId":"run_catalog_gd_mq7sudwkhg48gfdmi","summary":"Run Naturepedic Products","description":"Collects public product data from www.naturepedic.com using its shopify interface. Verified 2026-10-02T23:02:28.111Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm9bmmhmh4nkcx4zd/runs":{"post":{"operationId":"run_catalog_gd_mm9bmmhmh4nkcx4zd","summary":"Run Naturium Products","description":"Collects public product data from naturium.com using its shopify interface. Verified 2026-10-02T23:02:28.381Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kibpr20o0xeh4bw/runs":{"post":{"operationId":"run_catalog_gd_mq6kibpr20o0xeh4bw","summary":"Run Neewer Products","description":"Collects public product data from neewer.com using its shopify interface. Verified 2026-10-02T23:02:29.591Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/net_a_porter/runs":{"post":{"operationId":"run_net_a_porter","summary":"Run Net-A-Porter","description":"Product catalogue from Net-A-Porter — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kj1fr1uxxakn9k2/runs":{"post":{"operationId":"run_catalog_gd_mq6kj1fr1uxxakn9k2","summary":"Run Neurogan Health Products","description":"Collects public product data from neurogan.com using its shopify interface. Verified 2026-10-02T23:03:20.069Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli3hbii1ohg8valws/runs":{"post":{"operationId":"run_catalog_gd_mli3hbii1ohg8valws","summary":"Run Newbalance products","description":"Collects public product data from www.newbalance.com using its algolia interface. Verified 2026-10-03T09:00:56.721Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrulc25s8wsju1zav/runs":{"post":{"operationId":"run_catalog_gd_mrulc25s8wsju1zav","summary":"Run Next UK Product","description":"Collects public product data from www.next.co.uk using its bloomreach interface. Verified 2026-10-03T09:00:56.733Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwls7ai2jxx5yekxh/runs":{"post":{"operationId":"run_catalog_gd_mpwls7ai2jxx5yekxh","summary":"Run Next US Products","description":"Collects public product data from www.next.us using its bloomreach interface. Verified 2026-10-03T09:00:57.106Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwooz6r1o8etk1gbs/runs":{"post":{"operationId":"run_catalog_gd_mpwooz6r1o8etk1gbs","summary":"Run Nikon USA Products","description":"Collects public product data from www.nikonusa.com using its structured product metadata interface. Verified 2026-10-02T23:03:26.175Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kjqwo289xq6jov6/runs":{"post":{"operationId":"run_catalog_gd_mq6kjqwo289xq6jov6","summary":"Run Nilight Products","description":"Collects public product data from www.nilight.com using its shopify interface. Verified 2026-10-02T23:03:20.116Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kxb88j6cm1tqud/runs":{"post":{"operationId":"run_catalog_gd_mq6kxb88j6cm1tqud","summary":"Run Nomad Goods Products","description":"Collects public product data from nomadgoods.com using its structured product metadata interface. Verified 2026-10-02T23:03:24.075Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mou0hzd22qb2zagvda/runs":{"post":{"operationId":"run_catalog_gd_mou0hzd22qb2zagvda","summary":"Run Nordic Store Products","description":"Collects public product data from www.nordicstore.net using its shopify interface. Verified 2026-10-02T23:03:20.864Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7sv5oo1gxahqqv8i/runs":{"post":{"operationId":"run_catalog_gd_mq7sv5oo1gxahqqv8i","summary":"Run Nordica Sauna Products","description":"Collects public product data from saunakits.com using its shopify interface. Verified 2026-10-02T23:03:20.623Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kypsr2pqqo4y05i/runs":{"post":{"operationId":"run_catalog_gd_mq6kypsr2pqqo4y05i","summary":"Run Nutricost Products","description":"Collects public product data from nutricost.com using its shopify interface. Verified 2026-10-02T23:03:22.232Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpza3zjf2me73143b8/runs":{"post":{"operationId":"run_catalog_gd_mpza3zjf2me73143b8","summary":"Run NZXT Products","description":"Collects public product data from nzxt.com using its shopify interface. Verified 2026-10-02T23:03:22.801Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6kzgv620sg0uezyg/runs":{"post":{"operationId":"run_catalog_gd_mq6kzgv620sg0uezyg","summary":"Run Oakcha Products","description":"Collects public product data from oakcha.com using its shopify interface. Verified 2026-10-02T23:03:23.088Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6l0e1o9qj2bpixm/runs":{"post":{"operationId":"run_catalog_gd_mq6l0e1o9qj2bpixm","summary":"Run OfficeCrave Products","description":"Collects public product data from www.officecrave.com using its algolia interface. Verified 2026-10-03T09:00:57.179Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwm1dy91oybzlrwkb/runs":{"post":{"operationId":"run_catalog_gd_mpwm1dy91oybzlrwkb","summary":"Run OfficeSupply Products","description":"Collects public product data from www.officesupply.com using its bloomreach interface. Verified 2026-10-03T09:00:57.202Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vrr81ep4w6t6g0/runs":{"post":{"operationId":"run_catalog_gd_mq7vrr81ep4w6t6g0","summary":"Run Oh Polly US Products","description":"Collects public product data from www.ohpolly.com using its shopify interface. Verified 2026-10-02T23:03:24.434Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq772v6o4rjj1o2h5/runs":{"post":{"operationId":"run_catalog_gd_mq772v6o4rjj1o2h5","summary":"Run Oil Perfumery US Products","description":"Collects public product data from us.oilperfumery.com using its shopify interface. Verified 2026-10-02T23:03:24.334Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6l1v15bg1rb3cgf/runs":{"post":{"operationId":"run_catalog_gd_mq6l1v15bg1rb3cgf","summary":"Run Olaplex Products","description":"Collects public product data from olaplex.com using its structured product metadata interface. Verified 2026-10-02T23:03:26.243Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpxszow3m0k6p8whc/runs":{"post":{"operationId":"run_catalog_gd_mpxszow3m0k6p8whc","summary":"Run Omnilux LED Products","description":"Collects public product data from omniluxled.com using its shopify interface. Verified 2026-10-02T23:03:25.306Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6m89jo10o05te7dk/runs":{"post":{"operationId":"run_catalog_gd_mq6m89jo10o05te7dk","summary":"Run OptiContacts Products","description":"Collects public product data from www.opticontacts.com using its structured product metadata interface. Verified 2026-10-02T23:03:30.595Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7svybdk3ncnq24p/runs":{"post":{"operationId":"run_catalog_gd_mq7svybdk3ncnq24p","summary":"Run Orgain Products","description":"Collects public product data from orgain.com using its shopify interface. Verified 2026-10-02T23:03:26.614Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7t9lg52i38gri9v/runs":{"post":{"operationId":"run_catalog_gd_mq7t9lg52i38gri9v","summary":"Run Orthofeet Products","description":"Collects public product data from www.orthofeet.com using its shopify interface. Verified 2026-10-02T23:03:26.782Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7tadc413c4e2rnf0/runs":{"post":{"operationId":"run_catalog_gd_mq7tadc413c4e2rnf0","summary":"Run OtterBox Products","description":"Collects public product data from www.otterbox.com using its shopify interface. Verified 2026-10-02T23:03:26.787Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpxt9wwu15z6a6cxhg/runs":{"post":{"operationId":"run_catalog_gd_mpxt9wwu15z6a6cxhg","summary":"Run Ottocast Products","description":"Collects public product data from www.ottocast.com using its shopify interface. Verified 2026-10-02T23:03:27.305Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm7twrnx9wmzj5qp9/runs":{"post":{"operationId":"run_catalog_gd_mm7twrnx9wmzj5qp9","summary":"Run OUAI Products","description":"Collects public product data from theouai.com using its shopify interface. Verified 2026-10-02T23:03:27.516Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5eb08qsqyr66fqr/runs":{"post":{"operationId":"run_catalog_gd_mq5eb08qsqyr66fqr","summary":"Run Our Place Products","description":"Collects public product data from fromourplace.com using its shopify interface. Verified 2026-10-02T23:03:27.549Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrulnp3b2jsbfjk4z/runs":{"post":{"operationId":"run_catalog_gd_mrulnp3b2jsbfjk4z","summary":"Run Outdoor Voices Product","description":"Collects public product data from www.outdoorvoices.com using its shopify interface. Verified 2026-10-02T23:03:28.052Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq54qhc1rje4nvyam/runs":{"post":{"operationId":"run_catalog_gd_mq54qhc1rje4nvyam","summary":"Run OutdoorMaster Products","description":"Collects public product data from www.outdoormaster.com using its shopify interface. Verified 2026-10-02T23:03:29.076Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6mb5861xlj50eomh/runs":{"post":{"operationId":"run_catalog_gd_mq6mb5861xlj50eomh","summary":"Run Paper Source Products","description":"Collects public product data from www.papersource.com using its shopify interface. Verified 2026-10-02T23:03:49.662Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movixr0oa6ypdgauo/runs":{"post":{"operationId":"run_catalog_gd_movixr0oa6ypdgauo","summary":"Run Parts Express Products","description":"Collects public product data from www.parts-express.com using its searchspring interface. Verified 2026-10-03T09:00:57.215Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mobdomi0if3sn8wwc/runs":{"post":{"operationId":"run_catalog_gd_mobdomi0if3sn8wwc","summary":"Run Patagonia Products","description":"Collects public product data from www.patagonia.com using its bloomreach interface. Verified 2026-10-03T09:00:57.222Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6mckot1mdu5ei4ye/runs":{"post":{"operationId":"run_catalog_gd_mq6mckot1mdu5ei4ye","summary":"Run Pattern Beauty Products","description":"Collects public product data from patternbeauty.com using its shopify interface. Verified 2026-10-02T23:03:49.714Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm36ne4l107llittc7/runs":{"post":{"operationId":"run_catalog_gd_mm36ne4l107llittc7","summary":"Run Paula's Choice Products","description":"Collects public product data from www.paulaschoice.com using its structured product metadata interface. Verified 2026-10-02T23:11:08.361Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6mrmvp2n8qe7gbg4/runs":{"post":{"operationId":"run_catalog_gd_mq6mrmvp2n8qe7gbg4","summary":"Run Peepers Products","description":"Collects public product data from www.peepers.com using its shopify interface. Verified 2026-10-02T23:03:49.811Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlqtksqswoax7umfc/runs":{"post":{"operationId":"run_catalog_gd_mlqtksqswoax7umfc","summary":"Run Peoples Jewellers products","description":"Collects public product data from www.peoplesjewellers.com using its structured product metadata interface. Verified 2026-10-02T23:11:14.171Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7mt6vm1ru1g94bw/runs":{"post":{"operationId":"run_catalog_gd_mq7mt6vm1ru1g94bw","summary":"Run Peppermayo US Products","description":"Collects public product data from us.peppermayo.com using its shopify interface. Verified 2026-10-02T23:03:50.379Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwm21xi2lwedsaao3/runs":{"post":{"operationId":"run_catalog_gd_mpwm21xi2lwedsaao3","summary":"Run Performance Bike Products","description":"Collects public product data from www.performancebike.com using its bloomreach interface. Verified 2026-10-03T09:00:57.281Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6mt29894vwh3v8j/runs":{"post":{"operationId":"run_catalog_gd_mq6mt29894vwh3v8j","summary":"Run Petal & Pup Products","description":"Collects public product data from petalandpup.com using its shopify interface. Verified 2026-10-02T23:03:50.701Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/petite_plume/runs":{"post":{"operationId":"run_petite_plume","summary":"Run Petite Plume","description":"Product catalogue from Petite Plume — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mp9iwgxkmb8ntnk2p/runs":{"post":{"operationId":"run_catalog_gd_mp9iwgxkmb8ntnk2p","summary":"Run PetSafe Products","description":"Collects public product data from www.petsafe.com using its structured product metadata interface. Verified 2026-10-02T23:03:54.906Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj3cvr24k1tulfwc/runs":{"post":{"operationId":"run_catalog_gd_movj3cvr24k1tulfwc","summary":"Run PGA Tour Superstore Products","description":"Collects public product data from www.pgatoursuperstore.com using its structured product metadata interface. Verified 2026-10-02T23:03:56.424Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6murn81n15k6bvpe/runs":{"post":{"operationId":"run_catalog_gd_mq6murn81n15k6bvpe","summary":"Run Pickleball Central Products","description":"Collects public product data from pickleballcentral.com using its searchspring interface. Verified 2026-10-03T09:00:57.635Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/piedaterre_venezia/runs":{"post":{"operationId":"run_piedaterre_venezia","summary":"Run Piedaterre Venezia","description":"Product catalogue from Piedaterre Venezia — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/pinotti/runs":{"post":{"operationId":"run_pinotti","summary":"Run Pinotti","description":"Product catalogue from Pinotti — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmjzhe32pzqaqy34a/runs":{"post":{"operationId":"run_catalog_gd_mpmjzhe32pzqaqy34a","summary":"Run Pioneer Products","description":"Collects public product data from www.pioneerelectronics.com using its shopify interface. Verified 2026-10-02T23:03:53.081Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/pixie_market/runs":{"post":{"operationId":"run_pixie_market","summary":"Run Pixie Market","description":"Product catalogue from Pixie Market — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6mvhvi16wka6ey2w/runs":{"post":{"operationId":"run_catalog_gd_mq6mvhvi16wka6ey2w","summary":"Run Plank+Beam Products","description":"Collects public product data from www.plankandbeam.com using its shopify interface. Verified 2026-10-02T23:03:53.390Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/polene_paris/runs":{"post":{"operationId":"run_polene_paris","summary":"Run Polene Paris","description":"Product catalogue from Polene Paris — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5hr4qu19o72mkcik/runs":{"post":{"operationId":"run_catalog_gd_mq5hr4qu19o72mkcik","summary":"Run Poly & Bark Products","description":"Collects public product data from www.polyandbark.com using its structured product metadata interface. Verified 2026-10-02T23:03:58.339Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/porto_studio/runs":{"post":{"operationId":"run_porto_studio","summary":"Run Porto Studio","description":"Product catalogue from Porto Studio — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/poshmark-listings/runs":{"post":{"operationId":"run_poshmark_listings","summary":"Run Poshmark Listings","description":"Poshmark resale listings by search term — names, brands, prices, descriptions and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"queries":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Search terms","description":"One paged search per term. Results are de-duplicated across terms.","default":["nike"],"examples":["nike, vintage levis"]},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Pages per term","description":"About 40 listings per page. Pagination is by cursor, so pages do not overlap the way an offset would.","default":3},"inventoryStatus":{"type":"string","enum":["available","sold_out","not_available"],"title":"Inventory status","description":"Sold listings are useful for price history but are not purchasable.","default":"available"},"domain":{"type":"string","enum":["us","ca","au"],"title":"Marketplace","description":"Changes which country’s listings are searched and the currency they are priced in.","default":"us"},"maxListings":{"type":"number","minimum":1,"maximum":20000,"title":"Max listings per run","description":"Across all search terms together.","default":500},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":800}}}}},"example":{"input":{"queries":["nike"],"maxPages":3,"inventoryStatus":"available","domain":"us"}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mljai5ho2jbeaorucp/runs":{"post":{"operationId":"run_catalog_gd_mljai5ho2jbeaorucp","summary":"Run Pottery Barn Kids products","description":"Collects public product data from www.potterybarnkids.com using its constructor interface. Verified 2026-10-03T09:00:57.676Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlja9n0earoq04joc/runs":{"post":{"operationId":"run_catalog_gd_mlja9n0earoq04joc","summary":"Run Pottery barn products","description":"Collects public product data from www.potterybarn.com using its constructor interface. Verified 2026-10-03T09:00:57.768Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlj9y98216n9bzfm3k/runs":{"post":{"operationId":"run_catalog_gd_mlj9y98216n9bzfm3k","summary":"Run Pottery Barn Teen","description":"Collects public product data from www.pbteen.com using its constructor interface. Verified 2026-10-03T09:00:57.950Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lhahqiq52egng5v35i/runs":{"post":{"operationId":"run_catalog_gd_lhahqiq52egng5v35i","summary":"Run Prada.com - Products","description":"Collects public product data from www.prada.com using its algolia interface. Verified 2026-10-03T09:00:58.018Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mou0g4vy263cj383rd/runs":{"post":{"operationId":"run_catalog_gd_mou0g4vy263cj383rd","summary":"Run Pretty Little Thing Products","description":"Collects public product data from www.prettylittlething.com using its structured product metadata interface. Verified 2026-10-02T23:04:03.234Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosh8nauva6isucdl/runs":{"post":{"operationId":"run_catalog_gd_mosh8nauva6isucdl","summary":"Run PRFO Products","description":"Collects public product data from prfo.com using its shopify interface. Verified 2026-10-02T23:03:55.920Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5hrug82ex2tzuad/runs":{"post":{"operationId":"run_catalog_gd_mq5hrug82ex2tzuad","summary":"Run Primally Pure Products","description":"Collects public product data from primallypure.com using its shopify interface. Verified 2026-10-02T23:03:56.783Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vsjtj1k0f3uvtep/runs":{"post":{"operationId":"run_catalog_gd_mq7vsjtj1k0f3uvtep","summary":"Run Princess Polly US Products","description":"Collects public product data from us.princesspolly.com using its shopify interface. Verified 2026-10-02T23:03:57.064Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5hsje8139ioxeag1/runs":{"post":{"operationId":"run_catalog_gd_mq5hsje8139ioxeag1","summary":"Run ProHealth Products","description":"Collects public product data from www.prohealth.com using its shopify interface. Verified 2026-10-02T23:03:57.648Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzvlepl2lo7tq19m8/runs":{"post":{"operationId":"run_catalog_gd_mpzvlepl2lo7tq19m8","summary":"Run Publicgoods Product","description":"Collects public product data from www.publicgoods.com using its shopify interface. Verified 2026-10-02T23:03:57.912Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movjcid02emttypwdg/runs":{"post":{"operationId":"run_catalog_gd_movjcid02emttypwdg","summary":"Run Puffy Products","description":"Collects public product data from puffy.com using its shopify interface. Verified 2026-10-02T23:03:57.786Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmkhom12agiqb52f7/runs":{"post":{"operationId":"run_catalog_gd_mpmkhom12agiqb52f7","summary":"Run Puma Products","description":"Collects public product data from us.puma.com using its bloomreach interface. Verified 2026-10-03T09:00:58.114Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5htyys2dymhbc4af/runs":{"post":{"operationId":"run_catalog_gd_mq5htyys2dymhbc4af","summary":"Run Pura Products","description":"Collects public product data from pura.com using its structured product metadata interface. Verified 2026-10-02T23:04:02.544Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq5hvdsh1rx3tw0n8p/runs":{"post":{"operationId":"run_catalog_gd_mq5hvdsh1rx3tw0n8p","summary":"Run Pure Prescriptions Products","description":"Collects public product data from pureprescriptions.com using its woocommerce interface. Verified 2026-10-02T23:04:01.826Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/quince/runs":{"post":{"operationId":"run_quince","summary":"Run Quince","description":"Product catalogue from Quince — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mljamp5424vs8z7y3k/runs":{"post":{"operationId":"run_catalog_gd_mljamp5424vs8z7y3k","summary":"Run Quince Products","description":"Collects public product data from www.quince.com using its algolia interface. Verified 2026-10-03T09:00:58.181Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_ms4pac302a56ml3ged/runs":{"post":{"operationId":"run_catalog_gd_ms4pac302a56ml3ged","summary":"Run Rakuten Products TW","description":"Collects public product data from www.rakuten.com.tw using its structured product metadata interface. Verified 2026-10-02T23:04:18.253Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7tdfaiaki8mjwt6/runs":{"post":{"operationId":"run_catalog_gd_mq7tdfaiaki8mjwt6","summary":"Run Rally House Products","description":"Collects public product data from www.rallyhouse.com using its structured product metadata interface. Verified 2026-10-02T23:04:20.031Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ralphlauren/runs":{"post":{"operationId":"run_ralphlauren","summary":"Run Ralph Lauren","description":"Product catalogue from Ralph Lauren — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mruljagh2ecqp5hwse/runs":{"post":{"operationId":"run_catalog_gd_mruljagh2ecqp5hwse","summary":"Run Rare Beauty Product","description":"Collects public product data from www.rarebeauty.com using its shopify interface. Verified 2026-10-02T23:04:16.066Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwp32ww6gc2wmxk5/runs":{"post":{"operationId":"run_catalog_gd_mpwp32ww6gc2wmxk5","summary":"Run Red Wing Shoes Products","description":"Collects public product data from www.redwingshoes.com using its structured product metadata interface. Verified 2026-10-02T23:11:18.571Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6ov32s2rrbjuc3pu/runs":{"post":{"operationId":"run_catalog_gd_mq6ov32s2rrbjuc3pu","summary":"Run Redline360 Products","description":"Collects public product data from shop.redline360.com using its shopify interface. Verified 2026-10-02T23:12:47.574Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7te8k9tq3w9gss2/runs":{"post":{"operationId":"run_catalog_gd_mq7te8k9tq3w9gss2","summary":"Run Redragon Shop Products","description":"Collects public product data from redragonshop.com using its shopify interface. Verified 2026-10-02T23:08:01.231Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7tf139rdhqwn2gz/runs":{"post":{"operationId":"run_catalog_gd_mq7tf139rdhqwn2gz","summary":"Run Reebelo Products","description":"Collects public product data from reebelo.com using its structured product metadata interface. Verified 2026-10-02T23:11:24.522Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj5nzl1ygf8jkb1k/runs":{"post":{"operationId":"run_catalog_gd_movj5nzl1ygf8jkb1k","summary":"Run Reebok Products","description":"Collects public product data from www.reebok.com using its shopify interface. Verified 2026-10-02T23:04:15.897Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/thereformation/runs":{"post":{"operationId":"run_thereformation","summary":"Run Reformation","description":"Product catalogue from Reformation — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli046s01mdt5gdt5d/runs":{"post":{"operationId":"run_catalog_gd_mli046s01mdt5gdt5d","summary":"Run Rejuvenation","description":"Collects public product data from www.rejuvenation.com using its constructor interface. Verified 2026-10-03T09:00:58.454Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrugerlppl3yd7zm6/runs":{"post":{"operationId":"run_catalog_gd_mrugerlppl3yd7zm6","summary":"Run Reolink Products","description":"Collects public product data from reolink.com using its structured product metadata interface. Verified 2026-10-02T23:04:20.589Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/repetto/runs":{"post":{"operationId":"run_repetto","summary":"Run Repetto","description":"Product catalogue from Repetto — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_moviy0qo18nwyqt1s0/runs":{"post":{"operationId":"run_catalog_gd_moviy0qo18nwyqt1s0","summary":"Run Restaurant Supply Products","description":"Collects public product data from www.restaurantsupply.com using its shopify interface. Verified 2026-10-02T23:04:16.846Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhht0f3cd7kigf5/runs":{"post":{"operationId":"run_catalog_gd_molhht0f3cd7kigf5","summary":"Run Rev Zilla Products","description":"Collects public product data from www.revzilla.com using its structured product metadata interface. Verified 2026-10-02T23:11:25.130Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/revolve/runs":{"post":{"operationId":"run_revolve","summary":"Run Revolve","description":"Product catalogue from Revolve — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6ntlal21fdt1672a/runs":{"post":{"operationId":"run_catalog_gd_mq6ntlal21fdt1672a","summary":"Run RingConn Products","description":"Collects public product data from ringconn.com using its shopify interface. Verified 2026-10-02T23:04:19.080Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpxtamv313ugsc6o8p/runs":{"post":{"operationId":"run_catalog_gd_mpxtamv313ugsc6o8p","summary":"Run Ritual Products","description":"Collects public product data from ritual.com using its shopify interface. Verified 2026-10-02T23:04:19.200Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/rivecour/runs":{"post":{"operationId":"run_rivecour","summary":"Run Rivecour","description":"Product catalogue from Rivecour — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7mtxdo2hdcg0wmrt/runs":{"post":{"operationId":"run_catalog_gd_mq7mtxdo2hdcg0wmrt","summary":"Run Roborock US Products","description":"Collects public product data from us.roborock.com using its shopify interface. Verified 2026-10-02T23:04:19.354Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhljdmfg8jpu41u/runs":{"post":{"operationId":"run_catalog_gd_molhljdmfg8jpu41u","summary":"Run Rockler Products","description":"Collects public product data from www.rockler.com using its searchspring interface. Verified 2026-10-03T09:00:59.520Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7un7wv1fbr0dv21o/runs":{"post":{"operationId":"run_catalog_gd_mq7un7wv1fbr0dv21o","summary":"Run Rockville Audio Products","description":"Collects public product data from rockvilleaudio.com using its shopify interface. Verified 2026-10-02T23:04:20.360Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzr06qq1skw8wq8rp/runs":{"post":{"operationId":"run_catalog_gd_mpzr06qq1skw8wq8rp","summary":"Run Rothys Product","description":"Collects public product data from rothys.com using its shopify interface. Verified 2026-10-02T23:04:21.112Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/rue_sophie/runs":{"post":{"operationId":"run_rue_sophie","summary":"Run Rue Sophie","description":"Product catalogue from Rue Sophie — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ruedeverneuil/runs":{"post":{"operationId":"run_ruedeverneuil","summary":"Run Ruedeverneuil","description":"Product catalogue from Ruedeverneuil — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzexqtfymmmclyim/runs":{"post":{"operationId":"run_catalog_gd_mpzexqtfymmmclyim","summary":"Run Ruggable Products","description":"Collects public product data from ruggable.com using its structured product metadata interface. Verified 2026-10-02T23:04:31.554Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj6jcz2fydscqtt9/runs":{"post":{"operationId":"run_catalog_gd_movj6jcz2fydscqtt9","summary":"Run Ryobi Tools Products","description":"Collects public product data from www.ryobitools.com using its structured product metadata interface. Verified 2026-10-02T23:08:03.565Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mrul7kho2l869w0vrh/runs":{"post":{"operationId":"run_catalog_gd_mrul7kho2l869w0vrh","summary":"Run Sainsburys Product","description":"Collects public product data from www.sainsburys.co.uk using its structured product metadata interface. Verified 2026-10-02T23:04:29.863Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpjz7eijtexcee5n/runs":{"post":{"operationId":"run_catalog_gd_mpjz7eijtexcee5n","summary":"Run Salomon Products","description":"Collects public product data from www.salomon.com using its structured product metadata interface. Verified 2026-10-02T23:04:27.479Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6oarqkk7d9na4ji/runs":{"post":{"operationId":"run_catalog_gd_mq6oarqkk7d9na4ji","summary":"Run Salus Heat Products","description":"Collects public product data from salusheat.com using its shopify interface. Verified 2026-10-02T23:04:24.659Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6obhqg1hkd89ij45/runs":{"post":{"operationId":"run_catalog_gd_mq6obhqg1hkd89ij45","summary":"Run Satechi Products","description":"Collects public product data from satechi.net using its shopify interface. Verified 2026-10-02T23:04:26.436Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6oc7nvgs6qmk66l/runs":{"post":{"operationId":"run_catalog_gd_mq6oc7nvgs6qmk66l","summary":"Run SaunaBox Products","description":"Collects public product data from saunabox.com using its shopify interface. Verified 2026-10-02T23:04:26.655Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_ml9aclosvnzaj79kg/runs":{"post":{"operationId":"run_catalog_gd_ml9aclosvnzaj79kg","summary":"Run scheels products","description":"Collects public product data from www.scheels.com using its structured product metadata interface. Verified 2026-10-02T23:04:31.619Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mr0ke7yl2bdtv3zbq7/runs":{"post":{"operationId":"run_catalog_gd_mr0ke7yl2bdtv3zbq7","summary":"Run Scotch and Soda Product","description":"Collects public product data from www.scotchandsoda.com using its shopify interface. Verified 2026-10-02T23:12:47.390Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6odmtix0wbgo9og/runs":{"post":{"operationId":"run_catalog_gd_mq6odmtix0wbgo9og","summary":"Run Seattle Coffee Gear Products","description":"Collects public product data from www.seattlecoffeegear.com using its shopify interface. Verified 2026-10-02T23:04:40.334Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7uq92l117kvhfoxe/runs":{"post":{"operationId":"run_catalog_gd_mq7uq92l117kvhfoxe","summary":"Run Seeed Studio Products","description":"Collects public product data from www.seeedstudio.com using its structured product metadata interface. Verified 2026-10-02T23:04:44.930Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwm3get19bx1epd3f/runs":{"post":{"operationId":"run_catalog_gd_mpwm3get19bx1epd3f","summary":"Run Seiko USA Products","description":"Collects public product data from www.seikousa.com using its shopify interface. Verified 2026-10-02T23:04:40.431Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwm44oi238h9wtskl/runs":{"post":{"operationId":"run_catalog_gd_mpwm44oi238h9wtskl","summary":"Run SelectBlinds Products","description":"Collects public product data from www.selectblinds.com using its shopify interface. Verified 2026-10-02T23:04:40.445Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/self_portrait/runs":{"post":{"operationId":"run_self_portrait","summary":"Run Self Portrait","description":"Product catalogue from Self Portrait — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwme4r09nj3n6g72/runs":{"post":{"operationId":"run_catalog_gd_mpwme4r09nj3n6g72","summary":"Run Selfridges Products","description":"Collects public product data from www.selfridges.com using its structured product metadata interface. Verified 2026-10-02T23:04:41.368Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/senso/runs":{"post":{"operationId":"run_senso","summary":"Run Senso","description":"Product catalogue from Senso — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lbz49igcthopwaygd/runs":{"post":{"operationId":"run_catalog_gd_lbz49igcthopwaygd","summary":"Run Sephora products","description":"Collects public product data from www.sephora.com using its constructor interface. Verified 2026-10-03T09:00:58.519Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mloyjmqz1ucoikm4ja/runs":{"post":{"operationId":"run_catalog_gd_mloyjmqz1ucoikm4ja","summary":"Run Sephora Products","description":"Collects public product data from www.sephora.com using its constructor interface. Verified 2026-10-03T09:00:58.609Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sezane/runs":{"post":{"operationId":"run_sezane","summary":"Run Sézane","description":"Product catalogue from Sézane — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mljejilb2k0zfl1e79/runs":{"post":{"operationId":"run_catalog_gd_mljejilb2k0zfl1e79","summary":"Run Sharkninja","description":"Collects public product data from www.sharkninja.com using its structured product metadata interface. Verified 2026-10-02T23:04:42.360Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ur1f5qjm8aks4r/runs":{"post":{"operationId":"run_catalog_gd_mq7ur1f5qjm8aks4r","summary":"Run Shock Doctor Products","description":"Collects public product data from www.shockdoctor.com using its shopify interface. Verified 2026-10-02T23:04:41.082Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6osuy41mdrtfrk3c/runs":{"post":{"operationId":"run_catalog_gd_mq6osuy41mdrtfrk3c","summary":"Run Shock Surplus Products","description":"Collects public product data from www.shocksurplus.com using its shopify interface. Verified 2026-10-02T23:04:41.193Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mp9ixwen1hktilyhau/runs":{"post":{"operationId":"run_catalog_gd_mp9ixwen1hktilyhau","summary":"Run Shoe Carnival Products","description":"Collects public product data from www.shoecarnival.com using its structured product metadata interface. Verified 2026-10-02T23:04:48.121Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/shopbop/runs":{"post":{"operationId":"run_shopbop","summary":"Run Shopbop","description":"Product catalogue from Shopbop — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/shopee-products/runs":{"post":{"operationId":"run_shopee_products","summary":"Run Shopee Products","description":"Shopee product details by product link or shop and item id — names, prices, descriptions and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"host":{"type":"string","enum":["shopee.tw","shopee.sg","shopee.co.id","shopee.com.my","shopee.ph","shopee.vn","shopee.co.th","shopee.com.br"],"title":"Region","description":"An item id only exists on the host that sold it. Currency and image CDN follow from this.","default":"shopee.tw"},"items":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Products","description":"Whole product URLs, or bare shopId.itemId pairs. Entries that parse to neither are reported as warnings.","default":["178926468.21448123549"],"examples":["https://shopee.tw/a-i.178926468.21448123549"]},"maxProducts":{"type":"number","minimum":1,"maximum":2000,"title":"Max products per run","description":"Anything beyond this is dropped and reported as a truncation warning.","default":50},"requestDelayMs":{"type":"number","minimum":0,"maximum":60000,"title":"Delay between requests (ms)","description":"Shopee rate-limits hard. Lowering this is the fastest way to get a run challenged.","default":2000},"tzOffsetMinutes":{"type":"number","minimum":-720,"maximum":840,"title":"Timezone offset (minutes)","description":"Sent as tz_offset_in_minutes. Only affects which time-limited promotions the API considers active.","default":120},"sessionCookie":{"type":"string","maxLength":2000,"title":"Session cookie","description":"A Cookie header copied from a signed-in browser session. Without one the API answers every request with its anti-bot challenge — see the README.","examples":["SPC_F=…; SPC_SI=…; csrftoken=…"]},"antiBotToken":{"type":"string","maxLength":2000,"title":"af-ac-enc-dat token","description":"Sent as the af-ac-enc-dat header. Measured effect on its own: it turns the challenge response from HTTP 403 into HTTP 200 with the identical challenge body. It does not unlock the data.","examples":["00c5d94926ac9d74"]}}}}},"example":{"input":{"host":"shopee.tw","items":["178926468.21448123549"],"maxProducts":50,"requestDelayMs":2000}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/shrimps/runs":{"post":{"operationId":"run_shrimps","summary":"Run Shrimps","description":"Product catalogue from Shrimps — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzdw8d7fkc2pf0ck/runs":{"post":{"operationId":"run_catalog_gd_mpzdw8d7fkc2pf0ck","summary":"Run Shutterfly Products","description":"Collects public product data from www.shutterfly.com using its structured product metadata interface. Verified 2026-10-02T23:04:45.877Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6ox85qb5vvlg9xy/runs":{"post":{"operationId":"run_catalog_gd_mq6ox85qb5vvlg9xy","summary":"Run Silkrute Products","description":"Collects public product data from www.silkrute.com using its structured product metadata interface. Verified 2026-10-02T23:04:47.892Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7usk232ayadc34i4/runs":{"post":{"operationId":"run_catalog_gd_mq7usk232ayadc34i4","summary":"Run SilkSilky Products","description":"Collects public product data from www.silksilky.com using its shopify interface. Verified 2026-10-02T23:04:44.874Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj7ddrribe4tkol/runs":{"post":{"operationId":"run_catalog_gd_movj7ddrribe4tkol","summary":"Run Simon Shop Products","description":"Collects public product data from shop.simon.com using its shopify interface. Verified 2026-10-02T23:04:45.365Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/simonmillerusa/runs":{"post":{"operationId":"run_simonmillerusa","summary":"Run Simonmillerusa","description":"Product catalogue from Simonmillerusa — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6pcff3226l17iil9/runs":{"post":{"operationId":"run_catalog_gd_mq6pcff3226l17iil9","summary":"Run Skar Audio Products","description":"Collects public product data from www.skaraudio.com using its structured product metadata interface. Verified 2026-10-02T23:04:47.188Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mosa10ox1h5q1y3gho/runs":{"post":{"operationId":"run_catalog_gd_mosa10ox1h5q1y3gho","summary":"Run Skechers Products","description":"Collects public product data from www.skechers.com using its structured product metadata interface. Verified 2026-10-02T23:04:49.831Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6pd6quug22k6yae/runs":{"post":{"operationId":"run_catalog_gd_mq6pd6quug22k6yae","summary":"Run Ski Essentials Products","description":"Collects public product data from www.skiessentials.com using its structured product metadata interface. Verified 2026-10-02T23:11:39.270Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzikknpzaf1w87ui/runs":{"post":{"operationId":"run_catalog_gd_mpzikknpzaf1w87ui","summary":"Run Skims Product","description":"Collects public product data from skims.com using its structured product metadata interface. Verified 2026-10-02T23:04:51.988Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_moviumjz2i8a6l3z4p/runs":{"post":{"operationId":"run_catalog_gd_moviumjz2i8a6l3z4p","summary":"Run Smith Optics Products","description":"Collects public product data from www.smithoptics.com using its shopify interface. Verified 2026-10-02T23:04:48.692Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/soeur/runs":{"post":{"operationId":"run_soeur","summary":"Run Soeur","description":"Product catalogue from Soeur — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6pifb2fljfgbn8o/runs":{"post":{"operationId":"run_catalog_gd_mq6pifb2fljfgbn8o","summary":"Run Sole Treadmills Products","description":"Collects public product data from www.soletreadmills.com using its shopify interface. Verified 2026-10-02T23:04:48.625Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6pw0rkol1s14dhq/runs":{"post":{"operationId":"run_catalog_gd_mq6pw0rkol1s14dhq","summary":"Run Solos Smart Glasses Products","description":"Collects public product data from solosglasses.com using its shopify interface. Verified 2026-10-02T23:04:48.875Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molho4er31zyq18lk/runs":{"post":{"operationId":"run_catalog_gd_molho4er31zyq18lk","summary":"Run Soma Products","description":"Collects public product data from www.soma.com using its structured product metadata interface. Verified 2026-10-02T23:04:52.850Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm7u6vlo1gek8d7oe9/runs":{"post":{"operationId":"run_catalog_gd_mm7u6vlo1gek8d7oe9","summary":"Run Sony Electronics Products","description":"Collects public product data from electronics.sony.com using its structured product metadata interface. Verified 2026-10-02T23:04:52.601Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/souliers_martinez/runs":{"post":{"operationId":"run_souliers_martinez","summary":"Run Souliers Martinez","description":"Product catalogue from Souliers Martinez — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6pxh60dul3dkycx/runs":{"post":{"operationId":"run_catalog_gd_mq6pxh60dul3dkycx","summary":"Run Soundcore Products","description":"Collects public product data from us.soundcore.com using its shopify interface. Verified 2026-10-02T23:04:50.403Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sourceunknown/runs":{"post":{"operationId":"run_sourceunknown","summary":"Run Sourceunknown","description":"Product catalogue from Sourceunknown — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpcihtd12ja930qb9n/runs":{"post":{"operationId":"run_catalog_gd_mpcihtd12ja930qb9n","summary":"Run SparkFun Products","description":"Collects public product data from www.sparkfun.com using its magento interface. Verified 2026-10-03T09:00:58.647Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/spelta_milano/runs":{"post":{"operationId":"run_spelta_milano","summary":"Run Spelta Milano","description":"Product catalogue from Spelta Milano — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ursjg8wols59vf/runs":{"post":{"operationId":"run_catalog_gd_mq7ursjg8wols59vf","summary":"Run Sports Basement Products","description":"Collects public product data from shop.sportsbasement.com using its shopify interface. Verified 2026-10-02T23:08:02.816Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/sr_13_09/runs":{"post":{"operationId":"run_sr_13_09","summary":"Run Sr 13 09","description":"Product catalogue from Sr 13 09 — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/ssense/runs":{"post":{"operationId":"run_ssense","summary":"Run SSENSE","description":"Womenswear catalogue from SSENSE — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/st_agni/runs":{"post":{"operationId":"run_st_agni","summary":"Run St Agni","description":"Product catalogue from St Agni — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/standstudio/runs":{"post":{"operationId":"run_standstudio","summary":"Run Stand Studio","description":"Product catalogue from Stand Studio — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6q256125me19ugac/runs":{"post":{"operationId":"run_catalog_gd_mq6q256125me19ugac","summary":"Run Stanley 1913 Products","description":"Collects public product data from www.stanley1913.com using its shopify interface. Verified 2026-10-02T23:05:17.801Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzs4mq31aml08snd0/runs":{"post":{"operationId":"run_catalog_gd_mpzs4mq31aml08snd0","summary":"Run Starface Product","description":"Collects public product data from starface.world using its shopify interface. Verified 2026-10-02T23:05:17.915Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/staud/runs":{"post":{"operationId":"run_staud","summary":"Run Staud","description":"Product catalogue from Staud — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/stefanel/runs":{"post":{"operationId":"run_stefanel","summary":"Run Stefanel","description":"Women's collections from Stefanel — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/stella_and_suzie/runs":{"post":{"operationId":"run_stella_and_suzie","summary":"Run Stella And Suzie","description":"Product catalogue from Stella And Suzie — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/stetson/runs":{"post":{"operationId":"run_stetson","summary":"Run Stetson","description":"Product catalogue from Stetson — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/steve_madden/runs":{"post":{"operationId":"run_steve_madden","summary":"Run Steve Madden","description":"Product catalogue from Steve Madden — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzvdmtmsow1lis6w/runs":{"post":{"operationId":"run_catalog_gd_mpzvdmtmsow1lis6w","summary":"Run Summerfridays Product","description":"Collects public product data from summerfridays.com using its shopify interface. Verified 2026-10-02T23:05:17.958Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhd6yy14e6sln6v3/runs":{"post":{"operationId":"run_catalog_gd_molhd6yy14e6sln6v3","summary":"Run Sun And Ski Products","description":"Collects public product data from www.sunandski.com using its structured product metadata interface. Verified 2026-10-02T23:05:25.286Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq75ndig23v6osmk56/runs":{"post":{"operationId":"run_catalog_gd_mq75ndig23v6osmk56","summary":"Run Sunco Lighting Products","description":"Collects public product data from sunco.com using its shopify interface. Verified 2026-10-02T23:05:17.845Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzrvyd38l2kva7qx/runs":{"post":{"operationId":"run_catalog_gd_mpzrvyd38l2kva7qx","summary":"Run Sundayriley Product","description":"Collects public product data from sundayriley.com using its shopify interface. Verified 2026-10-02T23:05:18.315Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq6qipg32rr9524lzy/runs":{"post":{"operationId":"run_catalog_gd_mq6qipg32rr9524lzy","summary":"Run SUNLU Store Products","description":"Collects public product data from store.sunlu.com using its shopify interface. Verified 2026-10-02T23:08:03.325Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq75ouj2xovhn2xs9/runs":{"post":{"operationId":"run_catalog_gd_mq75ouj2xovhn2xs9","summary":"Run SunRay Saunas Products","description":"Collects public product data from www.sunraysaunas.com using its structured product metadata interface. Verified 2026-10-02T23:05:19.409Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7v7zk4137s1hd8gw/runs":{"post":{"operationId":"run_catalog_gd_mq7v7zk4137s1hd8gw","summary":"Run Super Arbor Products","description":"Collects public product data from superarbor.io using its shopify interface. Verified 2026-10-02T23:08:03.417Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq75qb5pdi29mvhm3/runs":{"post":{"operationId":"run_catalog_gd_mq75qb5pdi29mvhm3","summary":"Run Super Bright LEDs Products","description":"Collects public product data from www.superbrightleds.com using its magento interface. Verified 2026-10-03T09:00:58.661Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/superga/runs":{"post":{"operationId":"run_superga","summary":"Run Superga","description":"Product catalogue from Superga — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm7uunop2jqrh8mkin/runs":{"post":{"operationId":"run_catalog_gd_mm7uunop2jqrh8mkin","summary":"Run Supergoop Products","description":"Collects public product data from supergoop.com using its shopify interface. Verified 2026-10-02T23:05:18.722Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mkxz7j04w8l8lzw0k/runs":{"post":{"operationId":"run_catalog_gd_mkxz7j04w8l8lzw0k","summary":"Run Sweetwater","description":"Collects public product data from www.sweetwater.com using its algolia interface. Verified 2026-10-03T09:00:58.670Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq75rtfa1qm02myki7/runs":{"post":{"operationId":"run_catalog_gd_mq75rtfa1qm02myki7","summary":"Run SwimOutlet Products","description":"Collects public product data from www.swimoutlet.com using its shopify interface. Verified 2026-10-02T23:05:19.720Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7v8qer238tqrea2q/runs":{"post":{"operationId":"run_catalog_gd_mq7v8qer238tqrea2q","summary":"Run Swirise Products","description":"Collects public product data from swirise.com using its shopify interface. Verified 2026-10-02T23:05:20.374Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7mwzn91w5trcq9ap/runs":{"post":{"operationId":"run_catalog_gd_mq7mwzn91w5trcq9ap","summary":"Run SwitchBot US Products","description":"Collects public product data from us.switch-bot.com using its shopify interface. Verified 2026-10-02T23:05:20.202Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzt1lb11w5xasephb/runs":{"post":{"operationId":"run_catalog_gd_mpzt1lb11w5xasephb","summary":"Run Tataharperskincare Product","description":"Collects public product data from www.tataharperskincare.com using its shopify interface. Verified 2026-10-02T23:05:20.385Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm9ale6619gub310xs/runs":{"post":{"operationId":"run_catalog_gd_mm9ale6619gub310xs","summary":"Run Tatcha Products","description":"Collects public product data from www.tatcha.com using its shopify interface. Verified 2026-10-02T23:05:20.401Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzsl4ti1xuh5ys7u0/runs":{"post":{"operationId":"run_catalog_gd_mpzsl4ti1xuh5ys7u0","summary":"Run Taylorstitch Product","description":"Collects public product data from www.taylorstitch.com using its shopify interface. Verified 2026-10-02T23:05:20.769Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzaw6sl1c830y4isu/runs":{"post":{"operationId":"run_catalog_gd_mpzaw6sl1c830y4isu","summary":"Run Teachers Pay Teachers Products","description":"Collects public product data from www.teacherspayteachers.com using its structured product metadata interface. Verified 2026-10-02T23:08:05.484Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/the_frankie_shop/runs":{"post":{"operationId":"run_the_frankie_shop","summary":"Run The Frankie Shop","description":"Product catalogue from The Frankie Shop — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7v9h2p1yodjfll2z/runs":{"post":{"operationId":"run_catalog_gd_mq7v9h2p1yodjfll2z","summary":"Run The INKEY List Products","description":"Collects public product data from www.theinkeylist.com using its shopify interface. Verified 2026-10-02T23:05:22.893Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/the_outnet/runs":{"post":{"operationId":"run_the_outnet","summary":"Run The Outnet","description":"Product catalogue from The Outnet — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/the_sandal_company/runs":{"post":{"operationId":"run_the_sandal_company","summary":"Run The Sandal Company","description":"Product catalogue from The Sandal Company — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwmox8z240yq0tg0o/runs":{"post":{"operationId":"run_catalog_gd_mpwmox8z240yq0tg0o","summary":"Run The Tile Shop Products","description":"Collects public product data from www.tileshop.com using its structured product metadata interface. Verified 2026-10-02T23:05:32.838Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli0js6ftgfefdw4h/runs":{"post":{"operationId":"run_catalog_gd_mli0js6ftgfefdw4h","summary":"Run Theordinary products","description":"Collects public product data from theordinary.com using its structured product metadata interface. Verified 2026-10-02T23:05:32.228Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mr3kh68rnlncnpuha/runs":{"post":{"operationId":"run_catalog_gd_mr3kh68rnlncnpuha","summary":"Run Therabody Product","description":"Collects public product data from www.therabody.com using its shopify interface. Verified 2026-10-02T23:05:24.924Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzowjmh2q7alln56a/runs":{"post":{"operationId":"run_catalog_gd_mpzowjmh2q7alln56a","summary":"Run Thereformation Product","description":"Collects public product data from www.thereformation.com using its structured product metadata interface. Verified 2026-10-02T23:11:46.262Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq75uuw213525lfauz/runs":{"post":{"operationId":"run_catalog_gd_mq75uuw213525lfauz","summary":"Run ThirdLove Products","description":"Collects public product data from www.thirdlove.com using its shopify interface. Verified 2026-10-02T23:05:25.702Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_ml9nvpy8m1rgeq28j/runs":{"post":{"operationId":"run_catalog_gd_ml9nvpy8m1rgeq28j","summary":"Run thorne products","description":"Collects public product data from www.thorne.com using its structured product metadata interface. Verified 2026-10-02T23:05:32.037Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq76dovni9ffy6ccn/runs":{"post":{"operationId":"run_catalog_gd_mq76dovni9ffy6ccn","summary":"Run Thursday Boots Products","description":"Collects public product data from thursdayboots.com using its shopify interface. Verified 2026-10-02T23:05:26.250Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwmhdb5devumispa/runs":{"post":{"operationId":"run_catalog_gd_mpwmhdb5devumispa","summary":"Run Tiffany & Co. Products","description":"Collects public product data from www.tiffany.com using its algolia interface. Verified 2026-10-03T09:00:59.656Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vb28q2nsuulww33/runs":{"post":{"operationId":"run_catalog_gd_mq7vb28q2nsuulww33","summary":"Run Timekettle Products","description":"Collects public product data from www.timekettle.co using its shopify interface. Verified 2026-10-02T23:06:28.083Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vbtn21dlg1iqdoh/runs":{"post":{"operationId":"run_catalog_gd_mq7vbtn21dlg1iqdoh","summary":"Run Titan Fitness Products","description":"Collects public product data from www.titan.fitness using its shopify interface. Verified 2026-10-02T23:06:28.101Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/tony_bianco/runs":{"post":{"operationId":"run_tony_bianco","summary":"Run Tony Bianco","description":"Product catalogue from Tony Bianco — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzrwud21u36j6atjl/runs":{"post":{"operationId":"run_catalog_gd_mpzrwud21u36j6atjl","summary":"Run Tower28beauty Product","description":"Collects public product data from www.tower28beauty.com using its shopify interface. Verified 2026-10-02T23:06:28.495Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_lemuapao1lkjggvn05/runs":{"post":{"operationId":"run_catalog_gd_lemuapao1lkjggvn05","summary":"Run Toysrus  - Products","description":"Collects public product data from www.toysrus.com using its shopify interface. Verified 2026-10-02T23:06:28.056Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7mw8p11ewjdhh68u/runs":{"post":{"operationId":"run_catalog_gd_mq7mw8p11ewjdhh68u","summary":"Run TP-Link Tapo US Store Products","description":"Collects public product data from us.store.tapo.com using its shopify interface. Verified 2026-10-02T23:06:28.414Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq76fwdemdrpsyr8t/runs":{"post":{"operationId":"run_catalog_gd_mq76fwdemdrpsyr8t","summary":"Run Transparent Labs Products","description":"Collects public product data from www.transparentlabs.com using its shopify interface. Verified 2026-10-02T23:06:28.659Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/tresse_paris/runs":{"post":{"operationId":"run_tresse_paris","summary":"Run Tresse Paris","description":"Product catalogue from Tresse Paris — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mr3k9too1ss3o5ycmv/runs":{"post":{"operationId":"run_catalog_gd_mr3k9too1ss3o5ycmv","summary":"Run True Classic Product","description":"Collects public product data from www.trueclassictees.com using its shopify interface. Verified 2026-10-02T23:06:29.072Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzne0x226hq0sxmzt/runs":{"post":{"operationId":"run_catalog_gd_mpzne0x226hq0sxmzt","summary":"Run Trueclassictees Product","description":"Collects public product data from www.trueclassictees.com using its shopify interface. Verified 2026-10-02T23:06:29.081Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vq8ki25at9uotid/runs":{"post":{"operationId":"run_catalog_gd_mq7vq8ki25at9uotid","summary":"Run Tumble Living Products","description":"Collects public product data from tumbleliving.com using its shopify interface. Verified 2026-10-02T23:06:29.425Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq76he70xahqlw7qz/runs":{"post":{"operationId":"run_catalog_gd_mq76he70xahqlw7qz","summary":"Run Turntable Lab Products","description":"Collects public product data from www.turntablelab.com using its shopify interface. Verified 2026-10-02T23:06:29.795Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq76i5bc677r3xqg4/runs":{"post":{"operationId":"run_catalog_gd_mq76i5bc677r3xqg4","summary":"Run TWOPAGES Curtains Products","description":"Collects public product data from www.twopagescurtains.com using its shopify interface. Verified 2026-10-02T23:06:30.182Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mljet48s1kibed4k2d/runs":{"post":{"operationId":"run_catalog_gd_mljet48s1kibed4k2d","summary":"Run Ulta","description":"Collects public product data from www.ulta.com using its structured product metadata interface. Verified 2026-10-02T23:06:33.045Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwn37932010fiw7o1/runs":{"post":{"operationId":"run_catalog_gd_mpwn37932010fiw7o1","summary":"Run Unclaimed Baggage Products","description":"Collects public product data from www.unclaimedbaggage.com using its shopify interface. Verified 2026-10-02T23:06:30.747Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpb5opy7ynryx9vvt/runs":{"post":{"operationId":"run_catalog_gd_mpb5opy7ynryx9vvt","summary":"Run Uncommon Goods Products","description":"Collects public product data from www.uncommongoods.com using its bloomreach interface. Verified 2026-10-03T09:00:58.692Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mm9avd8g2c6pawfejz/runs":{"post":{"operationId":"run_catalog_gd_mm9avd8g2c6pawfejz","summary":"Run Underarmour Products","description":"Collects public product data from www.underarmour.com using its structured product metadata interface. Verified 2026-10-02T23:06:37.629Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpjz244p1hltwqoaim/runs":{"post":{"operationId":"run_catalog_gd_mpjz244p1hltwqoaim","summary":"Run Uniform Advantage Products","description":"Collects public product data from www.uniformadvantage.com using its bloomreach interface. Verified 2026-10-03T09:00:58.807Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzslt1426ts085478/runs":{"post":{"operationId":"run_catalog_gd_mpzslt1426ts085478","summary":"Run Universalstandard Product","description":"Collects public product data from www.universalstandard.com using its shopify interface. Verified 2026-10-02T23:06:31.387Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpxtrpmr150jqwo0dp/runs":{"post":{"operationId":"run_catalog_gd_mpxtrpmr150jqwo0dp","summary":"Run UpTrade Products","description":"Collects public product data from uptradeit.com using its structured product metadata interface. Verified 2026-10-02T23:06:33.531Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzh9ctmczl328yg8/runs":{"post":{"operationId":"run_catalog_gd_mpzh9ctmczl328yg8","summary":"Run US Water Systems Products","description":"Collects public product data from www.uswatersystems.com using its shopify interface. Verified 2026-10-02T23:06:32.354Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzt9g4a1s85piba22/runs":{"post":{"operationId":"run_catalog_gd_mpzt9g4a1s85piba22","summary":"Run Vegamour Product","description":"Collects public product data from vegamour.com using its shopify interface. Verified 2026-10-02T23:06:33.535Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/verafiedny/runs":{"post":{"operationId":"run_verafiedny","summary":"Run Verafiedny","description":"Product catalogue from Verafiedny — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzay8jj2lzht4rcjv/runs":{"post":{"operationId":"run_catalog_gd_mpzay8jj2lzht4rcjv","summary":"Run Vermont Country Store Products","description":"Collects public product data from www.vermontcountrystore.com using its structured product metadata interface. Verified 2026-10-02T23:06:46.018Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/vibivenezia/runs":{"post":{"operationId":"run_vibivenezia","summary":"Run Vibi Venezia","description":"Product catalogue from Vibi Venezia — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/victoria_leivissa/runs":{"post":{"operationId":"run_victoria_leivissa","summary":"Run Victoria Leivissa","description":"Product catalogue from Victoria Leivissa — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7mz7v51j4sl9g6aj/runs":{"post":{"operationId":"run_catalog_gd_mq7mz7v51j4sl9g6aj","summary":"Run ViewSonic Products","description":"Collects public product data from www.viewsonic.com using its magento interface. Verified 2026-10-03T09:00:59.094Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mli1023obzxv70n2p/runs":{"post":{"operationId":"run_catalog_gd_mli1023obzxv70n2p","summary":"Run Vitacost products","description":"Collects public product data from www.vitacost.com using its shopify interface. Verified 2026-10-02T23:07:33.277Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmja1cb19ekgf9z3a/runs":{"post":{"operationId":"run_catalog_gd_mpmja1cb19ekgf9z3a","summary":"Run Vitality Medical Products","description":"Collects public product data from www.vitalitymedical.com using its structured product metadata interface. Verified 2026-10-02T23:07:36.071Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mr3kas9219o7scy8yg/runs":{"post":{"operationId":"run_catalog_gd_mr3kas9219o7scy8yg","summary":"Run Vitamix Product","description":"Collects public product data from www.vitamix.com using its structured product metadata interface. Verified 2026-10-02T23:07:36.275Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ndkwuoyglmuna2/runs":{"post":{"operationId":"run_catalog_gd_mq7ndkwuoyglmuna2","summary":"Run Vive Health Products","description":"Collects public product data from www.vivehealth.com using its shopify interface. Verified 2026-10-02T23:07:33.271Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7vu3q727zezkgnjs/runs":{"post":{"operationId":"run_catalog_gd_mq7vu3q727zezkgnjs","summary":"Run VIVO Products","description":"Collects public product data from www.vivo-us.com using its shopify interface. Verified 2026-10-02T23:07:33.492Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/vrggrl/runs":{"post":{"operationId":"run_vrggrl","summary":"Run Vrggrl","description":"Product catalogue from Vrggrl — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpzndby51aq3j1qq9c/runs":{"post":{"operationId":"run_catalog_gd_mpzndby51aq3j1qq9c","summary":"Run Vuoriclothing Product","description":"Collects public product data from vuoriclothing.com using its structured product metadata interface. Verified 2026-10-02T23:07:37.055Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ned9f1quipp7zer/runs":{"post":{"operationId":"run_catalog_gd_mq7ned9f1quipp7zer","summary":"Run Walker Edison Products","description":"Collects public product data from www.walkeredison.com using its shopify interface. Verified 2026-10-02T23:07:33.376Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movj8s8ttd9r99fws/runs":{"post":{"operationId":"run_catalog_gd_movj8s8ttd9r99fws","summary":"Run Warby Parker Products","description":"Collects public product data from www.warbyparker.com using its structured product metadata interface. Verified 2026-10-02T23:08:12.950Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_moviwjso2b1z50r49v/runs":{"post":{"operationId":"run_catalog_gd_moviwjso2b1z50r49v","summary":"Run WeatherTech Products","description":"Collects public product data from www.weathertech.com using its structured product metadata interface. Verified 2026-10-02T23:07:36.564Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/webmotors-brazil-vehicles/runs":{"post":{"operationId":"run_webmotors_brazil_vehicles","summary":"Run Webmotors Brazil Vehicle Listings","description":"Brazilian vehicle search listings with BRL asking prices, source URLs, model years and images from the Webmotors vehicle catalog.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum vehicles","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":3}}}}},"example":{"input":{"maxItems":100,"maxPages":3}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_motp8q8s28lrvngi7j/runs":{"post":{"operationId":"run_catalog_gd_motp8q8s28lrvngi7j","summary":"Run West Marine Products","description":"Collects public product data from www.westmarine.com using its structured product metadata interface. Verified 2026-10-02T23:07:36.580Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlhzvnxodjm91q13i/runs":{"post":{"operationId":"run_catalog_gd_mlhzvnxodjm91q13i","summary":"Run Westelm products","description":"Collects public product data from www.westelm.com using its constructor interface. Verified 2026-10-03T09:00:59.111Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpminbd81x7fq7jwbx/runs":{"post":{"operationId":"run_catalog_gd_mpminbd81x7fq7jwbx","summary":"Run Whole Latte Love Products","description":"Collects public product data from www.wholelattelove.com using its shopify interface. Verified 2026-10-02T23:07:34.895Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_ml4wercm2dzyg8p4oh/runs":{"post":{"operationId":"run_catalog_gd_ml4wercm2dzyg8p4oh","summary":"Run Williams sonoma products","description":"Collects public product data from www.williams-sonoma.com using its constructor interface. Verified 2026-10-03T09:00:59.283Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpwn3vyxa6gha049e/runs":{"post":{"operationId":"run_catalog_gd_mpwn3vyxa6gha049e","summary":"Run Wilson Sporting Goods Products","description":"Collects public product data from www.wilson.com using its structured product metadata interface. Verified 2026-10-02T23:07:40.450Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ngona2nzhg899bg/runs":{"post":{"operationId":"run_catalog_gd_mq7ngona2nzhg899bg","summary":"Run Windsor Store Products","description":"Collects public product data from www.windsorstore.com using its shopify interface. Verified 2026-10-02T23:07:36.766Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7ni72l15ww98651h/runs":{"post":{"operationId":"run_catalog_gd_mq7ni72l15ww98651h","summary":"Run Wood Art Supply Products","description":"Collects public product data from woodartsupply.com using its shopify interface. Verified 2026-10-02T23:07:36.750Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_movitq4tc0lrr3m1k/runs":{"post":{"operationId":"run_catalog_gd_movitq4tc0lrr3m1k","summary":"Run Woodcraft Products","description":"Collects public product data from www.woodcraft.com using its shopify interface. Verified 2026-10-02T23:07:37.093Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7nizl51tpkj3sn8o/runs":{"post":{"operationId":"run_catalog_gd_mq7nizl51tpkj3sn8o","summary":"Run Wyze Products","description":"Collects public product data from www.wyze.com using its shopify interface. Verified 2026-10-02T23:07:37.502Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7muolw2ldw58na6b/runs":{"post":{"operationId":"run_catalog_gd_mq7muolw2ldw58na6b","summary":"Run XREAL US Shop Products","description":"Collects public product data from us.shop.xreal.com using its shopify interface. Verified 2026-10-02T23:07:37.520Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq50wcbe2nfvo44wp5/runs":{"post":{"operationId":"run_catalog_gd_mq50wcbe2nfvo44wp5","summary":"Run Yeti Product","description":"Collects public product data from www.yeti.com using its structured product metadata interface. Verified 2026-10-03T09:02:39.211Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7nyty52awntyukn/runs":{"post":{"operationId":"run_catalog_gd_mq7nyty52awntyukn","summary":"Run Yoolax Products","description":"Collects public product data from www.yoolax.com using its shopify interface. Verified 2026-10-02T23:07:37.913Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/yuko_imanishi_plus/runs":{"post":{"operationId":"run_yuko_imanishi_plus","summary":"Run Yuko Imanishi Plus","description":"Product catalogue from Yuko Imanishi Plus — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/yuni_buffa/runs":{"post":{"operationId":"run_yuni_buffa","summary":"Run Yuni Buffa","description":"Product catalogue from Yuni Buffa — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/yuzefi/runs":{"post":{"operationId":"run_yuzefi","summary":"Run Yuzefi","description":"Product catalogue from Yuzefi — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mlqsi47oie3fo0gox/runs":{"post":{"operationId":"run_catalog_gd_mlqsi47oie3fo0gox","summary":"Run Zales","description":"Collects public product data from www.zales.com using its structured product metadata interface. Verified 2026-10-02T23:07:48.084Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mpmep2kz2g2zdy2zs3/runs":{"post":{"operationId":"run_catalog_gd_mpmep2kz2g2zdy2zs3","summary":"Run Zalesoutlet Products","description":"Collects public product data from www.zalesoutlet.com using its structured product metadata interface. Verified 2026-10-02T23:07:46.291Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/zara/runs":{"post":{"operationId":"run_zara","summary":"Run Zara","description":"Product catalogue from Zara — names, prices, colours, materials and images.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{}}}},"example":{"input":{}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_mq7pqua61osmdhh6yc/runs":{"post":{"operationId":"run_catalog_gd_mq7pqua61osmdhh6yc","summary":"Run ZQuiet Products","description":"Collects public product data from www.zquiet.com using its shopify interface. Verified 2026-10-02T23:07:42.952Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/catalog-gd_molhjywc195fl1hssa/runs":{"post":{"operationId":"run_catalog_gd_molhjywc195fl1hssa","summary":"Run Zumiez Products","description":"Collects public product data from www.zumiez.com using its magento interface. Verified 2026-10-03T09:00:59.360Z.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":2000,"title":"Search query","description":"Optional product search. Results are bounded by the provider’s catalog and pagination limits."},"maxItems":{"type":"number","minimum":1,"maximum":10000,"title":"Maximum products","default":100},"maxPages":{"type":"number","minimum":1,"maximum":100,"title":"Maximum pages","default":10},"productUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Product page URLs","description":"For JSON-LD targets; URLs must belong to this store. Successful pages are retained when another page fails."}}}}},"example":{"input":{"maxItems":100,"maxPages":10}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/beacons-profiles/runs":{"post":{"operationId":"run_beacons_profiles","summary":"Run Beacons Link-in-Bio Profiles","description":"Public Beacons creator pages — bio, outbound links and the creator's handles on other platforms.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Beacons handles","description":"Handles only — beacons.ai/ prefixes and @ signs are cleaned up.","default":[],"examples":["itsmejoelc, someone-else"]},"concurrency":{"type":"number","minimum":1,"maximum":16,"title":"Concurrent pages","description":"Beacons is behind Cloudflare, which rate-limits by IP rather than by path.","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":500}}}}},"example":{"input":{"handles":["itsmejoelc","someone-else"],"concurrency":4,"requestDelayMs":500}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/bilibili-videos/runs":{"post":{"operationId":"run_bilibili_videos","summary":"Run Bilibili Public Videos","description":"Public Bilibili video metadata and engagement counts from its public view API.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"videoIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Bilibili BV video IDs","default":["BV1xx411c7mD"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum videos","default":100}}}}},"example":{"input":{"videoIds":["BV1xx411c7mD"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/bluesky-posts/runs":{"post":{"operationId":"run_bluesky_posts","summary":"Run Bluesky Posts","description":"Public author feeds from the Bluesky AppView API, including post text and engagement counts.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"actors":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Public handles or DIDs","default":["bsky.app"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum posts per run","default":100}}}}},"example":{"input":{"actors":["bsky.app"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/bluesky-profiles/runs":{"post":{"operationId":"run_bluesky_profiles","summary":"Run Bluesky Public Profiles","description":"Public profiles for specified Bluesky actors. Does not reconstruct the historical top 500 ranking.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"actors":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Public handles or DIDs","default":["bsky.app"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum profiles","default":100}}}}},"example":{"input":{"actors":["bsky.app"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/facebook-events/runs":{"post":{"operationId":"run_facebook_events","summary":"Run Facebook Public Events","description":"Public event identity, schedule and place from anonymous organization events pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Facebook organization handles","default":["NASA"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum events","default":100}}}}},"example":{"input":{"handles":["NASA"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/facebook-post-by-url/runs":{"post":{"operationId":"run_facebook_post_by_url","summary":"Run Facebook Public Posts by URL","description":"Actual message text and author data for specified public Facebook post URLs.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"postUrls":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Public Facebook post URLs","default":[]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum posts","default":100}}}}},"example":{"input":{"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/facebook-posts/runs":{"post":{"operationId":"run_facebook_posts","summary":"Run Facebook Public Profile Posts","description":"Public posts with actual message text exposed on anonymous Facebook profile pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Facebook handles","default":["facebook"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum posts","default":100}}}}},"example":{"input":{"handles":["facebook"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/facebook-profiles/runs":{"post":{"operationId":"run_facebook_profiles","summary":"Run Facebook Public Profiles","description":"Public Facebook profile identity and available header data from anonymous profile pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Facebook public profile handles","default":["facebook"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum profiles","default":100}}}}},"example":{"input":{"handles":["facebook"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/instagram-profiles/runs":{"post":{"operationId":"run_instagram_profiles","summary":"Run Instagram Profiles & Posts","description":"Public posts and profile stats for Instagram accounts.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Accounts","description":"Handles only — @ prefixes and pasted URLs are cleaned up.","default":["nasa","natgeo"],"examples":["nasa, natgeo"]},"maxPostsPerAccount":{"type":"number","minimum":1,"maximum":2000,"title":"Max posts per account","description":"12 posts per request, so this is also the request budget per account.","default":48},"maxAgeDays":{"type":"number","minimum":0,"maximum":3650,"title":"Max age (days)","description":"Stop paging an account once posts get older than this. 0 keeps everything.","default":0},"minLikes":{"type":"number","minimum":0,"title":"Minimum likes","description":"Accounts that hide their like counts report 0, so this will drop all of their posts.","default":0},"collectProfile":{"type":"boolean","title":"Collect profile row","description":"Costs one extra request per account, and is the only way to get follower counts and the bio.","default":true},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Concurrent accounts","description":"Instagram rate-limits anonymous callers abruptly. Raising this ends runs early.","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":2000}}}}},"example":{"input":{"handles":["nasa","natgeo"],"maxPostsPerAccount":48,"maxAgeDays":0,"minLikes":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/instagram-comments/runs":{"post":{"operationId":"run_instagram_comments","summary":"Run Instagram Public Comments","description":"Actual comment records embedded in specified anonymous public Instagram post pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"postCodes":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Instagram post shortcodes","default":["Dd9RyBWBVih"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum comments","default":100}}}}},"example":{"input":{"postCodes":["Dd9RyBWBVih"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/instagram-posts/runs":{"post":{"operationId":"run_instagram_posts","summary":"Run Instagram Public Posts","description":"Recent public media embedded in anonymous Instagram author profile pages, with captions and media thumbnails.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Instagram handles","default":["instagram"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum posts","default":100}}}}},"example":{"input":{"handles":["instagram"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/instagram-reels/runs":{"post":{"operationId":"run_instagram_reels","summary":"Run Instagram Public Reels","description":"Public reels embedded in anonymous Instagram author profiles; filters media explicitly marked clips.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Instagram handles","default":["instagram"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum reels","default":100}}}}},"example":{"input":{"handles":["instagram"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/pinterest-posts/runs":{"post":{"operationId":"run_pinterest_posts","summary":"Run Pinterest Public Pins","description":"Recent public pins from a profile RSS feed. Coverage is limited to the pins exposed by that feed.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Pinterest handles","default":["pinterest"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum pins","default":100}}}}},"example":{"input":{"handles":["pinterest"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/pinterest-profiles/runs":{"post":{"operationId":"run_pinterest_profiles","summary":"Run Pinterest Public Profiles","description":"Public Pinterest profile identity, biography and counts from rendered page data.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Pinterest handles","default":["pinterest"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum profiles","default":100}}}}},"example":{"input":{"handles":["pinterest"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/quora-posts/runs":{"post":{"operationId":"run_quora_posts","summary":"Run Quora Public Questions and Answer Excerpts","description":"Public question identity and answer excerpt from official Quora question pages. Does not collect full answer threads.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"questionSlugs":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Quora question URL slugs","default":["What-is-the-best-way-to-learn-programming"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum questions","default":100}}}}},"example":{"input":{"questionSlugs":["What-is-the-best-way-to-learn-programming"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/reddit-posts/runs":{"post":{"operationId":"run_reddit_posts","summary":"Run Reddit Posts & Comments","description":"Public Reddit posts and threaded comments from chosen subreddits or keywords.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"subreddits":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Subreddits","description":"Names only — r/ prefixes and pasted URLs are cleaned up. Use \"all\" to search the whole site instead.","default":["BuyItForLife","ProductReviews","GoodValue","SaaS","devops","webscraping","dataengineering","AskReddit","technology","gadgets"],"examples":["forhire, webdev, smallbusiness"]},"keywords":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Keywords","description":"Any keyword switches the run to Reddit's search. Single words match whole words; phrases match anywhere.","default":[],"examples":["need a website, looking for a developer"]},"timeFilter":{"type":"string","enum":["hour","day","week","month","year","all"],"title":"Time window","description":"How far back the search reaches.","default":"week"},"maxAgeDays":{"type":"number","minimum":0,"maximum":3650,"title":"Max age (days)","description":"Drop posts older than this. 0 keeps everything the listing returns.","default":0},"matchIn":{"type":"string","enum":["title_body","title","body"],"title":"Match keywords in","default":"title_body"},"requireAll":{"type":"boolean","title":"Require every keyword","description":"Off: a post matching any keyword is kept.","default":false},"keywordFilterEnabled":{"type":"boolean","title":"Filter results by keyword","description":"Off: keep everything Reddit's search returns, without re-checking it locally.","default":true},"minScore":{"type":"number","minimum":-1000,"title":"Minimum score","default":0},"minComments":{"type":"number","minimum":0,"title":"Minimum comments","default":0},"sorts":{"type":"array","items":{"type":"string","enum":["new","hot","top","rising","controversial"]},"uniqueItems":true,"title":"Listing sorts","description":"Used when no keywords are set.","default":["new","hot"]},"searchSort":{"type":"string","enum":["new","relevance","top","comments"],"title":"Search sort","description":"Used when keywords are set. \"new\" is the right choice for monitoring.","default":"new"},"maxPages":{"type":"number","minimum":1,"maximum":10,"title":"Pages per query","description":"100 posts per page.","default":3},"includeComments":{"type":"boolean","title":"Collect comment threads","description":"Off makes a run dramatically faster — one request per post is skipped.","default":true},"maxCommentsPerPost":{"type":"number","minimum":0,"maximum":5000,"title":"Max comments per post","default":500},"concurrency":{"type":"number","minimum":1,"maximum":16,"title":"Concurrent subreddits","description":"Raising this earns 429s faster than it collects.","default":4},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":1000},"transport":{"type":"string","enum":["browser","http"],"title":"Transport","description":"Browser fetches the same JSON from inside a rendered Reddit page via obscura. Direct HTTP is answered with a block page by Reddit's edge and is kept only for Reddit-shaped endpoints that are not behind it.","default":"browser"}}}}},"example":{"input":{"subreddits":["BuyItForLife","ProductReviews","GoodValue","SaaS","devops","webscraping","dataengineering","AskReddit","technology","gadgets"],"keywords":["need a website","looking for a developer"],"timeFilter":"week","maxAgeDays":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/snapchat-posts/runs":{"post":{"operationId":"run_snapchat_posts","summary":"Run Snapchat Public Spotlight Posts","description":"Public video posts exposed as structured data on Snapchat creator pages; excludes unrelated creators.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Snapchat handles","default":["nasa"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum videos","default":100}}}}},"example":{"input":{"handles":["nasa"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/threads-posts/runs":{"post":{"operationId":"run_threads_posts","summary":"Run Threads Public Posts","description":"Recent public posts exposed on a Threads author profile page. No pagination beyond embedded page content.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Threads handles","default":["zuck"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum posts","default":100}}}}},"example":{"input":{"handles":["zuck"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/threads-profiles/runs":{"post":{"operationId":"run_threads_profiles","summary":"Run Threads Public Profiles","description":"Public Threads identity, biography and follower counts from anonymous profile pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Threads handles","default":["zuck"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum profiles","default":100}}}}},"example":{"input":{"handles":["zuck"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/tiktok-videos/runs":{"post":{"operationId":"run_tiktok_videos","summary":"Run TikTok Creator Videos","description":"Public videos from a TikTok creator's profile.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Creators","description":"Handles only — @ prefixes and pasted URLs are cleaned up.","default":[],"examples":["stoolpresidente, nasa"]},"maxVideosPerAccount":{"type":"number","minimum":1,"maximum":2000,"title":"Max videos per account","description":"Roughly 30 videos arrive per grid request.","default":90},"maxAgeDays":{"type":"number","minimum":0,"maximum":3650,"title":"Max age (days)","description":"Stop paging an account once videos get older than this. 0 keeps everything.","default":0},"minPlays":{"type":"number","minimum":0,"title":"Minimum plays","default":0},"replayPagination":{"type":"boolean","title":"Page over HTTP after the first request","description":"Replays the browser’s own signed grid request with a new cursor. Falls back to scrolling if TikTok refuses it.","default":true},"maxScrolls":{"type":"number","minimum":1,"maximum":60,"title":"Scroll steps per profile","description":"Each step triggers another grid request. Only the fallback path needs many.","default":10},"pageTimeoutMs":{"type":"number","minimum":5000,"maximum":120000,"title":"Page timeout (ms)","default":30000},"concurrency":{"type":"number","minimum":1,"maximum":6,"title":"Concurrent accounts","description":"Each account holds a browser page open, which is far more expensive than an HTTP request.","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":1000}}}}},"example":{"input":{"handles":["stoolpresidente","nasa"],"maxVideosPerAccount":90,"maxAgeDays":0,"minPlays":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/tiktok-profiles/runs":{"post":{"operationId":"run_tiktok_profiles","summary":"Run TikTok Public Profiles","description":"Public profile identity and statistics embedded in anonymous TikTok profile pages.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"TikTok handles","default":["tiktok"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum profiles","default":100}}}}},"example":{"input":{"handles":["tiktok"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/vimeo-videos/runs":{"post":{"operationId":"run_vimeo_videos","summary":"Run Vimeo Public Videos","description":"Public Vimeo video metadata using the official anonymous oEmbed endpoint.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"videoIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Vimeo numeric video IDs","default":["22439234"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum videos","default":100}}}}},"example":{"input":{"videoIds":["22439234"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/x-posts/runs":{"post":{"operationId":"run_x_posts","summary":"Run X (Twitter) Posts","description":"Public posts from X (Twitter) account timelines.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Accounts","description":"Handles only — @ prefixes and pasted URLs are cleaned up.","default":["elonmusk","nasa","github"],"examples":["elonmusk, nasa"]},"maxPostsPerAccount":{"type":"number","minimum":1,"maximum":2000,"title":"Max posts per account","description":"20 posts per request, so this is also the request budget per account.","default":100},"maxAgeDays":{"type":"number","minimum":0,"maximum":3650,"title":"Max age (days)","description":"Stop paging an account once posts get older than this. 0 keeps everything.","default":0},"minFavorites":{"type":"number","minimum":0,"title":"Minimum likes","default":0},"includeReplies":{"type":"boolean","title":"Include replies","description":"The timeline mixes an account’s replies in with its own posts.","default":false},"includeRetweets":{"type":"boolean","title":"Include reposts","description":"A repost carries the original author’s text, not this account’s.","default":false},"userQueryId":{"type":"string","maxLength":2000,"title":"UserByScreenName query id","description":"X rotates these hashes. Read the current one from a /graphql/ request in a browser network tab.","default":"qW5u-DAuXpMEG0zA1F7UGQ"},"tweetsQueryId":{"type":"string","maxLength":2000,"title":"UserTweets query id","description":"As above. A 404 from the API almost always means this needs updating.","default":"V7H0Ap3_Hh2FyS75OCDO3Q"},"concurrency":{"type":"number","minimum":1,"maximum":8,"title":"Concurrent accounts","description":"The guest token is shared by the whole run, so parallel accounts share one rate limit.","default":2},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":1500}}}}},"example":{"input":{"handles":["elonmusk","nasa","github"],"maxPostsPerAccount":100,"maxAgeDays":0,"minFavorites":0}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/x-profiles/runs":{"post":{"operationId":"run_x_profiles","summary":"Run X Public Profile Metadata","description":"Public handle, display title and biography from official X profile page metadata. Does not provide follower counts.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"handles":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"X handles","default":["NASA"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum profiles","default":100}}}}},"example":{"input":{"handles":["NASA"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/youtube-channels/runs":{"post":{"operationId":"run_youtube_channels","summary":"Run YouTube Public Channels","description":"Public channel identity, description and links from YouTube channel page metadata.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"channels":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Channel handles or UC IDs","default":["@YouTube"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum channels","default":100}}}}},"example":{"input":{"channels":["@YouTube"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/youtube-videos/runs":{"post":{"operationId":"run_youtube_videos","summary":"Run YouTube Public Videos","description":"Video metadata from public YouTube watch pages; includes channel, description and view count.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"videoIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Video IDs or YouTube URLs","default":["dQw4w9WgXcQ"]},"maxItems":{"type":"number","minimum":1,"maximum":1000,"title":"Maximum videos","default":100}}}}},"example":{"input":{"videoIds":["dQw4w9WgXcQ"],"maxItems":100}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}},"/scrapers/youtube-comments/runs":{"post":{"operationId":"run_youtube_comments","summary":"Run YouTube Video Comments","description":"A YouTube video's metadata and its full comment thread.\n\nQueue a run and return immediately. Parameters you leave out keep the value the scraper is configured with; unknown or mistyped ones are rejected with a 400 that names each problem. If you already have a run of this scraper with the same input that is still in flight, or that finished within maxAgeMinutes, that run is returned instead of starting another. Only scrapers in live mode can be run; a dataset-mode scraper answers 409 and is downloaded instead. Needs a positive credit balance, otherwise 402.\n\nRequires the `scrapers:run` scope.","tags":["runs"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"input":{"type":"object","additionalProperties":false,"properties":{"videoIds":{"type":"array","items":{"type":"string"},"maxItems":1000,"title":"Videos","description":"Ids or any YouTube URL — watch, youtu.be, /shorts/ and /live/ are all accepted.","default":[],"examples":["dQw4w9WgXcQ, https://youtu.be/…"]},"maxCommentsPerVideo":{"type":"number","minimum":1,"maximum":5000,"title":"Max comments per video","description":"Roughly 20 per request. Comments are stored on the video document, which Mongo caps at 16MB.","default":500},"includeReplies":{"type":"boolean","title":"Collect replies","description":"Costs one extra request per thread — the single most expensive option here.","default":false},"maxThreadsWithReplies":{"type":"number","minimum":1,"maximum":500,"title":"Threads to open replies for","description":"Only applies when replies are collected. Threads are opened in the order YouTube ranks them.","default":25},"maxRepliesPerThread":{"type":"number","minimum":1,"maximum":500,"title":"Max replies per thread","default":50},"concurrency":{"type":"number","minimum":1,"maximum":10,"title":"Concurrent videos","default":3},"requestDelayMs":{"type":"number","minimum":0,"maximum":30000,"title":"Delay between requests (ms)","default":500}}}}},"example":{"input":{"videoIds":["dQw4w9WgXcQ","https://youtu.be/…"],"maxCommentsPerVideo":500,"includeReplies":false,"maxThreadsWithReplies":25}}}}},"responses":{"202":{"description":"Start a run","content":{"application/json":{"example":{"id":"66f2c1a9e4b0a7d3c9f01234","scraperId":"reddit","status":"queued","input":{"subreddits":["webdev"],"timeFilter":"week"},"rowCount":0,"createdAt":"2026-09-30T09:12:04.000Z","startedAt":"2026-09-30T09:12:05.000Z","billing":{"status":"pending","credits":4},"links":{"self":"/v1/runs/66f2c1a9e4b0a7d3c9f01234","rows":"/v1/runs/66f2c1a9e4b0a7d3c9f01234/rows","download":"/v1/datasets/reddit/downloads"}}}}},"401":{"description":"Missing, invalid or expired API key"},"403":{"description":"The key lacks the required scope"},"429":{"description":"Rate limit exceeded"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"},"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"}}}}