Olostep - Web Scraping & Crawling API

Web scraping, crawling, and AI-powered answer extraction at scale

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/research-tools/capabilities/web-scraping-olostep#main ~/.claude/skills/web-scraping-olostep

For one project only, change the path to .claude/skills/web-scraping-olostep.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text243 lines
web-scraping-olostep/SKILL.md243 lines12.2 KBpushed 96d agoRawView on GitHub

Olostep - Web Scraping & Crawling API

Setup

Read your credentials from ~/.gooseworks/credentials.json:

export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")

If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login

All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"

Powerful web scraping, crawling, and AI-powered content extraction.

Capabilities

  • Create Scrape: Initiate a web page scrape
  • Create Answer: The AI will perform actions like searching and browsing web pages to find the answer to the provided task
  • Maps: This endpoint allows users to get all the urls on a certain website
  • Start Crawl: Starts a new crawl
  • Start Batch: Starts a new batch
  • Batch Items: Retrieves the list of items processed for a batch
  • Crawl Info: Fetches information about a specific crawl
  • Crawl Pages: Fetches the list of pages for a specific crawl
  • Get Answer: This endpoint retrieves a previously completed answer by its ID
  • Get Scrape: Can be used to retrieve response for a scrape
  • Batch Info: Retrieves the status and progress information about a batch
  • Retrieve Content: Retrieve page content of processed batches and crawls urls

Usage

Create Scrape

Initiate a web page scrape

Parameters:

  • url_to_scrape* (string) - The URL to start scraping from.
  • wait_before_scraping (integer) - Time to wait in milliseconds before starting the scraping.
  • formats (string[]) - Formats in which you want the content.
  • remove_css_selectors (string) - Option to remove certain CSS selectors from the content. Optionally, you can also pass a JSON stringified array of specific selectors you want to remove. The CSS selectors removed when this option is set to default are ['nav','footer','script','style','noscript','svg',[role=alert],[role=banner],[role=dialog],[role=alertdialog],[role=region][aria-label*=skip i],[aria-modal=true]] Available options: default, none, array
  • actions (object[]) - Actions to perform on the page before getting the content.
  • country (string) - Residential country to load the request from. Supported values are: * US (United States) * CA (Canada) * IT (Italy) * IN (India) * GB (England) * JP (Japan) * MX (Mexico) * AU (Australia) * ID (Indonesia) * UA (UAE) * RU (Russia) * RANDOM Some operations, like scraping Google Search and Google News, support all countries.
  • transformer (string) - Specify the HTML transformer to use, if any. Postlight's Mercury Parser library is used to remove ads and other unwanted content from the scraped content. Available options: postlight, none
  • remove_images (boolean) - Option to remove images from the scraped content. Defaults to false.
  • remove_class_names (string[]) - List of class names to remove from the content.
  • parser (object) - When defining json as a format, you can use this parameter to specify the parser to use. Parsers are useful to extract structured content from web pages. Olostep has a few parsers built in for most common web pages, and you can also create your own parsers.
  • llm_extract (object)
  • links_on_page (object) - With this option, you can get all the links present on the page you scrape.
  • screen_size (object) - Configuration for screen size. Preset dimensions are available through screen_type: desktop (1920x1080), mobile (414x896), or default (768x1024).
  • metadata (object) - User-defined metadata. Not supported yet
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/scrapes","body":{"url_to_scrape":"https://example.com/page"}}'

Create Answer

The AI will perform actions like searching and browsing web pages to find the answer to the provided task. Execution time is 3-30s depending upon complexity. For longer tasks, use the agent endpoint instead.

Parameters:

  • task* (string) - The task to be performed.
  • json_format (object) - The desired output JSON object with empty values as a schema, or simply describe the data you want as a string.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/answers","body":{"task":"What are the latest AI developments?"}}'

Maps

This endpoint allows users to get all the urls on a certain website. It can take up to 120 seconds for complex websites. For large websites, results are paginated using cursor-based pagination

Parameters:

  • url* (string) - The URL of the website for which you want the links
  • search_query (string) - An optional search query to sort the links by search relevance.
  • top_n (number) - An optional number to limit to only top n links for a search query.
  • include_subdomain (boolean) - Include subdomains of the given URL. true by default.
  • include_urls (string[]) - URL path patterns to include using glob syntax. For example: /blog/** to only include blog URLs. Only URLs matching these patterns will be returned.
  • exclude_urls (string[]) - URL path patterns to exclude using glob syntax. For example: /careers/**. Excluded URLs will supersede included URLs.
  • cursor (string) - OPTIONAL: Pagination cursor from a previous response. When provided, returns the next set of URLs from where the previous request left off due to response size limit.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/maps","body":{"url":"https://example.com"}}'

Start Crawl

Starts a new crawl. You receive a id to track the progress. The operation may take 1-10 mins depending upon the site and depth and pages parameters.

Parameters:

  • start_url* (string) - The starting point of the crawl.
  • max_pages* (number) - Maximum number of pages to crawl. Recommended for most use cases like crawling an entire website.
  • include_urls (string[]) - URL path patterns to include in the crawl using glob syntax. Defaults to /** which includes all URLs. Use patterns like /blog/** to crawl specific sections (e.g., only blog pages), /products/*.html for product pages, or multiple patterns for different sections. Supports standard glob features like * (any characters) and ** (recursive matching).
  • exclude_urls (string[]) - URL path names in glob pattern to exclude. For example: /careers/**. Excluded URLs will supersede included URLs.
  • max_depth (number) - Maximum depth of the crawl. Useful to extract only up to n-degree of links.
  • include_external (boolean) - Crawl first-degree external links.
  • include_subdomain (boolean) - Include subdomains of the website. false by default.
  • search_query (string) - An optional search query to find specific links and also sort the results by relevance.
  • top_n (number) - An optional number to only crawl the top N most relevant links on every page as per search query.
  • webhook_url (string) - An optional POST request endpoint called when this crawl is completed. The body of the request will be same as the response of this v1/crawls/{crawl_id} endpoint.
  • timeout (number) - End the crawl after n seconds with the pages completed until then. May take ~10s extra from provided timeout.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/crawls"}'
  "start_url": "https://example.com",
  "max_pages": 100
}'

Start Batch

Starts a new batch. You receive an id that you can use to track the progress of the batch as shown here. Note: Processing time is constant regardless of batch size

Parameters:

  • items* (object[]) - Array of items to be processed in the batch.
  • country (string) - Country for the batch execution. Provide in ISO 3166-1 alpha-2 codes like US(USA), IN(India), etc
  • parser (object) - You can use this parameter to specify the parser to use. Parsers are useful to extract structured content from web pages. Olostep has a few parsers built in for most common web pages, and you can also create your own parsers.
  • links_on_page (object) - Get all the links present on each page in the batch.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/batches"}'
  "items": [
    {"url_to_scrape": "https://example.com/page1"},
    {"url_to_scrape": "https://example.com/page2"}
  ]
}'

Batch Items

Retrieves the list of items processed for a batch. You can then use the retrieve_id to get the content with the Retrieve Endpoint

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/batches/{batch_id}/items"}'

Crawl Info

Fetches information about a specific crawl.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/crawls/{crawl_id}"}'

Crawl Pages

Fetches the list of pages for a specific crawl.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/crawls/{crawl_id}/pages"}'

Get Answer

This endpoint retrieves a previously completed answer by its ID.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/answers/{answer_id}"}'

Get Scrape

Can be used to retrieve response for a scrape.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/scrapes/{scrape_id}"}'

Batch Info

Retrieves the status and progress information about a batch. To retrieve the content for a batch, see here

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/batches/{batch_id}"}'

Retrieve Content

Retrieve page content of processed batches and crawls urls.

Parameters:

  • retrieve_id* (string) - The ID of the page content to retrieve. Available in the response of /v1/crawls/{crawl_id}/pages, /v1/scrapes/{scrape_id} or /v1/batches/{batch_id}/items endpoints
  • formats (string[]) - Optional array to retrieve only specific formats in production. If not provided, all formats will be returned.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/retrieve","body":{"retrieve_id":"abc123"}}'

Use Cases

  1. Data Collection: Gather data from websites at scale
  2. Content Monitoring: Track changes on competitor sites
  3. Research Automation: Get AI-synthesized answers from web sources
  4. SEO Analysis: Crawl and analyze site structure

Discover More

For full endpoint details and parameters:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"olostep API endpoints"}' List all endpoints
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"olostep","path":"/v1/scrapes"}'   # Get endpoint details
1---
2name: web-scraping-olostep
3description: Web scraping, crawling, and AI-powered answer extraction at scale
4source: orthogonal
5---
6 
7 
8# Olostep - Web Scraping & Crawling API
9 
10## Setup
11 
12Read your credentials from ~/.gooseworks/credentials.json:
13```bash
14export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
15export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
16```
17 
18If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
19 
20All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
21 
22 
23Powerful web scraping, crawling, and AI-powered content extraction.
24 
25## Capabilities
26 
27- **Create Scrape**: Initiate a web page scrape
28- **Create Answer**: The AI will perform actions like searching and browsing web pages to find the answer to the provided task
29- **Maps**: This endpoint allows users to get all the urls on a certain website
30- **Start Crawl**: Starts a new crawl
31- **Start Batch**: Starts a new batch
32- **Batch Items**: Retrieves the list of items processed for a batch
33- **Crawl Info**: Fetches information about a specific crawl
34- **Crawl Pages**: Fetches the list of pages for a specific crawl
35- **Get Answer**: This endpoint retrieves a previously completed answer by its ID
36- **Get Scrape**: Can be used to retrieve response for a scrape
37- **Batch Info**: Retrieves the status and progress information about a batch
38- **Retrieve Content**: Retrieve page content of processed batches and crawls urls
39 
40## Usage
41 
42### Create Scrape
43Initiate a web page scrape
44 
45Parameters:
46- url_to_scrape* (string) - The URL to start scraping from.
47- wait_before_scraping (integer) - Time to wait in milliseconds before starting the scraping.
48- formats (string[]) - Formats in which you want the content.
49- remove_css_selectors (string) - Option to remove certain CSS selectors from the content. Optionally, you can also pass a JSON stringified array of specific selectors you want to remove. The CSS selectors removed when this option is set to default are ['nav','footer','script','style','noscript','svg',[role=alert],[role=banner],[role=dialog],[role=alertdialog],[role=region][aria-label*=skip i],[aria-modal=true]] Available options: `default`, `none`, `array`
50- actions (object[]) - Actions to perform on the page before getting the content.
51- country (string) - Residential country to load the request from. Supported values are: * US (United States) * CA (Canada) * IT (Italy) * IN (India) * GB (England) * JP (Japan) * MX (Mexico) * AU (Australia) * ID (Indonesia) * UA (UAE) * RU (Russia) * RANDOM Some operations, like scraping Google Search and Google News, support all countries.
52- transformer (string) - Specify the HTML transformer to use, if any. Postlight's Mercury Parser library is used to remove ads and other unwanted content from the scraped content. Available options: `postlight`, `none`
53- remove_images (boolean) - Option to remove images from the scraped content. Defaults to false.
54- remove_class_names (string[]) - List of class names to remove from the content.
55- parser (object) - When defining json as a format, you can use this parameter to specify the parser to use. Parsers are useful to extract structured content from web pages. Olostep has a few parsers built in for most common web pages, and you can also create your own parsers.
56- llm_extract (object)
57- links_on_page (object) - With this option, you can get all the links present on the page you scrape.
58- screen_size (object) - Configuration for screen size. Preset dimensions are available through screen_type: desktop (1920x1080), mobile (414x896), or default (768x1024).
59- metadata (object) - User-defined metadata. Not supported yet
60 
61```bash
62curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
63 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
64 -H "Content-Type: application/json" \
65 -d '{"api":"olostep","path":"/v1/scrapes","body":{"url_to_scrape":"https://example.com/page"}}'
66```
67 
68### Create Answer
69The AI will perform actions like searching and browsing web pages to find the answer to the provided task. Execution time is 3-30s depending upon complexity. For longer tasks, use the agent endpoint instead.
70 
71Parameters:
72- task* (string) - The task to be performed.
73- json_format (object) - The desired output JSON object with empty values as a schema, or simply describe the data you want as a string.
74 
75```bash
76curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
77 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
78 -H "Content-Type: application/json" \
79 -d '{"api":"olostep","path":"/v1/answers","body":{"task":"What are the latest AI developments?"}}'
80```
81 
82### Maps
83This endpoint allows users to get all the urls on a certain website. It can take up to 120 seconds for complex websites. For large websites, results are paginated using cursor-based pagination
84 
85Parameters:
86- url* (string) - The URL of the website for which you want the links
87- search_query (string) - An optional search query to sort the links by search relevance.
88- top_n (number) - An optional number to limit to only top n links for a search query.
89- include_subdomain (boolean) - Include subdomains of the given URL. `true` by default.
90- include_urls (string[]) - URL path patterns to include using glob syntax. For example: `/blog/**` to only include blog URLs. Only URLs matching these patterns will be returned.
91- exclude_urls (string[]) - URL path patterns to exclude using glob syntax. For example: `/careers/**`. Excluded URLs will supersede included URLs.
92- cursor (string) - OPTIONAL: Pagination cursor from a previous response. When provided, returns the next set of URLs from where the previous request left off due to response size limit.
93 
94```bash
95curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
96 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
97 -H "Content-Type: application/json" \
98 -d '{"api":"olostep","path":"/v1/maps","body":{"url":"https://example.com"}}'
99```
100 
101### Start Crawl
102Starts a new crawl. You receive a `id` to track the progress. The operation may take 1-10 mins depending upon the site and depth and pages parameters.
103 
104Parameters:
105- start_url* (string) - The starting point of the crawl.
106- max_pages* (number) - Maximum number of pages to crawl. Recommended for most use cases like crawling an entire website.
107- include_urls (string[]) - URL path patterns to include in the crawl using glob syntax. Defaults to `/**` which includes all URLs. Use patterns like `/blog/**` to crawl specific sections (e.g., only blog pages), `/products/*.html` for product pages, or multiple patterns for different sections. Supports standard glob features like * (any characters) and ** (recursive matching).
108- exclude_urls (string[]) - URL path names in glob pattern to exclude. For example: `/careers/**`. Excluded URLs will supersede included URLs.
109- max_depth (number) - Maximum depth of the crawl. Useful to extract only up to n-degree of links.
110- include_external (boolean) - Crawl first-degree external links.
111- include_subdomain (boolean) - Include subdomains of the website. `false` by default.
112- search_query (string) - An optional search query to find specific links and also sort the results by relevance.
113- top_n (number) - An optional number to only crawl the top N most relevant links on every page as per search query.
114- webhook_url (string) - An optional POST request endpoint called when this crawl is completed. The body of the request will be same as the response of this [`v1/crawls/{crawl_id}`](./info#response-created) endpoint.
115- timeout (number) - End the crawl after n seconds with the pages completed until then. May take ~10s extra from provided timeout.
116 
117```bash
118curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
119 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
120 -H "Content-Type: application/json" \
121 -d '{"api":"olostep","path":"/v1/crawls"}'
122 "start_url": "https://example.com",
123 "max_pages": 100
124}'
125```
126 
127### Start Batch
128Starts a new batch. You receive an `id` that you can use to track the progress of the batch as shown [here](/api-reference/batches/info). Note: Processing time is constant regardless of batch size
129 
130Parameters:
131- items* (object[]) - Array of items to be processed in the batch.
132- country (string) - Country for the batch execution. Provide in ISO 3166-1 alpha-2 codes like US(USA), IN(India), etc
133- parser (object) - You can use this parameter to specify the parser to use. Parsers are useful to extract structured content from web pages. Olostep has a few parsers built in for most common web pages, and you can also create your own parsers.
134- links_on_page (object) - Get all the links present on each page in the batch.
135 
136```bash
137curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
138 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
139 -H "Content-Type: application/json" \
140 -d '{"api":"olostep","path":"/v1/batches"}'
141 "items": [
142 {"url_to_scrape": "https://example.com/page1"},
143 {"url_to_scrape": "https://example.com/page2"}
144 ]
145}'
146```
147 
148### Batch Items
149Retrieves the list of items processed for a batch. You can then use the `retrieve_id` to get the content with the Retrieve Endpoint
150 
151```bash
152curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
153 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
154 -H "Content-Type: application/json" \
155 -d '{"api":"olostep","path":"/v1/batches/{batch_id}/items"}'
156```
157 
158### Crawl Info
159Fetches information about a specific crawl.
160 
161```bash
162curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
163 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
164 -H "Content-Type: application/json" \
165 -d '{"api":"olostep","path":"/v1/crawls/{crawl_id}"}'
166```
167 
168### Crawl Pages
169Fetches the list of pages for a specific crawl.
170 
171```bash
172curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
173 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
174 -H "Content-Type: application/json" \
175 -d '{"api":"olostep","path":"/v1/crawls/{crawl_id}/pages"}'
176```
177 
178### Get Answer
179This endpoint retrieves a previously completed answer by its ID.
180 
181```bash
182curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
183 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
184 -H "Content-Type: application/json" \
185 -d '{"api":"olostep","path":"/v1/answers/{answer_id}"}'
186```
187 
188### Get Scrape
189Can be used to retrieve response for a scrape.
190 
191```bash
192curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
193 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
194 -H "Content-Type: application/json" \
195 -d '{"api":"olostep","path":"/v1/scrapes/{scrape_id}"}'
196```
197 
198### Batch Info
199Retrieves the status and progress information about a batch. To retrieve the content for a batch, see here
200 
201```bash
202curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
203 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
204 -H "Content-Type: application/json" \
205 -d '{"api":"olostep","path":"/v1/batches/{batch_id}"}'
206```
207 
208### Retrieve Content
209Retrieve page content of processed batches and crawls urls.
210 
211Parameters:
212- retrieve_id* (string) - The ID of the page content to retrieve. Available in the response of `/v1/crawls/{crawl_id}/pages`, `/v1/scrapes/{scrape_id}` or `/v1/batches/{batch_id}/items` endpoints
213- formats (string[]) - Optional array to retrieve only specific formats in production. If not provided, all formats will be returned.
214 
215```bash
216curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
217 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
218 -H "Content-Type: application/json" \
219 -d '{"api":"olostep","path":"/v1/retrieve","body":{"retrieve_id":"abc123"}}'
220```
221 
222## Use Cases
223 
2241. **Data Collection**: Gather data from websites at scale
2252. **Content Monitoring**: Track changes on competitor sites
2263. **Research Automation**: Get AI-synthesized answers from web sources
2274. **SEO Analysis**: Crawl and analyze site structure
228 
229## Discover More
230 
231For full endpoint details and parameters:
232 
233```bash
234curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
235 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
236 -H "Content-Type: application/json" \
237 -d '{"prompt":"olostep API endpoints"}' List all endpoints
238curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
239 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
240 -H "Content-Type: application/json" \
241 -d '{"api":"olostep","path":"/v1/scrapes"}' # Get endpoint details
242```
243 

Discussion

Alternatives

Also in Scraping & extraction