# Litescrape — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orthogonal.com/v1/run` · [llms.txt](https://www.orthogonal.com/llms.txt) · [browse all APIs](https://www.orthogonal.com/catalog)

Litescrape v3: one API for search engines (Google, Bing, DuckDuckGo, Brave, Yahoo, Yandex, Baidu, Naver), maps and reviews, e-commerce, social media, jobs, real estate and general web page fetch and screenshots, returned as structured JSON.

**Verified:** yes

## Access

**Run API:** `POST https://api.orthogonal.com/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://www.orthogonal.com/account/keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Endpoint health status

Public and free; no API key or probes. Counts completed customer requests received in the last 15 minutes at the last scheduled update, once per request after internal retries; excludes internal test traffic. HTTP 422 responses, where the target page was at fault, are not failures. A Modal cron job publishes a shared snapshot every 15 minutes. Reading status never queries the production database or triggers a refresh. Missing snapshots or snapshots at least 30 minutes old return 503. Filter with endpoint=/api/google/search (or /google/search). HTTP 200 means the report is available: inspect status or endpoints[].healthy for health. Overall status is the worst degradation, otherwise not_enough_data if any endpoint lacks samples.

`GET /api/status`

**Cost:** Free

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `endpoint` | string | No |  |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/status","method":"GET","query":{"endpoint":"<string>"}}'
```

### Service readiness

Check whether the service is ready to accept requests.

`GET /healthz`

**Cost:** Free

**Docs:** https://api.litescrape.com/api/openapi.json

_No parameters required._

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/healthz","method":"GET"}'
```

### Airbnb Search

Search Airbnb stays by destination and dates.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/airbnb/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Destination, address, or landmark. |
| `map_bounds` | string | No | North,east,south,west map coordinates. |
| `airbnb_domain` | string | No | Airbnb localization domain. |
| `currency` | string | No | Currency code for returned prices. |
| `check_in_date` | string | No | Check-in date in YYYY-MM-DD format. |
| `check_out_date` | string | No | Check-out date, later than check-in. |
| `adults` | integer | No | Number of guests aged 13 or above. |
| `children` | integer | No | Number of guests aged 2 to 12. |
| `infants` | integer | No | Number of guests under 2. |
| `pets` | integer | No | Number of pets. |
| `room_type` | string | No | Type of place. |
| `min_price` | number | No | Minimum total trip price including fees. |
| `max_price` | number | No | Maximum total trip price including fees. |
| `bedrooms` | integer | No | Minimum bedrooms. |
| `beds` | integer | No | Minimum beds. |
| `bathrooms` | number | No | Minimum bathrooms. |
| `property_types` | string | No | Comma-separated property types. |
| `amenities` | string | No | Comma-separated required amenities. |
| `accessibility_features` | string | No | Comma-separated accessibility features. |
| `host_languages` | string | No | Comma-separated host language codes. |
| `instant_book` | boolean | No | Require instant booking. |
| `self_check_in` | boolean | No | Require self check-in. |
| `guest_favorite` | boolean | No | Only Guest favorites. |
| `luxe` | boolean | No | Only Airbnb Luxe places. |
| `page` | integer | No | Results page, from 1 to 15. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/airbnb/search","method":"GET","query":{"q":"<string>","map_bounds":"<string>","airbnb_domain":"<string>","currency":"<string>","check_in_date":"<string>","check_out_date":"<string>","adults":"<integer>","children":"<integer>","infants":"<integer>","pets":"<integer>","room_type":"<string>","min_price":"<number>","max_price":"<number>","bedrooms":"<integer>","beds":"<integer>","bathrooms":"<number>","property_types":"<string>","amenities":"<string>","accessibility_features":"<string>","host_languages":"<string>","instant_book":"<boolean>","self_check_in":"<boolean>","guest_favorite":"<boolean>","luxe":"<boolean>","page":"<integer>","timeout":"<number>"}}'
```

### AliExpress Product

Get an AliExpress product's details and price.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/aliexpress/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/aliexpress/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### AliExpress Search

Search AliExpress products with prices.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/aliexpress/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/aliexpress/search","method":"GET","query":{"query":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Allkeyshop Product

Get Allkeyshop product details, prices, and available offers.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/allkeyshop/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Product URL from this provider.  Use a product URL returned by the search endpoint. Query strings and fragments are not accepted. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/allkeyshop/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Allkeyshop Search

Search Allkeyshop products with prices and product links.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/allkeyshop/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Product keywords to search for. |
| `page` | integer | No | Result page, starting at one. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/allkeyshop/search","method":"GET","query":{"q":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Amazon Autocomplete

Get Amazon search suggestions for a prefix and department.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/amazon/autocomplete`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amazon_domain` | string | No | Amazon storefront hostname. |
| `k` | string | Yes | Partial search text to complete. |
| `amazon_department` | string | No | Department alias used to narrow suggestions; aps searches all departments. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/amazon/autocomplete","method":"GET","query":{"amazon_domain":"<string>","k":"<string>","amazon_department":"<string>","timeout":"<number>"}}'
```

### Amazon Product

Get an Amazon product page, with optional seller offers.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/amazon/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amazon_domain` | string | No | Amazon storefront hostname. |
| `language` | string | No | Storefront locale, such as en_US or ja_JP. |
| `delivery_zip` | string | No | Postal code used to determine delivery eligibility. |
| `shipping_location` | string | No | Two-letter destination country code. |
| `asin` | string | Yes | Ten-character Amazon product identifier. |
| `other_sellers` | boolean | No | Fetch additional seller offers for this item. |
| `all_related_products` | boolean | No | Fetch every page exposed by related-product carousels. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/amazon/product","method":"GET","query":{"amazon_domain":"<string>","language":"<string>","delivery_zip":"<string>","shipping_location":"<string>","asin":"<string>","other_sellers":"<boolean>","all_related_products":"<boolean>","timeout":"<number>"}}'
```

### Amazon Search

Search Amazon products.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/amazon/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amazon_domain` | string | No | Amazon storefront hostname. |
| `language` | string | No | Storefront locale, such as en_US or ja_JP. |
| `delivery_zip` | string | No | Postal code used to determine delivery eligibility. |
| `shipping_location` | string | No | Two-letter destination country code. |
| `k` | string | No | Search words. Supply either k or node. |
| `node` | string | No | Browse category ID. Supply either node or k. |
| `s` | string | No | Ordering for the product listings. |
| `rh` | string | No | Comma-separated Amazon filter tokens, such as n:16318031,p_72:1248897011. |
| `dc` | boolean | No | Keep results tied to the original spelling of the query. |
| `page` | integer | No | Result page to retrieve, starting at 1. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/amazon/search","method":"GET","query":{"amazon_domain":"<string>","language":"<string>","delivery_zip":"<string>","shipping_location":"<string>","k":"<string>","node":"<string>","s":"<string>","rh":"<string>","dc":"<boolean>","page":"<integer>","timeout":"<number>"}}'
```

### Apartments.com Property

Get an Apartments.com property by URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apartments/property`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Apartments.com property URL ending in its seven-character listing ID, without query parameters.  Alpha: availability may vary by location or property. Returns available fields for the requested property. Prices may represent a rental range. Bedroom-specific rents and total-monthly-price labels are preserved when present. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apartments/property","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Apartments.com Search

Search Apartments.com listings from a search URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apartments/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Apartments.com location search URL, including any price, bedroom, amenity or page filters.  Alpha: availability may vary by location or property. Use the site URL to set filters or select a page. Follow pagination.next when present. Page links and total counts are included when available. Prices may represent a rental range. Bedroom-specific rents and total-monthly-price labels are preserved when present. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apartments/search","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Apple App Store Product

Get an App Store app's details, ratings and version history.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apple/app-store/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | No | Two-letter Apple storefront country. UK is accepted as an alias for GB. |
| `product_id` | string | Yes | Positive decimal Apple app identifier, up to 20 digits. |
| `type` | string | No | App product type. Only app is supported. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apple/app-store/product","method":"GET","query":{"country":"<string>","product_id":"<string>","type":"<string>","timeout":"<number>"}}'
```

### Apple App Store Reviews

Get reviews for an App Store app.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apple/app-store/reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | No | Two-letter Apple storefront country. UK is accepted as an alias for GB. |
| `product_id` | string | Yes | Positive decimal Apple app identifier, up to 20 digits. |
| `sort` | string | No | mostrecent or mosthelpful. Apple's Mac storefront always returns newest first. |
| `page` | integer | No | One-based page number, from 1 through 2,147,483,647. Exhausted pages return an empty review list. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apple/app-store/reviews","method":"GET","query":{"country":"<string>","product_id":"<string>","sort":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Apple App Store Search

Search the App Store for iPhone, iPad and Mac apps.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apple/app-store/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | No | Two-letter Apple storefront country. UK is accepted as an alias for GB. |
| `term` | string | Yes | Search term with 1 to 2,048 UTF-8 bytes of printable text, and at most 4,096 bytes after URL encoding. |
| `lang` | string | No | Language-region code, such as en-us or fr-fr. |
| `num` | integer | No | Maximum results after filtering, from 1 through 200. |
| `disallow_explicit` | boolean | No | Exclude explicit results when true. |
| `property` | string | No | Use developer to match developer names, ignoring case. |
| `category_id` | integer | No | Filter results by a native genre identifier, from 1 through 2,147,483,647. |
| `device` | string | No | mobile for iPhone apps, tablet for iPad apps, or desktop for Mac apps. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apple/app-store/search","method":"GET","query":{"country":"<string>","term":"<string>","lang":"<string>","num":"<integer>","disallow_explicit":"<boolean>","property":"<string>","category_id":"<integer>","device":"<string>","timeout":"<number>"}}'
```

### Apple Maps Places

Search Apple Maps places.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apple/maps/places`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `muid` | string | Yes | One or more Apple Maps unique place identifiers.  Separate multiple identifiers with commas. Accepted batch size: 1 through 50 unsigned 64-bit decimal IDs. Example: 4372355869446211302. |
| `locale` | string | No | Controls Apple Maps language and regional formatting.  Examples: en-US, fr-FR, ja-JP, and zh-TW. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apple/maps/places","method":"GET","query":{"muid":"<string>","locale":"<string>","timeout":"<number>"}}'
```

### Apple Maps Reviews

Get Apple ratings and reviews for an Apple Maps place.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/apple/maps/reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `muid` | string | Yes | Exactly one unsigned 64-bit decimal Apple Maps MUID. |
| `locale` | string | No | Apple Maps language and regional formatting. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/apple/maps/reviews","method":"GET","query":{"muid":"<string>","locale":"<string>","timeout":"<number>"}}'
```

### Jobs by Ashby Search

Search jobs on a company's Ashby job board.

Use JSON POST for native arrays, or encode array parameters as JSON strings in GET queries. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/ashby/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Case-insensitive phrase in title or description. |
| `page` | integer | No | One-based results page. Use next_page from the response to continue. |
| `board` | string | Yes | Employer board name from jobs.ashbyhq.com/{board}, for example ashby. |
| `location` | string | No | Case-insensitive phrase in primary or secondary locations. |
| `department` | string | No | Case-insensitive department name. |
| `team` | string | No | Exact team name, case-insensitive. |
| `workplace_type` | string | No | Employer's workplace type. |
| `country` | string | No | Country from a primary or secondary postal address, for example USA. Exact case-insensitive match. |
| `region` | string | No | State or province from a primary or secondary postal address. Exact case-insensitive match. |
| `city` | string | No | City from a primary or secondary postal address. All supplied address filters must match the same address. |
| `remote` | boolean | No | True selects remote jobs. False selects non-remote jobs. |
| `employment_type` | string | No | Employment type. |
| `limit` | integer | No | Results per page. |
| `include_compensation` | boolean | No | Include published compensation tiers and salary ranges. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/ashby/search","method":"GET","query":{"q":"<string>","page":"<integer>","board":"<string>","location":"<string>","department":"<string>","team":"<string>","workplace_type":"<string>","country":"<string>","region":"<string>","city":"<string>","remote":"<boolean>","employment_type":"<string>","limit":"<integer>","include_compensation":"<boolean>","timeout":"<number>"}}'
```

### Google Maps Photo Metadata

Get the place, contributor, and date of a Maps photo.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/maps/photo-meta`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_id` | string | Yes | Required Google Maps photo ID. Follow photo_meta_link from a Maps place response. |
| `hl` | string | No | Google interface and result language. |
| `gl` | string | No | Two-letter country localization code. |
| `google_domain` | string | No | A Google domain such as google.com or google.co.uk. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/maps/photo-meta","method":"GET","query":{"data_id":"<string>","hl":"<string>","gl":"<string>","google_domain":"<string>","timeout":"<number>"}}'
```

### Baidu Search

Get Baidu search results as JSON.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/baidu/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Required search text, trimmed to 1 through 500 characters. Unicode queries are supported. Control characters are rejected. |
| `pn` | integer | No | Zero-based result offset from 0 through 750, not a page number. Use pagination.next_pn or litescrape_pagination.next to continue. |
| `rn` | integer | No | Requested result count: 10, 20, or 50. Defaults to 10. Baidu can return fewer web results when a page includes other result modules. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/baidu/search","method":"GET","query":{"q":"<string>","pn":"<integer>","rn":"<integer>","timeout":"<number>"}}'
```

### Best Buy Product

Get a Best Buy product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bestbuy/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bestbuy/product","method":"GET","query":{"url":"<string>","store_id":"<string>","timeout":"<number>"}}'
```

### Best Buy Search

Search Best Buy products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bestbuy/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bestbuy/search","method":"GET","query":{"query":"<string>","page":"<integer>","store_id":"<string>","timeout":"<number>"}}'
```

### Bing Autocomplete

Get Bing search suggestions for a partial query, with entity details when Bing shows them.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bing/autocomplete`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Partial Bing search query to complete, up to 100 characters. |
| `mkt` | string | No | Bing language-country market, such as en-US or de-DE.  Cannot be combined with cc. Without mkt or cc, local suggestions can name a location you did not choose. |
| `cc` | string | No | Two-letter country code, such as US or FR.  Cannot be combined with mkt. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bing/autocomplete","method":"GET","query":{"q":"<string>","mkt":"<string>","cc":"<string>","timeout":"<number>"}}'
```

### Bing Images

Search Bing Images with size, color, date and license filters.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bing/images`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Image search query, from 1 through 2,048 characters after trimming. Control characters are rejected. |
| `first` | integer | No | One-based Bing result offset, from 1 through 10,000.  Prefer litescrape_pagination.next when returned. Bing may reorder or repeat images between requests. |
| `count` | integer | No | Maximum images to return, from 1 through 100. Defaults to 35.  Bing may return fewer images. Follow the pagination link to retrieve another batch. |
| `mkt` | string | No | Optional language-country market, such as en-US. Cannot be combined with cc. |
| `cc` | string | No | Optional two-letter country code. Cannot be combined with mkt. |
| `safeSearch` | string | No | Bing content filter: off, moderate, or strict. Case-insensitive; defaults to moderate.  Bing may enforce stricter filtering for some markets. |
| `imagesize` | string | No | Bing image size bucket: small, medium, large or wallpaper (extra large). |
| `photo` | string | No | Photographs, clipart, line drawings, animated GIFs or images with transparent backgrounds. |
| `aspect` | string | No | Filter to square, wide or tall images. |
| `color2` | string | No | Use color for any color, bw for black and white, or a dominant color: FGcls_RED, FGcls_ORANGE, FGcls_YELLOW, FGcls_GREEN, FGcls_TEAL, FGcls_BLUE, FGcls_PURPLE, FGcls_PINK, FGcls_BROWN, FGcls_BLACK, FGcls_GRAY or FGcls_WHITE. |
| `face` | string | No | Use face for just faces or portrait for head-and-shoulders images. |
| `age` | string | No | Bing date filter: lt1440 (past 24 hours), lt10080 (past week), lt43200 (past month) or lt525600 (past year). |
| `license` | string | No | Use creativecommons for all Creative Commons results, L1 for public domain, or native license categories L2 through L7. Bing also supports grouped categories.  L2_L3_L4_L5_L6_L7: free to share and use. L2_L3_L4: free to share and use commercially. L2_L3_L5_L6: free to modify, share and use. L2_L3: free to modify, share and use commercially. |
| `qft` | string | No | Optional native Bing Images qft filter expression, up to 2,048 characters without control characters.  Named image filters override the same category in qft and preserve unrelated categories. Without named filters, qft is passed through unchanged. Filter matching and availability are controlled by Bing. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bing/images","method":"GET","query":{"q":"<string>","first":"<integer>","count":"<integer>","mkt":"<string>","cc":"<string>","safeSearch":"<string>","imagesize":"<string>","photo":"<string>","aspect":"<string>","color2":"<string>","face":"<string>","age":"<string>","license":"<string>","qft":"<string>","timeout":"<number>"}}'
```

### Bing Maps

Search Bing Maps places, or get one place by ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bing/maps`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Search query; required unless place_id is supplied. |
| `place_id` | string | No | Native Bing Maps entity identifier for a detail lookup. |
| `cp` | string | No | Optional map center in latitude~longitude form. |
| `setlang` | string | No | Bing Maps interface language, such as en-US. |
| `first` | integer | No | Listing offset from 0 through 10,000. |
| `count` | integer | No | Number of listings from 1 through 30. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bing/maps","method":"GET","query":{"q":"<string>","place_id":"<string>","cp":"<string>","setlang":"<string>","first":"<integer>","count":"<integer>","timeout":"<number>"}}'
```

### Bing Product

Get a Bing Shopping product's details using its product token.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bing/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_token` | string | Yes | Product token returned in shopping_results by the Bing Shopping API. Copy the complete token into this request; tokens from other providers are not interchangeable. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bing/product","method":"GET","query":{"product_token":"<string>","timeout":"<number>"}}'
```

### Bing Search

Get Bing web search results.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bing/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Bing search query after trimming.  Accepted length: 1 through 2,048 characters. Control characters are rejected. Bing query syntax such as quoted phrases and exclusions remains available. |
| `engine` | string | No | Selects the Bing web-search engine. |
| `location` | string | No | Named city-level origin used to localize the Bing request.  Maximum length: 256 characters. Control characters are rejected. |
| `lat` | number | No | Latitude from -90 through 90.  May be supplied independently or with lon. |
| `lon` | number | No | Longitude from -180 through 180.  May be supplied independently or with lat. |
| `mkt` | string | No | Case-insensitive Bing language-country market token.  Format: two-letter language and country, such as en-US. Cannot be combined with cc. |
| `cc` | string | No | Case-insensitive two-letter country of origin.  Format: US or GB. Cannot be combined with mkt. |
| `first` | integer | No | One-based native offset for organic results.  Range: 1 through 9,007,199,254,740,991. Prefer litescrape_pagination.next when it is returned. |
| `safeSearch` | string | No | Bing adult-content policy; values are case-insensitive. |
| `filters` | string | No | Native Bing display or date filter expression.  Maximum length: 8,192 characters. Control characters are rejected. |
| `device` | string | No | Selects desktop, tablet, or mobile result behavior. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bing/search","method":"GET","query":{"q":"<string>","engine":"<string>","location":"<string>","lat":"<number>","lon":"<number>","mkt":"<string>","cc":"<string>","first":"<integer>","safeSearch":"<string>","filters":"<string>","device":"<string>","timeout":"<number>"}}'
```

### Bing Shopping

Search Bing Shopping products.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bing/shopping`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Product search query, up to 2,048 characters with no control characters. |
| `mkt` | string | No | Case-insensitive language-country market code, such as en-US. Supply either mkt or cc. |
| `cc` | string | No | Two-letter country code, such as us or gb. Supply either cc or mkt. |
| `efirst` | integer | No | Nonnegative shopping result offset. For example, efirst=10 starts at the tenth shopping result. |
| `filters` | string | No | Bing Shopping filter expression, up to 6,000 characters. Copy filters from a Bing Shopping URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bing/shopping","method":"GET","query":{"q":"<string>","mkt":"<string>","cc":"<string>","efirst":"<integer>","filters":"<string>","timeout":"<number>"}}'
```

### Bluesky Followers

List the public followers of a Bluesky account.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bluesky/followers`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `actor` | string | Yes | Bluesky handle, such as bsky.app, or a did:plc identifier. |
| `limit` | integer | No | Maximum followers per page, from 1 to 100. |
| `cursor` | string | No | next_page_token returned by the previous response. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bluesky/followers","method":"GET","query":{"actor":"<string>","limit":"<integer>","cursor":"<string>","timeout":"<number>"}}'
```

### Bluesky Posts

Read public posts from a Bluesky account with pagination.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bluesky/posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `actor` | string | Yes | Bluesky handle, such as bsky.app, or a did:plc identifier. |
| `limit` | integer | No | Maximum posts per page, from 1 to 100. |
| `cursor` | string | No | next_page_token returned by the previous response. |
| `filter` | string | No | Choose original posts, posts and replies, or posts containing media. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bluesky/posts","method":"GET","query":{"actor":"<string>","limit":"<integer>","cursor":"<string>","filter":"<string>","timeout":"<number>"}}'
```

### Bluesky Profile

Get a public Bluesky profile and follower counts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/bluesky/profile`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `actor` | string | Yes | Bluesky handle, such as bsky.app, or a did:plc identifier. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/bluesky/profile","method":"GET","query":{"actor":"<string>","timeout":"<number>"}}'
```

### DuckDuckGo Maps

Search DuckDuckGo Maps places within a map area.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/duckduckgo/maps`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Required place or category query, up to 500 characters. |
| `bbox` | string | No | Viewport rectangle as top,left,bottom,right. |
| `lat` | number | No | Viewport center latitude; requires lon. |
| `lon` | number | No | Viewport center longitude; requires lat. |
| `strict_bbox` | boolean | No | Exclude results outside the requested bounds. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/duckduckgo/maps","method":"GET","query":{"q":"<string>","bbox":"<string>","lat":"<number>","lon":"<number>","strict_bbox":"<boolean>","timeout":"<number>"}}'
```

### DuckDuckGo Search

Get DuckDuckGo web search results.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/duckduckgo/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Required search text, up to 500 characters. |
| `kl` | string | No | DuckDuckGo region and language token, such as us-en. |
| `safe` | string | No | DuckDuckGo safe-search level. |
| `df` | string | No | Date window: d, w, m, y, or YYYY-MM-DD..YYYY-MM-DD. |
| `search_assist` | boolean | No | Enable DuckDuckGo query assistance; mutually exclusive with m. |
| `start` | integer | No | Result offset from 0 through 10,000. |
| `m` | integer | No | Requested result count from 1 through 50; mutually exclusive with search_assist. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/duckduckgo/search","method":"GET","query":{"q":"<string>","kl":"<string>","safe":"<string>","df":"<string>","search_assist":"<boolean>","start":"<integer>","m":"<integer>","timeout":"<number>"}}'
```

### eBay Product

Get an eBay listing by item ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/ebay/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ebay_domain` | string | No | eBay marketplace hostname. |
| `product_id` | string | Yes | 12-digit eBay listing ID from search results or an /itm/ URL. |
| `locale` | string | No | Country code for eBay's localized interface, e.g. US, JP, CA. |
| `lang` | string | No | Interface language override; requires locale and ebay.com. |
| `shipping_country` | string | No | Two-letter destination country code for shipping calculations. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/ebay/product","method":"GET","query":{"ebay_domain":"<string>","product_id":"<string>","locale":"<string>","lang":"<string>","shipping_country":"<string>","timeout":"<number>"}}'
```

### Idealo Italy Product

Get Idealo Italy product details, prices, and available offers.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/idealo/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Product URL from this provider.  Use a product URL returned by the search endpoint. Query strings and fragments are not accepted. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/idealo/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### eBay Search

Search eBay listings by keyword or category.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/ebay/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ebay_domain` | string | No | eBay marketplace hostname. |
| `_nkw` | string | No | Search keywords. Required unless category_id is supplied. |
| `category_id` | integer | No | eBay category ID. |
| `_pgn` | integer | No | Result page, starting at 1. |
| `_ipg` | integer | No | Requested results per page. eBay may adjust the page size. |
| `_sop` | integer | No | Sort: 12 best match, 1 ending soonest, 10 newly listed, 7 nearest, 15/16 total price ascending/descending, 2/3 item price ascending/descending, 18/19 condition new/used first. Availability depends on marketplace. |
| `_udlo` | number | No | Minimum item price. |
| `_udhi` | number | No | Maximum item price. |
| `buying_format` | string | No | Auction, Buy It Now (BIN), or accepts offers (BO). |
| `LH_ItemCondition` | string | No | Condition IDs joined with \|, such as 1000\|3000. |
| `_stpos` | string | No | Destination postal code used by eBay for shipping estimates. |
| `_salic` | integer | No | eBay item-location country ID, e.g. 1 US, 2 Canada, 3 UK. |
| `_blrs` | string | No | Exclude automatic spelling corrections. |
| `show_only` | string | No | Comma-separated filters: FR, RPA, AS, Savings, SaleItems, Lots, Charity, AV, FS, LPickup. |
| `_sasl` | string | No | Comma-separated eBay seller usernames. |
| `_saslop` | integer | No | Include (1) or exclude (2) the sellers in _sasl. |
| `popular_filters` | string | No | eBay aspect filters as key=value pairs joined with &, with multiple values joined by \|. Percent-encoded names are accepted. |
| `_dmd` | string | No | Result layout. |
| `LH_PrefLoc` | string | No | Item location relative to the marketplace. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/ebay/search","method":"GET","query":{"ebay_domain":"<string>","_nkw":"<string>","category_id":"<integer>","_pgn":"<integer>","_ipg":"<integer>","_sop":"<integer>","_udlo":"<number>","_udhi":"<number>","buying_format":"<string>","LH_ItemCondition":"<string>","_stpos":"<string>","_salic":"<integer>","_blrs":"<string>","show_only":"<string>","_sasl":"<string>","_saslop":"<integer>","popular_filters":"<string>","_dmd":"<string>","LH_PrefLoc":"<string>","timeout":"<number>"}}'
```

### eBay Seller

Get an eBay seller's profile and listings.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/ebay/seller`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ebay_domain` | string | No | eBay marketplace hostname. |
| `seller_id` | string | Yes | Seller username for type=user, or the store URL slug for type=store. |
| `type` | string | Yes | Public seller profile type. |
| `_pgn` | integer | No | Result page, starting at 1. |
| `_ipg` | integer | No | Products per page. |
| `_sop` | integer | No | Sort: 12 best match, 1 ending soonest, 7 nearest, 10 newly listed, 15/16 total price ascending/descending. |
| `buying_format` | integer | No | All listings (0), Buy It Now (1), or auctions (2). |
| `LH_ItemCondition` | string | No | Condition IDs joined with \|: 3 new, 4 used, 10 unspecified. |
| `free_shipping` | boolean | No | Only products with free shipping. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/ebay/seller","method":"GET","query":{"ebay_domain":"<string>","seller_id":"<string>","type":"<string>","_pgn":"<integer>","_ipg":"<integer>","_sop":"<integer>","buying_format":"<integer>","LH_ItemCondition":"<string>","free_shipping":"<boolean>","timeout":"<number>"}}'
```

### Etsy Product

Get an Etsy listing's details and price.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/etsy/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/etsy/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Etsy Search

Search Etsy listings with prices.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/etsy/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/etsy/search","method":"GET","query":{"query":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Stack Overflow Search

Search Stack Overflow questions by keywords and tags.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/stackoverflow/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | One-based results page, from 1 to 25. |
| `limit` | integer | No | Maximum results per page, from 1 to 100. |
| `q` | string | Yes | Question search terms. |
| `tagged` | string | No | Semicolon-separated tags, such as python;pandas. |
| `sort` | string | No | Question ranking. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/stackoverflow/search","method":"GET","query":{"page":"<integer>","limit":"<integer>","q":"<string>","tagged":"<string>","sort":"<string>","timeout":"<number>"}}'
```

### Eventbrite Search

Search Eventbrite events by location and keyword.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/eventbrite/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `location` | string | No | Eventbrite location slug, such as tx--austin, ny--new-york, or online. |
| `q` | string | No | Search keywords, such as music or python workshops. |
| `page` | integer | No | Results page, starting at 1. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/eventbrite/search","method":"GET","query":{"location":"<string>","q":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Facebook Hashtag Posts

Get public Facebook posts for a hashtag.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/hashtag-posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `tag` | string | Yes | Hashtag made of letters, digits or underscores, with an optional leading #. |
| `limit` | integer | No | Maximum posts per response; fewer may be available. |
| `continuation_token` | string | No | Token from pagination.continuation_token in the preceding response. Keep the same hashtag; limit may change. Tokens can expire. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/hashtag-posts","method":"GET","query":{"tag":"<string>","limit":"<integer>","continuation_token":"<string>","timeout":"<number>"}}'
```

### Facebook Marketplace Browse

Browse or search Facebook Marketplace listings by city.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/marketplace-browse`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum listings per response; fewer may be available. |
| `location` | string | No | Marketplace city slug or numeric city ID, such as austin or london. Required for keyword search and radius filtering. |
| `query` | string | No | Listing search keywords. Supply location to keep the search geography fixed. |
| `radius_km` | integer | No | Search radius in kilometers, from 1 to 500. Requires location; defaults to 65 km when omitted. Shipped or promoted listings may fall outside this radius. |
| `min_price` | number | No | Minimum listing price in local currency units. Requires query and location. |
| `max_price` | number | No | Maximum listing price in local currency units, at least min_price. Requires query and location. |
| `sort_by` | string | No | Search ordering: lowest price, highest price or newest listings. Requires query and location. |
| `condition` | string | No | Item condition for keyword search. Requires query and location. |
| `days_since_listed` | integer | No | Restrict keyword search to recent listings, from 1 to 30 days. Requires query and location. |
| `continuation_token` | string | No | Token from pagination.continuation_token in the preceding response. Repeat the same query, location and filters; limit may change. Keyword search only. Later requests may fail or be rate limited. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/marketplace-browse","method":"GET","query":{"limit":"<integer>","location":"<string>","query":"<string>","radius_km":"<integer>","min_price":"<number>","max_price":"<number>","sort_by":"<string>","condition":"<string>","days_since_listed":"<integer>","continuation_token":"<string>","timeout":"<number>"}}'
```

### Facebook Page Posts

Get recent public posts from a Facebook Page.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/page-posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | Yes | Public page handle without a URL, such as NASA. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/page-posts","method":"GET","query":{"handle":"<string>","timeout":"<number>"}}'
```

### Facebook Post Details

Get a public Facebook post by its URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/post`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public www.facebook.com post permalink containing a page and post identifier. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/post","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Facebook Reel Details

Get a public Facebook reel by its URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/reel`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public reel address in the form https://www.facebook.com/reel/123456789/. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/reel","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Facebook Search Pages

Search public Facebook Pages by name.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/search-pages`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Page name or phrase to look up. |
| `limit` | integer | No | Maximum Page suggestions per response; fewer may be available. |
| `country` | string | No | Two-letter country preference for Page suggestions, such as US, GB or CA. Does not restrict a Page's location. |
| `ad_type` | string | No | Ad category for Page suggestions: all ads or political and issue ads. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/search-pages","method":"GET","query":{"query":"<string>","limit":"<integer>","country":"<string>","ad_type":"<string>","timeout":"<number>"}}'
```

### Facebook Search Profiles

Search public Facebook profiles by name.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/facebook/search-profiles`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Name to search for. |
| `limit` | integer | No | Maximum profiles per response; fewer may be available. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/facebook/search-profiles","method":"GET","query":{"query":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### FarmaVázquez Product

Get FarmaVázquez product details, prices, and available offers.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/farmavazquez/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Product URL from this provider.  Use a product URL returned by the search endpoint. Query strings and fragments are not accepted. The product URL must use the selected domain. |
| `domain` | string | No | Storefront domain to query. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/farmavazquez/product","method":"GET","query":{"url":"<string>","domain":"<string>","timeout":"<number>"}}'
```

### FarmaVázquez Search

Search FarmaVázquez products with prices and product links.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/farmavazquez/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Product keywords to search for. |
| `page` | integer | No | Result page, starting at one. |
| `domain` | string | No | Storefront domain to query. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/farmavazquez/search","method":"GET","query":{"q":"<string>","page":"<integer>","domain":"<string>","timeout":"<number>"}}'
```

### GitHub Issues

List repository issues and pull requests with their authors and labels.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/github/issues`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `owner` | string | Yes | Repository owner or organization. |
| `repo` | string | Yes | Repository name. |
| `page` | integer | No | One-based results page. |
| `limit` | integer | No | Maximum results per page, from 1 to 100. |
| `state` | string | No | Issue state. Results also include pull requests, identified by is_pull_request. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/github/issues","method":"GET","query":{"owner":"<string>","repo":"<string>","page":"<integer>","limit":"<integer>","state":"<string>","timeout":"<number>"}}'
```

### GitHub Releases

List repository releases and downloadable assets.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/github/releases`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `owner` | string | Yes | Repository owner or organization. |
| `repo` | string | Yes | Repository name. |
| `page` | integer | No | One-based results page. |
| `limit` | integer | No | Maximum results per page, from 1 to 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/github/releases","method":"GET","query":{"owner":"<string>","repo":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### GitHub Repository

Get repository details, stars, forks, topics, and activity dates.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/github/repository`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `owner` | string | Yes | Repository owner or organization. |
| `repo` | string | Yes | Repository name. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/github/repository","method":"GET","query":{"owner":"<string>","repo":"<string>","timeout":"<number>"}}'
```

### GitHub Repository Search

Search public GitHub repositories by keywords and qualifiers.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/github/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Repository search terms and GitHub qualifiers, up to 256 characters; for example, language:python. |
| `sort` | string | No | Repository ranking: best_match, stars, forks, or updated. |
| `order` | string | No | Sort direction. |
| `page` | integer | No | One-based results page. Search exposes at most the first 1,000 results. |
| `limit` | integer | No | Maximum results per page, from 1 to 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/github/search","method":"GET","query":{"q":"<string>","sort":"<string>","order":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### GitHub User

Get a public GitHub user or organization profile.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/github/user`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | GitHub username or organization name. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/github/user","method":"GET","query":{"username":"<string>","timeout":"<number>"}}'
```

### Glassdoor Search

Search Glassdoor jobs by keyword and location, with salary, seniority and remote filters.

Use JSON POST for native arrays, or encode array parameters as JSON strings in GET queries. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/glassdoor/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Job title, keywords or company. Omit to browse using only location and filters. |
| `page` | integer | No | One-based results page. Use next_page from the response to continue. |
| `location` | string | No | Free-text city, state, country or postal code. Use location_id and location_type for an exact location instead. |
| `page_token` | string | No | Copy next_page_token with its next_page and the same search parameters to continue. |
| `location_id` | integer | No | Glassdoor location ID, for example 1132348 for New York. Omit for nationwide search. |
| `location_type` | string | No | Location type: C city, S state, N country. Required with location_id. |
| `location_country` | string | No | Restrict the free-text location to this two-letter country, for example GB for London, England. Requires location. |
| `radius` | integer | No | Distance in miles; 0 means the exact location. Defaults to 25. |
| `job_type` | string | No | Employment type. Use job_types to select multiple types. |
| `job_types` | string | No | Employment attribute codes as a JSON array, for example ["CF3CP","NJXCK"]. Mutually exclusive with job_type. Codes are returned by include_filters. |
| `from_age` | integer | No | Maximum posting age in days. |
| `salary_min` | integer | No | Minimum annual salary in the search location's currency. |
| `salary_max` | integer | No | Maximum annual salary in the search location's currency. |
| `remote` | boolean | No | True selects work-from-home or remote jobs. False includes all workplace types. |
| `easy_apply` | boolean | No | True selects Easy Apply jobs. False includes all application types. |
| `seniority` | string | No | Seniority filter. |
| `company_id` | integer | No | Glassdoor employer ID; include_filters returns matching employer IDs. |
| `company_sizes` | string | No | Employer size categories as a JSON array: 1 tiny, 2 small, 3 medium, 4 large, 5 huge. |
| `industry_id` | integer | No | Glassdoor industry ID; available values depend on the search and are returned by include_filters. |
| `occupation_id` | integer | No | Glassdoor occupation category, such as 1007 Engineering. See include_filters. |
| `city_id` | integer | No | Refine the search to a city ID from include_filters. |
| `min_rating` | number | No | Minimum employer rating. |
| `sort` | string | No | Relevance, oldest first, or newest first. |
| `include_filters` | boolean | No | Return available filters, values, counts and employer names in available_filters. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/glassdoor/search","method":"GET","query":{"q":"<string>","page":"<integer>","location":"<string>","page_token":"<string>","location_id":"<integer>","location_type":"<string>","location_country":"<string>","radius":"<integer>","job_type":"<string>","job_types":"<string>","from_age":"<integer>","salary_min":"<integer>","salary_max":"<integer>","remote":"<boolean>","easy_apply":"<boolean>","seniority":"<string>","company_id":"<integer>","company_sizes":"<string>","industry_id":"<integer>","occupation_id":"<integer>","city_id":"<integer>","min_rating":"<number>","sort":"<string>","include_filters":"<boolean>","timeout":"<number>"}}'
```

### Google Ads

Get the ads shown on a Google search results page.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/ads`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Google Ads search query, up to 2,048 characters with no controls. |
| `location` | string | Yes | Human-readable location where the ad search originates, up to 63 UTF-8 bytes once Google-encoded.  Example: Austin, Texas, United States. |
| `hl` | string | No | Google interface and result language, such as en, en-GB, or de. |
| `safe` | string | No | Google adult-content filtering. |
| `nfpr` | string | No | Google spelling auto-correction control. Set 1 to exclude corrected queries. |
| `device` | string | No | Google returns its real layout for the selected device. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/ads","method":"GET","query":{"q":"<string>","location":"<string>","hl":"<string>","safe":"<string>","nfpr":"<string>","device":"<string>","timeout":"<number>"}}'
```

### Google AI Mode

Get Google AI Mode answers with cited sources.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/ai-mode`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | The question to ask Google AI Mode, up to 5,000 characters with no controls. Send long questions as a POST JSON body. |
| `location` | string | No | Named search origin, up to 512 characters and 63 UTF-8 bytes once Google-encoded. Conflicts with uule. |
| `uule` | string | No | Canonical Google location token, up to 2,048 characters. Conflicts with location. |
| `google_domain` | string | No | Validated first-party Google domain the request is served from. |
| `gl` | string | No | Two-letter country localization, normalized to lowercase. |
| `hl` | string | No | Language code such as en, en-GB, or de. |
| `device` | string | No | Google returns its real layout for the selected device. |
| `continuable` | boolean | No | Return a subsequent_request_token so this answer can be followed up. |
| `subsequent_request_token` | string | No | Continue a conversation from a previous continuable response. Requires a new question, and cannot be combined with image_url. Expires after 30 minutes. |
| `image_url` | string | No | Public http or https image to include in the prompt, up to 2,048 characters and 20 MB. Google Lens receives the image; the answer still comes from AI Mode. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/ai-mode","method":"GET","query":{"q":"<string>","location":"<string>","uule":"<string>","google_domain":"<string>","gl":"<string>","hl":"<string>","device":"<string>","continuable":"<boolean>","subsequent_request_token":"<string>","image_url":"<string>","timeout":"<number>"}}'
```

### Google AI Overview

Get Google's AI Overview for a query, with cited sources.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/ai-overview`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Google Search query, up to 4,000 characters.  Required unless ludocid or kgmid is supplied. |
| `location` | string | No | Human-readable city-level location encoded to UULE by Litescrape.  Conflicts with uule and lat/lon. |
| `uule` | string | No | Pre-encoded Google location value.  Conflicts with location and lat/lon. |
| `lat` | number | No | Latitude from -90 through 90.  Requires lon and conflicts with location and uule. |
| `lon` | number | No | Longitude from -180 through 180.  Requires lat and conflicts with location and uule. |
| `radius` | number | No | Decimal search-bias radius in meters.  Requires location or lat/lon. Desktop: 1–199; tablet/mobile: 1–1,000. |
| `ludocid` | string | No | Google local CID used to search for one entity. |
| `lsig` | string | No | Opaque Knowledge Graph or local-pack signature. |
| `kgmid` | string | No | Google Knowledge Graph machine ID, such as /m/0k8z. |
| `si` | string | No | Opaque cached Google search context. |
| `ibp` | string | No | Google layout or expansion control. |
| `uds` | string | No | Opaque Google filter token. |
| `color_scheme` | string | No | Google result color presentation. |
| `google_domain` | string | No | Results use google.com. Use gl, hl, cr, lr or geography for localization. |
| `gl` | string | No | Lowercase two-letter country localization code. |
| `hl` | string | No | Google interface and result language code. |
| `cr` | string | No | One or more countryXX restrictions joined with \|. |
| `lr` | string | No | One or more lang_xx restrictions joined with \|. |
| `tbs` | string | No | Google native date or search filter string. |
| `safe` | string | No | Google adult-content filtering. |
| `nfpr` | string | No | Google auto-correction control. |
| `filter` | string | No | Google similar-result filtering control. |
| `pws` | string | No | Google personalization control; 0 asks for non-personalized results. |
| `peek_pws` | string | No | Google personalization peek flag, forwarded unchanged. |
| `tbm` | string | No | Google vertical: lcl, vid, nws, shop, or pts. For image searches, use /api/google/images. |
| `start` | integer | No | Non-negative Google result offset. |
| `num` | integer | No | Best-effort first-page result count, 1 to 10. |
| `device` | string | No | Request device profile and radius bound. |
| `oq` | string | No | Original query associated with an autocomplete selection. |
| `gs_lp` | string | No | Google gs_lp value associated with an autocomplete selection. |
| `sclient` | string | No | Google client identifier such as gws-wiz-serp. |
| `as_dt` | string | No | Includes or excludes as_sitesearch.  Requires as_sitesearch. |
| `as_epq` | string | No | Exact phrase query. |
| `as_eq` | string | No | Excluded phrase query. |
| `as_lq` | string | No | Require results that link to this URL. |
| `as_nlo` | integer | No | Inclusive range lower bound.  Requires as_nhi. |
| `as_nhi` | integer | No | Inclusive range upper bound.  Requires as_nlo. |
| `as_oq` | string | No | Any-of search terms. |
| `as_q` | string | No | Additional all-of search terms. |
| `as_qdr` | string | No | Quick range d, w, m, or y with an optional positive count. |
| `as_rq` | string | No | Find pages related to this URL. |
| `as_sitesearch` | string | No | Site hostname to include or exclude. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/ai-overview","method":"GET","query":{"q":"<string>","location":"<string>","uule":"<string>","lat":"<number>","lon":"<number>","radius":"<number>","ludocid":"<string>","lsig":"<string>","kgmid":"<string>","si":"<string>","ibp":"<string>","uds":"<string>","color_scheme":"<string>","google_domain":"<string>","gl":"<string>","hl":"<string>","cr":"<string>","lr":"<string>","tbs":"<string>","safe":"<string>","nfpr":"<string>","filter":"<string>","pws":"<string>","peek_pws":"<string>","tbm":"<string>","start":"<integer>","num":"<integer>","device":"<string>","oq":"<string>","gs_lp":"<string>","sclient":"<string>","as_dt":"<string>","as_epq":"<string>","as_eq":"<string>","as_lq":"<string>","as_nlo":"<integer>","as_nhi":"<integer>","as_oq":"<string>","as_q":"<string>","as_qdr":"<string>","as_rq":"<string>","as_sitesearch":"<string>","timeout":"<number>"}}'
```

### Google Autocomplete

Get search suggestions for a partial query.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/autocomplete`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Partial Google search query to complete, up to 100 characters. |
| `hl` | string | No | Suggestion language code, such as en or es. |
| `gl` | string | No | Two-letter country code. |
| `search_type` | string | No | Suggestion category. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/autocomplete","method":"GET","query":{"q":"<string>","hl":"<string>","gl":"<string>","search_type":"<string>","timeout":"<number>"}}'
```

### Google Contributor Reviews

Get reviews written by a Google Maps contributor.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/contributor-reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `contributor_id` | string | Yes | Required 10 to 32 digit ID from a Google Maps contributor URL. |
| `hl` | string | No | Review and interface language such as en, en-US, or fr. |
| `gl` | string | No | Two-letter country localization. |
| `limit` | integer | No | Review count from 1 through the anonymous source maximum of 200. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/contributor-reviews","method":"GET","query":{"contributor_id":"<string>","hl":"<string>","gl":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Google Flights

Search Google Flights for passenger fares, multiple airports, airline logos, emissions, price insights, and airport names.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/flights`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Flight search including origin, destination, travel dates, and trip type.  Use airport codes or city names and explicit travel dates. Include one way or a return date. Options describe the outbound journey. Round-trip prices cover the requested round trip; return-flight selection is not included. Departure and arrival times are local to each airport. Fares and availability can change before booking. Passenger counts accept for or with, for example for 2 adults and 1 child. Up to nine travelers a |
| `currency` | string | No | Three-letter currency code for fares.  Examples: USD, EUR, GBP, CAD, AUD, JPY, INR |
| `limit` | integer | No | Maximum flight options to return.  Results include the best options followed by other available options. There is no pagination. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/flights","method":"GET","query":{"q":"<string>","currency":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Gemini Chat

Get a completed text reply from Gemini.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/gemini`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `prompt` | string | Yes | Text prompt for a new or continued Gemini conversation, up to 32,000 characters.  Text only. Use subsequent_request_token to continue a conversation. Uploads, Google account cookies and model selection are not accepted. |
| `hl` | string | No | Gemini web interface language code. Defaults to en; request a reply language in the prompt. |
| `continuable` | boolean | No | Return a subsequent_request_token for continuing this conversation. Defaults to false.  Set to true on the first request and on each follow-up that needs another token. |
| `subsequent_request_token` | string | No | Token from the previous reply. Send it with your next prompt using the same API key.  Use the newest token for each follow-up. Tokens expire one hour after they are issued; an upstream conversation can become unavailable sooner. Treat tokens as sensitive. Invalid, expired or unavailable continuations fail without starting a new conversation and are not billed. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/gemini","method":"GET","query":{"prompt":"<string>","hl":"<string>","continuable":"<boolean>","subsequent_request_token":"<string>","timeout":"<number>"}}'
```

### Google Images

Search Google Images.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/images`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Image search query, up to 2,048 characters. |
| `hl` | string | No | Language of the Google Images interface. |
| `gl` | string | No | Two-letter country code used to localize results. |
| `safe` | string | No | Set active to filter explicit images, or off to disable SafeSearch. |
| `tbs` | string | No | Google image filters, such as isz:l for large images, itp:photo for photographs, or ic:trans for transparent images. |
| `license` | string | No | Limit results to images Google lists under these usage rights. Use creative_commons for Creative Commons licenses, or commercial_and_other for commercial and other licenses such as stock photos.  free_to_share: free to use or share. free_to_share_commercially: free to use or share, even commercially. free_to_modify: free to use, share or modify. free_to_modify_commercially: free to use, share or modify, even commercially. Combine license with other tbs filters, such as isz:l, but do not also sen |
| `start` | integer | No | Google's page offset. For the next page, use pagination.next_start from the response and keep the same query and filters. This offset is independent of num and the number of returned images. |
| `num` | integer | No | Maximum number of images returned from this page, from 1 to 100. This limits the parsed response; Google may supply fewer images. |
| `device` | string | No | Device profile used for the image search. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/images","method":"GET","query":{"q":"<string>","hl":"<string>","gl":"<string>","safe":"<string>","tbs":"<string>","license":"<string>","start":"<integer>","num":"<integer>","device":"<string>","timeout":"<number>"}}'
```

### Google Jobs

Search Google Jobs listings by query and location, including descriptions and application links when available.

Use JSON POST for native arrays, or encode array parameters as JSON strings in GET queries. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/jobs`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Job search query, for example software engineer jobs in New York. |
| `page` | integer | No | One-based results page. Use next_page from the response to continue. |
| `page_token` | string | No | Copy next_page_token with next_page and the same query to fetch the next batch directly. |
| `hl` | string | No | Google interface language, for example en, de, fr, es or pt-BR. |
| `gl` | string | No | Two-letter country code. |
| `location` | string | No | Canonical Google location, such as London,England,United Kingdom. Use one of location, uule or lat/lon. |
| `uule` | string | No | Explicit Google UULE location value. Mutually exclusive with location and coordinates. |
| `lat` | number | No | Latitude of the search origin. Requires lon. |
| `lon` | number | No | Longitude of the search origin. Requires lat. |
| `radius` | number | No | Coordinate accuracy radius in meters, requiring lat/lon. This locates the search origin; it is not a job-distance filter. |
| `uds` | string | No | Opaque Google refinement value returned in available_filters. Copy its q and uds together; filter choices vary by query and market. |
| `tbs` | string | No | Google search refinement string, for example qdr:w for the past week. Keep it unchanged through pagination. |
| `include_filters` | boolean | No | Return available Google Jobs filters with the q and uds parameters needed to apply each one. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/jobs","method":"GET","query":{"q":"<string>","page":"<integer>","page_token":"<string>","hl":"<string>","gl":"<string>","location":"<string>","uule":"<string>","lat":"<number>","lon":"<number>","radius":"<number>","uds":"<string>","tbs":"<string>","include_filters":"<boolean>","timeout":"<number>"}}'
```

### Google Local

Get Google local results for a query and location.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/local`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Google Local query, up to 2,048 characters with no controls. |
| `location` | string | No | Human-readable location, up to 512 characters.  Cannot be combined with uule. |
| `uule` | string | No | Canonical Google named-location token, up to 2,048 characters.  Cannot be combined with location. |
| `google_domain` | string | No | Validated Google domain.  Examples: google.com, google.co.uk, google.fr. |
| `gl` | string | No | Country localization normalized to lowercase. |
| `hl` | string | No | Google interface and result language. |
| `ludocid` | string | No | Google local CID, up to 128 digits. |
| `tbs` | string | No | Google compatibility token forwarded unchanged; the provider may leave ranking unchanged. |
| `start` | integer | No | Local-result offset through 10,000; source-exhausted offsets above 1,000 return empty. |
| `device` | string | No | Compatibility value over device-invariant Maps data. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/local","method":"GET","query":{"q":"<string>","location":"<string>","uule":"<string>","google_domain":"<string>","gl":"<string>","hl":"<string>","ludocid":"<string>","tbs":"<string>","start":"<integer>","device":"<string>","timeout":"<number>"}}'
```

### Google Maps

Search Google Maps places, or get one place by ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/maps`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | The business, category, address, or natural-language query to search. Required when type is search.  Examples: coffee shops in Austin, dentist near Denver |
| `ll` | string | No | A complete viewport containing latitude, longitude, and either zoom or radius.  Format: @lat,lon,14z or @lat,lon,5000m |
| `location` | string | No | A named geographic location resolved by the API. Cannot be combined with ll or lat/lon.  Requires z or m. |
| `lat` | string | No | Latitude for a coordinate-based viewport. Must be supplied with lon and either z or m. |
| `lon` | string | No | Longitude for a coordinate-based viewport. Must be supplied with lat and either z or m. |
| `z` | string | No | Google Maps zoom level for location or lat/lon geography.  Accepted range: 3 through 30. Cannot be combined with m. |
| `m` | string | No | Search radius in meters for location or lat/lon geography.  Accepted range: 1 through 15,028,132. Cannot be combined with z. |
| `nearby` | boolean | No | Uses the supplied geography as a nearby-search scope.  Requires ll, location, or a lat/lon pair. |
| `data` | string | No | A Google Maps protobuf parameter sequence for search filters or an exact place.  Maximum length: 8,192 characters. Exact-place data requires type=place. |
| `place_id` | string | No | A Google place identifier used to resolve one exact place or request live foot traffic.  Cannot be combined with data_cid or exact-place data on the primary Maps endpoint. It is the only required parameter on /api/google/maps/popular-times. Every response is fetched live. Places without published busy hours return HTTP 404 not_found and are not billed. |
| `data_cid` | string | No | A decimal Google CID used to resolve one exact place.  Cannot be combined with place_id or exact-place data. |
| `type` | string | No | Chooses a result search or an exact place response. Required for query and filter searches.  Use place when sending an exact-place data sequence. |
| `hl` | string | No | Language used for Google Maps labels and returned text.  Examples: en, es, fr, de |
| `gl` | string | No | Two-letter country code used for regional result localization.  Examples: us, gb, ca, au |
| `google_domain` | string | No | Validated Google domain used for the request.  Examples: google.com, google.co.uk, google.ca |
| `start` | string | No | Native Maps result offset: 0, 20, 40, and so on. Each request returns up to 20 places and each successful request costs one credit.  Use pagination.next when it is present instead of constructing the next request manually. |
| `min_price` | string | No | Minimum price level for returned places.  Must be non-negative and cannot exceed max_price. |
| `max_price` | string | No | Maximum price level for returned places.  Must be non-negative and cannot be lower than min_price. |
| `min_rating` | string | No | Preferred minimum Google rating.  Google treats this as a relevance preference. |
| `open_state` | string | No | Filters by the current open state.  Cannot be combined with open_on_day or open_at_hour. |
| `open_on_day` | string | No | Filters for places open on a specific day. |
| `open_at_hour` | string | No | Filters for places open at a specific hour using 24-hour time.  Accepted range: 0 through 23. Requires open_on_day. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/maps","method":"GET","query":{"q":"<string>","ll":"<string>","location":"<string>","lat":"<string>","lon":"<string>","z":"<string>","m":"<string>","nearby":"<boolean>","data":"<string>","place_id":"<string>","data_cid":"<string>","type":"<string>","hl":"<string>","gl":"<string>","google_domain":"<string>","start":"<string>","min_price":"<string>","max_price":"<string>","min_rating":"<string>","open_state":"<string>","open_on_day":"<string>","open_at_hour":"<string>","timeout":"<number>"}}'
```

### Google Maps Menu

Get a restaurant's menu, prices, booking links, and opening hours.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/maps/menu`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `place_id` | string | Yes | Google business Place ID whose menu, booking links, and place details are returned.  Use a business Place ID (ChIJ…), such as the place_id of a /api/google/maps search result. Every response is fetched live. Places without a menu return HTTP 404 not_found and are not billed. |
| `hl` | string | No | Language used for Google labels and returned text.  Examples: en, es, fr, de Menu text may stay in the language it was published in. Google's AI review summary is not available in every language. |
| `gl` | string | No | Two-letter country code used for regional localization.  Examples: us, gb, de, jp |
| `google_domain` | string | No | Google domain used for the returned Google Maps link.  Examples: google.com, google.co.uk, google.de |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/maps/menu","method":"GET","query":{"place_id":"<string>","hl":"<string>","gl":"<string>","google_domain":"<string>","timeout":"<number>"}}'
```

### Google Maps Photos

List a place's photos and videos, including only the ones its owner posted.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/maps/photos`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_id` | string | No | Hexadecimal Google Maps feature ID of the place.  Use the data_id of a /api/google/maps result. Exactly one of data_id or place_id is required. |
| `place_id` | string | No | Google business Place ID of the place.  Use a business Place ID (ChIJ…), such as the place_id of a /api/google/maps result. Exactly one of place_id or data_id is required. |
| `category` | string | No | Which of the place's photo categories to list.  by_owner lists only the photos and videos the business posted itself. menu, food_and_drink and vibe are the categories Google shows for restaurants and bars. A category the place has no photos in returns HTTP 404 not_found and is not billed. |
| `next_page_token` | string | No | Opaque continuation token from pagination.next_page_token.  Pass the token back unchanged with the same data_id or place_id. The next page keeps the category of the page the token came from. |
| `hl` | string | No | Language used for Google labels.  Examples: en, es, fr, de |
| `gl` | string | No | Two-letter country code used for regional localization.  Examples: us, gb, de, jp |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/maps/photos","method":"GET","query":{"data_id":"<string>","place_id":"<string>","category":"<string>","next_page_token":"<string>","hl":"<string>","gl":"<string>","timeout":"<number>"}}'
```

### Google Maps Popular Times

See how busy a place is right now.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/maps/popular-times`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `place_id` | string | Yes | Required Google business Place ID (ChIJ…). Every response is fetched live; places without busy hours return not_found and are not billed. |
| `hl` | string | No | Google interface and result language. |
| `gl` | string | No | Two-letter country localization code. |
| `google_domain` | string | No | A Google domain such as google.com or google.co.uk. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/maps/popular-times","method":"GET","query":{"place_id":"<string>","hl":"<string>","gl":"<string>","google_domain":"<string>","timeout":"<number>"}}'
```

### Google Maps Posts

Read the posts published by a business.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/maps/posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_id` | string | Yes | Required hexadecimal Maps feature ID. Follow posts_link from a Maps place response. |
| `hl` | string | No | Google interface and result language. |
| `gl` | string | No | Two-letter country localization code. |
| `google_domain` | string | No | A Google domain such as google.com or google.co.uk. |
| `next_page_token` | string | No | Continue a posts response with its opaque token. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/maps/posts","method":"GET","query":{"data_id":"<string>","hl":"<string>","gl":"<string>","google_domain":"<string>","next_page_token":"<string>","timeout":"<number>"}}'
```

### Google News

Find recent news articles by topic, language, and country.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/news`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Google News search query. Supports quoted phrases and site filters. |
| `hl` | string | No | News language, such as en-US or en-GB. |
| `gl` | string | No | Two-letter country code in uppercase. |
| `limit` | integer | No | Maximum articles to return, from 1 to 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/news","method":"GET","query":{"q":"<string>","hl":"<string>","gl":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Google Patents

Search patent publications by query, patent office, status, and publication date.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/patents`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Patent search query, up to 500 characters. Supports keywords, publication numbers, and quoted phrases. |
| `country` | string | No | Optional two-letter patent office code, such as US, EP, or WO. |
| `status` | string | No | Include all publications, granted patents, or applications. |
| `sort` | string | No | Order by relevance or publication date. |
| `page` | integer | No | One-based results page, up to 100. Available pages depend on the query. |
| `limit` | integer | No | Results per page: 10, 25, 50, or 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/patents","method":"GET","query":{"q":"<string>","country":"<string>","status":"<string>","sort":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### TikTok Following

Page through the public accounts a TikTok user follows.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/following`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `handle` | string | No | Public TikTok handle, with or without @; supply this or user_id. |
| `user_id` | string | No | Numeric TikTok user ID; supply this or handle. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/following","method":"GET","query":{"cursor":"<string>","count":"<integer>","handle":"<string>","user_id":"<string>","timeout":"<number>"}}'
```

### Google Play Apps

Search and browse Google Play apps.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/play/apps`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hl` | string | No | Storefront language, such as en, de, or zh-TW. Maximum 32 characters. |
| `gl` | string | No | Two-letter country code. |
| `q` | string | No | Optional query with 1 to 2,048 UTF-8 bytes of printable text. Excludes category. Omit it to browse the storefront. On the games endpoint, q uses shared Android app search; omit q or choose games_category to browse games. |
| `chart` | string | No | Chart identifier such as topselling_free, topselling_paid, or topgrossing. Excludes q and all pagination selectors. Apps and games charts require phone or an omitted store_device. |
| `next_page_token` | string | No | Use the returned next_page_token with the same parameters. Excludes chart, section_page_token, and see_more_token. |
| `section_page_token` | string | No | Continue one result group using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `see_more_token` | string | No | Open a result collection using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `apps_category` | string | No | Native app category identifier, such as MEDICAL. Excludes q and an explicit store_device. |
| `store_device` | string | No | Omit for the default phone storefront. An explicit selection excludes q and category. |
| `age` | string | No | Children's age range. Requires apps_category=FAMILY. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/play/apps","method":"GET","query":{"hl":"<string>","gl":"<string>","q":"<string>","chart":"<string>","next_page_token":"<string>","section_page_token":"<string>","see_more_token":"<string>","apps_category":"<string>","store_device":"<string>","age":"<string>","timeout":"<number>"}}'
```

### Google Play Books

Search and browse Google Play ebooks and audiobooks.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/play/books`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hl` | string | No | Storefront language, such as en, de, or zh-TW. Maximum 32 characters. |
| `gl` | string | No | Two-letter country code. |
| `q` | string | No | Optional query with 1 to 2,048 UTF-8 bytes of printable text. Excludes category. Omit it to browse the storefront. On the games endpoint, q uses shared Android app search; omit q or choose games_category to browse games. |
| `chart` | string | No | Chart identifier such as topselling_free, topselling_paid, or topgrossing. Excludes q and all pagination selectors. Apps and games charts require phone or an omitted store_device. |
| `next_page_token` | string | No | Use the returned next_page_token with the same parameters. Excludes chart, section_page_token, and see_more_token. |
| `section_page_token` | string | No | Continue one result group using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `see_more_token` | string | No | Open a result collection using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `books_category` | string | No | Native book category identifier, such as coll_1689 for children's books. Excludes q. |
| `age` | string | No | Children's age range. Requires books_category=coll_1689. |
| `price` | integer | No | 1 for free books or 2 for paid books. Requires q. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/play/books","method":"GET","query":{"hl":"<string>","gl":"<string>","q":"<string>","chart":"<string>","next_page_token":"<string>","section_page_token":"<string>","see_more_token":"<string>","books_category":"<string>","age":"<string>","price":"<integer>","timeout":"<number>"}}'
```

### Google Play Games

Browse Google Play games by category and chart.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/play/games`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hl` | string | No | Storefront language, such as en, de, or zh-TW. Maximum 32 characters. |
| `gl` | string | No | Two-letter country code. |
| `q` | string | No | Optional query with 1 to 2,048 UTF-8 bytes of printable text. Excludes category. Omit it to browse the storefront. On the games endpoint, q uses shared Android app search; omit q or choose games_category to browse games. |
| `chart` | string | No | Chart identifier such as topselling_free, topselling_paid, or topgrossing. Excludes q and all pagination selectors. Apps and games charts require phone or an omitted store_device. |
| `next_page_token` | string | No | Use the returned next_page_token with the same parameters. Excludes chart, section_page_token, and see_more_token. |
| `section_page_token` | string | No | Continue one result group using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `see_more_token` | string | No | Open a result collection using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `games_category` | string | No | Native game category identifier, such as GAME_PUZZLE. Excludes q and an explicit store_device. |
| `store_device` | string | No | Omit for the default phone storefront. An explicit selection excludes q and category. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/play/games","method":"GET","query":{"hl":"<string>","gl":"<string>","q":"<string>","chart":"<string>","next_page_token":"<string>","section_page_token":"<string>","see_more_token":"<string>","games_category":"<string>","store_device":"<string>","timeout":"<number>"}}'
```

### Google Play Movies

Search and browse Google Play movies and TV shows.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/play/movies`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hl` | string | No | Storefront language, such as en, de, or zh-TW. Maximum 32 characters. |
| `gl` | string | No | Two-letter country code. |
| `q` | string | No | Optional query with 1 to 2,048 UTF-8 bytes of printable text. Excludes category. Omit it to browse the storefront. On the games endpoint, q uses shared Android app search; omit q or choose games_category to browse games. |
| `chart` | string | No | Chart identifier such as topselling_free, topselling_paid, or topgrossing. Excludes q and all pagination selectors. Apps and games charts require phone or an omitted store_device. |
| `next_page_token` | string | No | Use the returned next_page_token with the same parameters. Excludes chart, section_page_token, and see_more_token. |
| `section_page_token` | string | No | Continue one result group using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `see_more_token` | string | No | Open a result collection using its returned token and the same parameters. Excludes the other pagination selectors and chart. |
| `movies_category` | string | No | Native movie category identifier, such as FAMILY for family movies. Excludes q. |
| `age` | string | No | Children's age range. Requires movies_category=FAMILY. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/play/movies","method":"GET","query":{"hl":"<string>","gl":"<string>","q":"<string>","chart":"<string>","next_page_token":"<string>","section_page_token":"<string>","see_more_token":"<string>","movies_category":"<string>","age":"<string>","timeout":"<number>"}}'
```

### Google Play Product

Get a Google Play app, book, movie or show by ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/play/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hl` | string | No | Storefront language, such as en, de, or zh-TW. Maximum 32 characters. |
| `gl` | string | No | Two-letter country code. |
| `product_id` | string | Yes | Native Google Play product identifier, with 1 to 512 letters, digits, underscores, dots, or hyphens. |
| `store` | string | No | Product catalog containing this identifier. |
| `season_id` | string | No | Native season identifier, such as tvseason-OVPad1njPzI.P. Requires store=tv. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/play/product","method":"GET","query":{"hl":"<string>","gl":"<string>","product_id":"<string>","store":"<string>","season_id":"<string>","timeout":"<number>"}}'
```

### Google Play Reviews

Get reviews for a Google Play app.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/play/reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `hl` | string | No | Storefront language, such as en, de, or zh-TW. Maximum 32 characters. |
| `gl` | string | No | Two-letter country code. |
| `product_id` | string | Yes | Native Google Play product identifier, with 1 to 512 letters, digits, underscores, dots, or hyphens. |
| `store` | string | No | Product catalog containing this identifier. |
| `platform` | string | No | Platform associated with the reviews. |
| `rating` | integer | No | Only reviews with this rating, from 1 through 5. |
| `sort_by` | integer | No | 1 for relevant, 2 for newest, or 3 for rating. |
| `num` | integer | No | Number of reviews, from 1 through 199. |
| `next_page_token` | string | No | Returned review continuation. Preserve product, store, language, country, platform, rating, sort order, and count. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/play/reviews","method":"GET","query":{"hl":"<string>","gl":"<string>","product_id":"<string>","store":"<string>","platform":"<string>","rating":"<integer>","sort_by":"<integer>","num":"<integer>","next_page_token":"<string>","timeout":"<number>"}}'
```

### Google Maps Reviews

Get reviews for a Google Maps place.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_id` | string | No | Hexadecimal Google Maps feature identifier.  Format: 0x123:0x456 Exactly one of data_id or place_id is required. |
| `place_id` | string | No | Google place identifier for the business whose reviews should be returned.  Exactly one of place_id or data_id is required. |
| `hl` | string | No | Language used for returned review labels and place context. |
| `gl` | string | No | Lowercase two-letter country code used for regional localization. |
| `sort_by` | string | No | Controls the order of returned reviews. |
| `topic_id` | string | No | Returns reviews associated with a topic ID from the topics response group.  Cannot be combined with query. |
| `query` | string | No | Returns reviews matching a free-text query.  Cannot be combined with topic_id. |
| `num` | string | No | Requested number of unique reviews to return.  Initial unfiltered requests accept 1 through 100; the default remains eight. Requests return one response with up to the requested number of available reviews. Filtered and continuation requests accept 1 through 20. |
| `next_page_token` | string | No | Opaque continuation token from pagination.next_page_token.  Pass the token back unchanged. Continuation requests default to ten reviews unless num is provided. |
| `source_metadata` | string | No | Includes additional review-provider icon and scale metadata when available. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/reviews","method":"GET","query":{"data_id":"<string>","place_id":"<string>","hl":"<string>","gl":"<string>","sort_by":"<string>","topic_id":"<string>","query":"<string>","num":"<string>","next_page_token":"<string>","source_metadata":"<string>","timeout":"<number>"}}'
```

### Google Search

Get Google search results, including the AI Overview and People also ask.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page_token` | string | No | Opaque token from pagination.next_page_token. Send it alone to fetch the next page with the original search parameters.  Prefer page_token to repeating the same search with start=10, start=20, or another offset. Send the token as soon as possible and no later than 5 minutes after receiving it. Available for ordinary Google Search, including fast mode; not available for tbm verticals. search_metadata.continuation is followed for a direct request. If Google omits a required link or the deadline ex |
| `q` | string | No | Google Search query, up to 2,048 characters.  Required unless ludocid, kgmid, or page_token is supplied. |
| `fast_mode` | boolean | No | Return organic results only, skipping AI Overview and all other result groups.  Keeps search metadata and parameters. Omits cross-module position_absolute. Organic results omit thumbnails. |
| `location` | string | No | Human-readable city-level location encoded to UULE by Litescrape.  Conflicts with uule and lat/lon. |
| `uule` | string | No | Pre-encoded Google location value.  Conflicts with location and lat/lon. |
| `lat` | number | No | Latitude from -90 through 90.  Requires lon and conflicts with location and uule. |
| `lon` | number | No | Longitude from -180 through 180.  Requires lat and conflicts with location and uule. |
| `radius` | number | No | Decimal search-bias radius in meters.  Requires location or lat/lon. Desktop: 1–199; tablet/mobile: 1–1,000. |
| `ludocid` | string | No | Google local CID used to search for one entity. |
| `lsig` | string | No | Opaque Knowledge Graph or local-pack signature. |
| `kgmid` | string | No | Google Knowledge Graph machine ID, such as /m/0k8z. |
| `si` | string | No | Opaque cached Google search context. |
| `ibp` | string | No | Google layout or expansion control. |
| `uds` | string | No | Opaque Google filter token. |
| `color_scheme` | string | No | Google result color presentation. |
| `google_domain` | string | No | Results use google.com. Use gl, hl, cr, lr or geography for localization. |
| `gl` | string | No | Lowercase two-letter country localization code. |
| `hl` | string | No | Google interface and result language code. |
| `cr` | string | No | One or more countryXX restrictions joined with \|. |
| `lr` | string | No | One or more lang_xx restrictions joined with \|. |
| `tbs` | string | No | Google native date or search filter string. |
| `safe` | string | No | Google adult-content filtering. |
| `nfpr` | string | No | Google auto-correction control. |
| `filter` | string | No | Google similar-result filtering control. |
| `pws` | string | No | Google personalization control; 0 asks for non-personalized results. |
| `peek_pws` | string | No | Google personalization peek flag, forwarded unchanged. |
| `tbm` | string | No | Google vertical: lcl, vid, nws, shop, or pts. For image searches, use /api/google/images. |
| `start` | integer | No | Non-negative Google result offset.  Prefer page_token to repeating the same search with start=10, start=20, or another offset. |
| `num` | integer | No | Best-effort first-page result count, 1 to 10. |
| `device` | string | No | Request device profile and radius bound. |
| `oq` | string | No | Original query associated with an autocomplete selection. |
| `gs_lp` | string | No | Google gs_lp value associated with an autocomplete selection. |
| `sclient` | string | No | Google client identifier such as gws-wiz-serp. |
| `as_dt` | string | No | Includes or excludes as_sitesearch.  Requires as_sitesearch. |
| `as_epq` | string | No | Exact phrase query. |
| `as_eq` | string | No | Excluded phrase query. |
| `as_lq` | string | No | Require results that link to this URL. |
| `as_nlo` | integer | No | Inclusive range lower bound.  Requires as_nhi. |
| `as_nhi` | integer | No | Inclusive range upper bound.  Requires as_nlo. |
| `as_oq` | string | No | Any-of search terms. |
| `as_q` | string | No | Additional all-of search terms. |
| `as_qdr` | string | No | Quick range d, w, m, or y with an optional positive count. |
| `as_rq` | string | No | Find pages related to this URL. |
| `as_sitesearch` | string | No | Site hostname to include or exclude. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/search","method":"GET","query":{"page_token":"<string>","q":"<string>","fast_mode":"<boolean>","location":"<string>","uule":"<string>","lat":"<number>","lon":"<number>","radius":"<number>","ludocid":"<string>","lsig":"<string>","kgmid":"<string>","si":"<string>","ibp":"<string>","uds":"<string>","color_scheme":"<string>","google_domain":"<string>","gl":"<string>","hl":"<string>","cr":"<string>","lr":"<string>","tbs":"<string>","safe":"<string>","nfpr":"<string>","filter":"<string>","pws":"<string>","peek_pws":"<string>","tbm":"<string>","start":"<integer>","num":"<integer>","device":"<string>","oq":"<string>","gs_lp":"<string>","sclient":"<string>","as_dt":"<string>","as_epq":"<string>","as_eq":"<string>","as_lq":"<string>","as_nlo":"<integer>","as_nhi":"<integer>","as_oq":"<string>","as_q":"<string>","as_qdr":"<string>","as_rq":"<string>","as_sitesearch":"<string>","timeout":"<number>"}}'
```

### Google Shopping

Search Google Shopping products.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/shopping`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Product query, up to 2,048 characters with no controls. Optional when a shoprs token is supplied. |
| `location` | string | No | Named search origin, up to 512 characters and 63 UTF-8 bytes once encoded. Conflicts with uule. |
| `uule` | string | No | Canonical Google location token, up to 2,048 characters. Conflicts with location. |
| `google_domain` | string | No | Validated first-party Google domain. |
| `gl` | string | No | Two-letter country code, normalized to lowercase. |
| `hl` | string | No | Language code such as en, en-GB, or de. |
| `device` | string | No | Google returns its real layout for the selected device. |
| `shoprs` | string | No | Google refinement token from a previous response, up to 4,096 characters. An explicit refinement replaces the one it carries. |
| `min_price` | number | No | Lower price bound, 0 through 1,000,000,000. Excludes the other refinements. |
| `max_price` | number | No | Upper price bound, at or above min_price. Excludes the other refinements. |
| `sort_by` | string | No | Price low to high, price high to low, rating high to low, or Google’s default relevance. Combines with one refinement. |
| `free_shipping` | boolean | No | Only products with free shipping. Excludes the other refinements. |
| `on_sale` | boolean | No | Only products Google marks as on sale. Excludes the other refinements. |
| `small_business` | boolean | No | Only products from small businesses. Excludes the other refinements. |
| `start` | integer | No | Result offset from 0 through 1,000. |
| `num` | integer | No | 1 through 100. Responses are capped to this count and transparently consume Google’s fixed 40-product pages when needed. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/shopping","method":"GET","query":{"q":"<string>","location":"<string>","uule":"<string>","google_domain":"<string>","gl":"<string>","hl":"<string>","device":"<string>","shoprs":"<string>","min_price":"<number>","max_price":"<number>","sort_by":"<string>","free_shipping":"<boolean>","on_sale":"<boolean>","small_business":"<boolean>","start":"<integer>","num":"<integer>","timeout":"<number>"}}'
```

### Google Shopping Product

Get every merchant offer for a Google Shopping product.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/shopping/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | The search term this product was found with, up to 2,048 characters. Google resolves the product viewer against it as well as the identifiers. |
| `location` | string | No | Named search origin, up to 512 characters and 63 UTF-8 bytes once encoded. Conflicts with uule. |
| `uule` | string | No | Canonical Google location token, up to 2,048 characters. Conflicts with location. |
| `google_domain` | string | No | Validated first-party Google domain. |
| `gl` | string | No | Two-letter country code, normalized to lowercase. |
| `hl` | string | No | Language code such as en, en-GB, or de. |
| `device` | string | No | Google returns its real layout for the selected device. |
| `gpcid` | string | No | Product cluster ID from a shopping result, 1 to 20 decimal digits. Single-merchant results have none; send headline_offer_docid instead.  Every Shopping result with a gpcid or headline_offer_docid includes a ready-made litescrape_product_link. |
| `catalog_id` | string | No | Catalog ID from a shopping result without a gpcid, 1 to 20 decimal digits. Lists every store that sells the product rather than only the headline offer. |
| `headline_offer_docid` | string | No | Headline merchant offer document ID from the same shopping result, 1 to 20 decimal digits. Required when the result has no gpcid; conflicts with prds. |
| `image_docid` | string | No | Image document ID from the same shopping result, 1 to 20 decimal digits. Conflicts with prds. |
| `prds` | string | No | Google product selector token from a previous response, up to 2,048 characters. Conflicts with the identifiers above. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/shopping/product","method":"GET","query":{"q":"<string>","location":"<string>","uule":"<string>","google_domain":"<string>","gl":"<string>","hl":"<string>","device":"<string>","gpcid":"<string>","catalog_id":"<string>","headline_offer_docid":"<string>","image_docid":"<string>","prds":"<string>","timeout":"<number>"}}'
```

### Google Trending Searches

Get currently trending searches and related news by country.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/google/trends`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `geo` | string | No | Two-letter country code in uppercase. |
| `limit` | integer | No | Maximum currently trending searches to return. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/trends","method":"GET","query":{"geo":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Greenhouse Job

Get a public Greenhouse job description, departments, published pay ranges, and application questions.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/greenhouse/job`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `board` | string | Yes | Employer Greenhouse board name, such as cloudflare. |
| `job_id` | integer | Yes | Numeric Greenhouse job ID. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/greenhouse/job","method":"GET","query":{"board":"<string>","job_id":"<integer>","timeout":"<number>"}}'
```

### Greenhouse Jobs

List public employer jobs and filter by title or location.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/greenhouse/jobs`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `board` | string | Yes | Employer Greenhouse board name, such as cloudflare. |
| `q` | string | No | Case-insensitive phrase in the job title. |
| `location` | string | No | Case-insensitive phrase in the job location. |
| `page` | integer | No | One-based results page. |
| `limit` | integer | No | Maximum jobs per page, from 1 to 100. |
| `include_content` | boolean | No | Include each job's description, pay ranges and application questions. Defaults to false. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/greenhouse/jobs","method":"GET","query":{"board":"<string>","q":"<string>","location":"<string>","page":"<integer>","limit":"<integer>","include_content":"<boolean>","timeout":"<number>"}}'
```

### Hacker News Item

Get a Hacker News story, comment, job, or poll by ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/hackernews/item`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | Hacker News item ID. Stories, comments, jobs, and polls are supported. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/hackernews/item","method":"GET","query":{"id":"<integer>","timeout":"<number>"}}'
```

### Hacker News Stories

Get ranked Hacker News stories with scores and discussion IDs.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/hackernews/stories`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `feed` | string | No | Story list: top, new, best, ask, show, or job. |
| `page` | integer | No | One-based page within the currently available story list. |
| `limit` | integer | No | Maximum stories per page, from 1 to 50. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/hackernews/stories","method":"GET","query":{"feed":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### Hacker News User

Get a public Hacker News profile and recent submitted item IDs.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/hackernews/user`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | Case-sensitive Hacker News username. |
| `limit` | integer | No | Maximum recent submitted item IDs to return. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/hackernews/user","method":"GET","query":{"username":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Home Depot Product

Get a Home Depot product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/homedepot/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/homedepot/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Home Depot Search

Search Home Depot products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/homedepot/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | Only the first result page is currently supported. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/homedepot/search","method":"GET","query":{"query":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Homes.com Property

Get a Homes.com property by URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/homes/property`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Homes.com property URL under /property/, without query parameters.  Alpha: availability may vary by location or property. Returns available property facts, descriptions, coordinates, agents and photos. Price history is not available from this route. Returns available fields for the requested property. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/homes/property","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Homes.com Search

Search Homes.com listings from a search URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/homes/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Homes.com location search URL, including sale, rental, price, property-type or page filters.  Alpha: availability may vary by location or property. Use the site URL to set filters or select a page. Follow pagination.next when present. Page links and total counts are included when available. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/homes/search","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Idealo Italy Search

Search Idealo Italy products with prices and product links.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/idealo/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Product keywords to search for. |
| `page` | integer | No | Result page, starting at one. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/idealo/search","method":"GET","query":{"q":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### IKEA Product

Get an IKEA product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/ikea/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/ikea/product","method":"GET","query":{"url":"<string>","store_id":"<string>","timeout":"<number>"}}'
```

### IKEA Search

Search IKEA products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/ikea/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/ikea/search","method":"GET","query":{"query":"<string>","page":"<integer>","store_id":"<string>","timeout":"<number>"}}'
```

### Indeed Search

Search Indeed jobs by keyword and location, with salary, experience and remote filters.

Use JSON POST for native arrays, or encode array parameters as JSON strings in GET queries. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/indeed/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Job title, keywords, company or Indeed query syntax. Omit to browse using only location and filters. |
| `page` | integer | No | One-based results page. Use next_page from the response to continue. |
| `page_token` | string | No | Continuation token from next_page_token. Use it with next_page and unchanged search parameters. |
| `location` | string | No | City, state, ZIP code, or Remote. |
| `radius` | integer | No | Search radius in radius_unit units; 0 means exact location. |
| `radius_unit` | string | No | Distance unit for the location radius. |
| `country` | string | No | Two-letter Indeed market, for example US, CA, GB, DE or AU. |
| `locale` | string | No | Indeed locale, such as fr-CA or de-DE. Defaults to en-{country}; set the language for non-English searches. |
| `limit` | integer | No | Jobs requested per page. Results may contain fewer jobs; use next_page_token to continue. |
| `sort` | string | No | Result ordering. |
| `fromage` | integer | No | Maximum age in days since the job appeared on Indeed. |
| `job_type` | string | No | Employment type filter. |
| `workplace` | string | No | Filter for remote or hybrid jobs. |
| `easy_apply` | boolean | No | Require Indeed Apply. |
| `education` | string | No | Education level filter. |
| `no_experience` | boolean | No | Require jobs marked No Experience Required. |
| `experience_level` | string | No | Filter for entry, mid or senior level jobs. |
| `salary_min` | integer | No | Minimum annualized base salary in the market's currency. |
| `salary_max` | integer | No | Maximum annualized base salary in the market's currency. |
| `experience_months_min` | integer | No | Minimum required experience in months. |
| `experience_months_max` | integer | No | Maximum required experience in months. |
| `job_language` | string | No | Language of the job posting, independent of the response locale. |
| `employer_keys` | string | No | Encoded Indeed employer keys as a JSON array. Names are not keys; company names can be searched in q using company:name. |
| `attribute_keys` | string | No | Require all of these Indeed attribute codes (JSON array), covering skills, benefits, shifts, licenses, clearances and employment types. Codes and labels are included on returned jobs. |
| `any_attribute_keys` | string | No | Require any of these Indeed attribute codes (JSON array), combined with all other supplied filters. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/indeed/search","method":"GET","query":{"q":"<string>","page":"<integer>","page_token":"<string>","location":"<string>","radius":"<integer>","radius_unit":"<string>","country":"<string>","locale":"<string>","limit":"<integer>","sort":"<string>","fromage":"<integer>","job_type":"<string>","workplace":"<string>","easy_apply":"<boolean>","education":"<string>","no_experience":"<boolean>","experience_level":"<string>","salary_min":"<integer>","salary_max":"<integer>","experience_months_min":"<integer>","experience_months_max":"<integer>","job_language":"<string>","employer_keys":"<string>","attribute_keys":"<string>","any_attribute_keys":"<string>","timeout":"<number>"}}'
```

### Instagram Embed

Retrieve public Instagram embed data.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/instagram/embed`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | Yes | Instagram username without @. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/instagram/embed","method":"GET","query":{"handle":"<string>","timeout":"<number>"}}'
```

### Instagram Post

Retrieve public Instagram post data.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/instagram/post`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | HTTPS Instagram post, reel or TV URL. |
| `trim` | boolean | No | Return compact media details. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/instagram/post","method":"GET","query":{"url":"<string>","trim":"<boolean>","timeout":"<number>"}}'
```

### Instagram Posts

Retrieve public Instagram posts data.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/instagram/posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | Yes | Instagram username without @. |
| `trim` | boolean | No | Return a compact profile containing public identity and counts. |
| `next_max_id` | string | No | next_max_id from the previous page. |
| `num` | integer | No | Maximum number of posts requested from Instagram. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/instagram/posts","method":"GET","query":{"handle":"<string>","trim":"<boolean>","next_max_id":"<string>","num":"<integer>","timeout":"<number>"}}'
```

### Instagram Profile

Retrieve public Instagram profile data.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/instagram/profile`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | Yes | Instagram username without @. |
| `trim` | boolean | No | Return a compact profile containing public identity and counts. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/instagram/profile","method":"GET","query":{"handle":"<string>","trim":"<boolean>","timeout":"<number>"}}'
```

### Instagram Profile Post Count

Retrieve public Instagram profile post count data.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/instagram/profile-post-count`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | Yes | Instagram username without @. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/instagram/profile-post-count","method":"GET","query":{"handle":"<string>","timeout":"<number>"}}'
```

### Instagram Search Popular

Get popular Instagram posts for a search topic.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/instagram/search-popular`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Popular topic text or URL slug; spaces become hyphens. |
| `cursor` | string | No | Opaque cursor returned by search-popular for the same query. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/instagram/search-popular","method":"GET","query":{"query":"<string>","cursor":"<string>","timeout":"<number>"}}'
```

### Kroger Product

Get a Kroger product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/kroger/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/kroger/product","method":"GET","query":{"url":"<string>","store_id":"<string>","timeout":"<number>"}}'
```

### Kroger Search

Search Kroger products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/kroger/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | Only the first result page is currently supported. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/kroger/search","method":"GET","query":{"query":"<string>","page":"<integer>","store_id":"<string>","timeout":"<number>"}}'
```

### Levels.fyi Search

Search Levels.fyi jobs by company, location, level and pay.

Use JSON POST for native arrays, or encode array parameters as JSON strings in GET queries. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/levels/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Job title, keywords or company; omit to browse. |
| `page` | integer | No | One-based results page. Use next_page from the response to continue. |
| `company` | string | No | Company slug, such as google. |
| `location` | string | No | Levels.fyi location slug, such as united-states; not a free-text city name. |
| `sort` | string | No | Result ordering. |
| `limit` | integer | No | Companies per page; jobs are grouped by company. |
| `jobs_per_company` | integer | No | Maximum matching jobs included for each company. |
| `companies` | string | No | Company slugs as a JSON array; mutually exclusive with company. A single company advances jobs instead of company groups. |
| `locations` | string | No | City, state or country slugs as a JSON array, such as ["united-states","canada"]. Mutually exclusive with location. |
| `job_families` | string | No | Job-family slugs as a JSON array, such as ["software-engineer"]. |
| `levels` | string | No | Standard seniority levels as a JSON array. |
| `employment_types` | string | No | Employment types as a JSON array. |
| `work_arrangements` | string | No | Work arrangements as a JSON array. |
| `min_base_compensation` | integer | No | Minimum annual base compensation in USD. |
| `min_total_compensation` | integer | No | Minimum median annual total compensation in USD; may include Levels.fyi estimates. |
| `company_types` | string | No | Company types as a JSON array. |
| `company_sizes` | string | No | Company sizes as a JSON array: seed 1–50, early 51–200, mid 201–1,000, large 1,001–10,000, enterprise 10,001+ employees. |
| `company_valuations` | string | No | Company valuation ranges in USD as a JSON array of [minimum, maximum] pairs. |
| `perk_ids` | string | No | Benefit IDs as a JSON array, for example 58 remote work, 4 retirement plan, 35 paid time off, 22 health insurance. |
| `posted_within` | integer | No | Maximum posting age in posted_within_unit units. |
| `posted_within_unit` | string | No | Unit for posted_within. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/levels/search","method":"GET","query":{"q":"<string>","page":"<integer>","company":"<string>","location":"<string>","sort":"<string>","limit":"<integer>","jobs_per_company":"<integer>","companies":"<string>","locations":"<string>","job_families":"<string>","levels":"<string>","employment_types":"<string>","work_arrangements":"<string>","min_base_compensation":"<integer>","min_total_compensation":"<integer>","company_types":"<string>","company_sizes":"<string>","company_valuations":"<string>","perk_ids":"<string>","posted_within":"<integer>","posted_within_unit":"<string>","timeout":"<number>"}}'
```

### Naturitas Product

Get Naturitas product details, prices, pack discounts, ratings, and categories.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/naturitas/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Product URL from this provider.  Use a product URL returned by the search endpoint, such as https://www.naturitas.es/p/<category>/<product>. Query strings and fragments are not accepted. A product that is no longer listed returns not_found. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/naturitas/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Lever Jobs

Page through an employer's public jobs, descriptions, and application links.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/lever/jobs`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company` | string | Yes | Employer's Lever site name, such as spotify. |
| `skip` | integer | No | Number of jobs to skip for pagination. |
| `limit` | integer | No | Maximum jobs to return, up to 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/lever/jobs","method":"GET","query":{"company":"<string>","skip":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### LinkedIn Company

Read public company profiles with follower and employee counts, office locations, and similar companies.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/linkedin/company`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company` | string | Yes | Company slug from its LinkedIn URL, such as microsoft. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/linkedin/company","method":"GET","query":{"company":"<string>","timeout":"<number>"}}'
```

### LinkedIn Company Posts

Read recent public company posts and reposts with reaction and comment counts, authors, and media.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/linkedin/company-posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company` | string | Yes | LinkedIn company slug, such as microsoft. |
| `limit` | integer | No | Maximum recent public posts to return, up to 20. Availability varies by company. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/linkedin/company-posts","method":"GET","query":{"company":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### LinkedIn Job

Get a public LinkedIn job description, employment details, published salary, and applicant count.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/linkedin/job`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `job_id` | string | Yes | Numeric LinkedIn job ID from a job listing. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/linkedin/job","method":"GET","query":{"job_id":"<string>","timeout":"<number>"}}'
```

### LinkedIn Jobs

Search public LinkedIn job listings by keywords, location, and workplace type.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/linkedin/jobs`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Job title or keywords. |
| `location` | string | No | City, region, or country to search. |
| `page` | integer | No | One-based page of up to 10 public job listings. |
| `remote` | string | No | Workplace filter. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/linkedin/jobs","method":"GET","query":{"q":"<string>","location":"<string>","page":"<integer>","remote":"<string>","timeout":"<number>"}}'
```

### Naver AI Overview

Get Naver AI Briefing answers with citations.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/naver/ai-overview`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | No | Query for an AI Briefing; excludes page_token. |
| `page_token` | string | No | Business AI Briefing continuation from ai_briefing.page_token; excludes query. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/naver/ai-overview","method":"GET","query":{"query":"<string>","page_token":"<string>","timeout":"<number>"}}'
```

### Naver Search

Search Naver web, news, video and image results.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/naver/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search query, including Naver search operators. |
| `start` | integer | No | Result offset; takes precedence over page. |
| `page` | integer | No | Page number, starting at 1. |
| `num` | integer | No | Image result limit; defaults to 50 for images. |
| `where` | string | No | Search type: nexearch (general search), web, video, news, or image. |
| `sort_by` | string | No | News: 0 relevance (default), 1 latest, 2 oldest. Other types: r relevance (default), dd latest. |
| `period` | string | No | Time window: all, 1h, 1d, 1w, 1m, 3m, 6m, 1y, or fromYYYYMMDDtoYYYYMMDD. News also accepts 2h, 3h, 4h, 5h, and 6h. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/naver/search","method":"GET","query":{"query":"<string>","start":"<integer>","page":"<integer>","num":"<integer>","where":"<string>","sort_by":"<string>","period":"<string>","timeout":"<number>"}}'
```

### npm Package

Get an npm package version and its dependencies.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/npm/package`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `package` | string | Yes | npm package name, including an optional scope, such as @vue/server-renderer. |
| `version` | string | No | Published version or distribution tag. Defaults to latest. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/npm/package","method":"GET","query":{"package":"<string>","version":"<string>","timeout":"<number>"}}'
```

### npm Search

Search npm packages by keywords and qualifiers.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/npm/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | Yes | Package search terms and npm search qualifiers. |
| `page` | integer | No | One-based results page. |
| `limit` | integer | No | Maximum packages per page, from 1 to 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/npm/search","method":"GET","query":{"q":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### Pinterest Profile

Get a public Pinterest profile, biography, and follower counts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/pinterest/profile`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | Pinterest username without a profile URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/pinterest/profile","method":"GET","query":{"username":"<string>","timeout":"<number>"}}'
```

### Product Hunt Launches

Read today's public launches with product names, links, and taglines.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/producthunt/launches`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum products from today's launches, up to 50. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/producthunt/launches","method":"GET","query":{"limit":"<integer>","timeout":"<number>"}}'
```

### PyPI Project

Get Python package metadata and release files from PyPI.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/pypi/project`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `project` | string | Yes | PyPI project name, such as requests. |
| `version` | string | No | Published version. Omit for the latest release. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/pypi/project","method":"GET","query":{"project":"<string>","version":"<string>","timeout":"<number>"}}'
```

### Realtor.com Property

Get a Realtor.com property by URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/realtor/property`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Realtor.com property URL under /realestateandhomes-detail/, without query parameters.  Alpha: availability may vary by location or property. Returns available fields for the requested property. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/realtor/property","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Realtor.com Search

Search Realtor.com listings from a search URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/realtor/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Listings per results page, from 1 to 200. |
| `url` | string | Yes | Realtor.com city_STATE or ZIP search URL under /realestateandhomes-search/ or /apartments/.  Alpha: availability may vary by location or property. Supported URL filters: price, beds, baths, sqft, type-single-family-home, show-recently-sold and pg-1 through pg-100. Unsupported filters and query parameters are rejected. Follow pagination.next when present. Bedroom filters require whole numbers. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/realtor/search","method":"GET","query":{"limit":"<integer>","url":"<string>","timeout":"<number>"}}'
```

### Reddit Post

Get a public Reddit post and available discussion comments.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/reddit/post`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public Reddit discussion URL, including r/subreddit, comments, and the post ID. Remove tracking query parameters. |
| `limit` | integer | No | Maximum comments to return from the public discussion. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/reddit/post","method":"GET","query":{"url":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Reddit Search

Search public Reddit posts by keywords, sort order, and time range.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/reddit/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum public entries to return, from 1 to 100. |
| `after` | string | No | next_page_token from the previous response. |
| `q` | string | Yes | Reddit search terms. |
| `sort` | string | No | Search result order. |
| `time` | string | No | Time range for matching posts. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/reddit/search","method":"GET","query":{"limit":"<integer>","after":"<string>","q":"<string>","sort":"<string>","time":"<string>","timeout":"<number>"}}'
```

### Reddit Subreddit Posts

Read public posts from a subreddit with pagination.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/reddit/subreddit-posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum public entries to return, from 1 to 100. |
| `after` | string | No | next_page_token from the previous response. |
| `subreddit` | string | Yes | Subreddit name without r/. |
| `sort` | string | No | Post order. |
| `time` | string | No | Time range when sorting top posts. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/reddit/subreddit-posts","method":"GET","query":{"limit":"<integer>","after":"<string>","subreddit":"<string>","sort":"<string>","time":"<string>","timeout":"<number>"}}'
```

### Redfin Property

Get a Redfin property by listing URL.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/redfin/property`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Redfin property URL ending in /home/<property_id>. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/redfin/property","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Redfin Search

Search Redfin homes for sale or recently sold.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/redfin/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `min_price` | integer | No | Minimum listing price in US dollars. |
| `max_price` | integer | No | Maximum listing price in US dollars. |
| `min_beds` | integer | No | Minimum number of bedrooms. |
| `max_beds` | integer | No | Maximum number of bedrooms. |
| `min_baths` | number | No | Minimum number of bathrooms. |
| `min_sqft` | integer | No | Minimum interior area in square feet. |
| `max_sqft` | integer | No | Maximum interior area in square feet. |
| `url` | string | No | Redfin city, ZIP, county or neighborhood search URL. Existing URL filters are retained unless overridden.  Supply one location: a region URL, region_id with region_type, or map_bounds. |
| `region_id` | integer | No | Redfin region identifier; requires region_type. |
| `region_type` | integer | No | Region kind: 1 neighborhood, 2 ZIP region, 5 county, 6 city, 11 state.  A ZIP region identifier differs from the ZIP code. Use a Redfin ZIP search URL if the region identifier is unknown. |
| `map_bounds` | string | No | Map rectangle as north,east,south,west. |
| `status` | string | No | Listing status. Defaults to for_sale when no URL is supplied. |
| `sold_within_days` | integer | No | Sold listings from the last N days; requires status=sold. Defaults to 180 for sold searches. |
| `property_type` | string | No | Restrict results to one property type. |
| `sort` | string | No | Result ordering. Defaults to recommended when no URL is supplied. |
| `limit` | integer | No | Maximum homes returned. Narrow the region or map bounds when results reach this limit.  The response does not advertise pagination or a total count. If search_information.possibly_truncated is true, narrow the location or filters. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/redfin/search","method":"GET","query":{"min_price":"<integer>","max_price":"<integer>","min_beds":"<integer>","max_beds":"<integer>","min_baths":"<number>","min_sqft":"<integer>","max_sqft":"<integer>","url":"<string>","region_id":"<integer>","region_type":"<integer>","map_bounds":"<string>","status":"<string>","sold_within_days":"<integer>","property_type":"<string>","sort":"<string>","limit":"<integer>","timeout":"<number>"}}'
```

### Remote OK Jobs

Find remote jobs by keywords and tags.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/remoteok/jobs`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | Case-insensitive phrase in the job title or company. |
| `tag` | string | No | Exact job tag, matched case-insensitively. |
| `page` | integer | No | One-based results page. |
| `limit` | integer | No | Maximum jobs per page, from 1 to 100. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/remoteok/jobs","method":"GET","query":{"q":"<string>","tag":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### Shopify Products

Page through published product catalogs with variants, prices, and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/shopify/products`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `store` | string | Yes | Shopify store subdomain, or allbirds or colourpop for their public storefronts. The store must publish its product catalog. |
| `page` | integer | No | Product page, starting at one. |
| `limit` | integer | No | Products per page, up to 250. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/shopify/products","method":"GET","query":{"store":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### SoundCloud Track

Read public track metadata, duration, and available engagement counts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/soundcloud/track`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `artist` | string | Yes | SoundCloud artist name from the track URL. |
| `track` | string | Yes | Track slug from the SoundCloud URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/soundcloud/track","method":"GET","query":{"artist":"<string>","track":"<string>","timeout":"<number>"}}'
```

### Spotify Item

Read public track, album, artist, and playlist metadata and available track lists.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/spotify/item`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `kind` | string | Yes | Spotify item type. |
| `id` | string | Yes | 22-character Spotify identifier. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/spotify/item","method":"GET","query":{"kind":"<string>","id":"<string>","timeout":"<number>"}}'
```

### Sprouts Product

Get a Sprouts product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/sprouts/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `store_id` | string | No | Sprouts store location ID, such as 17650. Selects that store's in-store catalog. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/sprouts/product","method":"GET","query":{"url":"<string>","store_id":"<string>","timeout":"<number>"}}'
```

### Sprouts Search

Search Sprouts products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/sprouts/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `store_id` | string | No | Sprouts store location ID, such as 17650. Selects that store's in-store catalog. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/sprouts/search","method":"GET","query":{"query":"<string>","page":"<integer>","store_id":"<string>","timeout":"<number>"}}'
```

### Stack Overflow Answers

Read answers to a Stack Overflow question with pagination.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/stackoverflow/answers`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | One-based results page, from 1 to 25. |
| `limit` | integer | No | Maximum results per page, from 1 to 100. |
| `question_id` | integer | Yes | Numeric Stack Overflow question ID. |
| `sort` | string | No | Answer ranking. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/stackoverflow/answers","method":"GET","query":{"page":"<integer>","limit":"<integer>","question_id":"<integer>","sort":"<string>","timeout":"<number>"}}'
```

### Stack Overflow Comments

Read comments on a Stack Overflow question with pagination.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/stackoverflow/comments`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | One-based results page, from 1 to 25. |
| `limit` | integer | No | Maximum results per page, from 1 to 100. |
| `question_id` | integer | Yes | Numeric Stack Overflow question ID. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/stackoverflow/comments","method":"GET","query":{"page":"<integer>","limit":"<integer>","question_id":"<integer>","timeout":"<number>"}}'
```

### Stack Overflow Question

Get a Stack Overflow question, its text, tags, and statistics.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/stackoverflow/question`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `question_id` | integer | Yes | Numeric Stack Overflow question ID. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/stackoverflow/question","method":"GET","query":{"question_id":"<integer>","timeout":"<number>"}}'
```

### Steam App

Get Steam app details, descriptions, publishers, and regional prices.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/steam/app`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | No | Two-letter country code for prices and availability. |
| `language` | string | No | Steam language name, such as english, german, or french. |
| `app_id` | integer | Yes | Numeric Steam app ID. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/steam/app","method":"GET","query":{"country":"<string>","language":"<string>","app_id":"<integer>","timeout":"<number>"}}'
```

### Steam Search

Find Steam games and software with regional pricing.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/steam/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country` | string | No | Two-letter country code for prices and availability. |
| `language` | string | No | Steam language name, such as english, german, or french. |
| `q` | string | Yes | Game or software title to search for. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/steam/search","method":"GET","query":{"country":"<string>","language":"<string>","q":"<string>","timeout":"<number>"}}'
```

### Target Product

Get a product sold by the US retailer Target, with its details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/target/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/target/product","method":"GET","query":{"url":"<string>","store_id":"<string>","timeout":"<number>"}}'
```

### Target Search

Search products sold by the US retailer Target, with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/target/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/target/search","method":"GET","query":{"query":"<string>","page":"<integer>","store_id":"<string>","timeout":"<number>"}}'
```

### Web page screenshot

Take a screenshot of a web page.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/web/screenshot`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTP(S) URL to capture, 1-8,192 characters. Include http:// or https://; bare domains are rejected. The host must be public, on port 80 or 443, without embedded credentials. |
| `remove_overlay` | boolean | No | Remove modal and cookie-banner overlays from the page. |
| `detach_invisibles` | boolean | No | Drop display:none elements from the page. |
| `wait_for_selector` | string | No | CSS selector to wait for after navigation, 1-2,048 characters. POST also accepts a list of 1-16 selectors. |
| `user_agent` | string | No | User-Agent for the page request, 1-1,024 characters without control characters. Defaults to the browser's own. |
| `page_timeout` | integer | No | Seconds from 1 through 180 for page loading and browser operations. Cannot extend the total request budget set by timeout. |
| `locale` | string | No | Browser locale as a language tag, 2-64 characters. Defaults to the browser's own. |
| `referer` | string | No | HTTP(S) URL sent as the Referer. |
| `assert_status_code` | integer | No | Expected origin HTTP status, 100-599. A different status is rejected; otherwise a rendered error page is a successful capture. |
| `robots_txt` | string | No | User agent, 1-256 characters, to check against the site's robots.txt; disallowed URLs are rejected. |
| `respond_timing` | string | No | Page readiness condition to reach before responding. |
| `full_page` | boolean | No | Capture the full page when true. The default, false, captures the viewport. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/web/screenshot","method":"GET","query":{"url":"<string>","remove_overlay":"<boolean>","detach_invisibles":"<boolean>","wait_for_selector":"<string>","user_agent":"<string>","page_timeout":"<integer>","locale":"<string>","referer":"<string>","assert_status_code":"<integer>","robots_txt":"<string>","respond_timing":"<string>","full_page":"<boolean>","timeout":"<number>"}}'
```

### Telegram Posts

Read public channel posts with dates, text, and displayed view counts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/telegram/posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `channel` | string | Yes | Public Telegram channel username, without @. |
| `before` | integer | No | Return posts older than this message identifier; omit for the latest posts. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/telegram/posts","method":"GET","query":{"channel":"<string>","before":"<integer>","timeout":"<number>"}}'
```

### TikTok Collection Videos

Page through posts saved in a public TikTok collection.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/collection-videos`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `url` | string | No | Public TikTok collection URL; supply this or collection_id. |
| `collection_id` | string | No | Numeric public saved-collection ID; supply this or url. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/collection-videos","method":"GET","query":{"cursor":"<string>","count":"<integer>","url":"<string>","collection_id":"<string>","timeout":"<number>"}}'
```

### TikTok Comment Replies

Page through replies to a TikTok comment.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/comment-replies`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `url` | string | No | TikTok video, photo/slideshow or vm/vt short-link URL. |
| `video_id` | string | No | TikTok post ID; supply this or url. |
| `comment_id` | string | Yes | ID of the parent TikTok comment; obtain cid from the comments endpoint. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/comment-replies","method":"GET","query":{"cursor":"<string>","count":"<integer>","url":"<string>","video_id":"<string>","comment_id":"<string>","timeout":"<number>"}}'
```

### TikTok Comments

Page through public comments on a TikTok post.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/comments`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `url` | string | No | TikTok video, photo/slideshow or vm/vt short-link URL. |
| `video_id` | string | No | TikTok post ID; supply this or url. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/comments","method":"GET","query":{"cursor":"<string>","count":"<integer>","url":"<string>","video_id":"<string>","timeout":"<number>"}}'
```

### TikTok Followers

Page through public followers of a TikTok user.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/followers`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `handle` | string | No | Public TikTok handle, with or without @; supply this or user_id. |
| `user_id` | string | No | Numeric TikTok user ID; supply this or handle. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/followers","method":"GET","query":{"cursor":"<string>","count":"<integer>","handle":"<string>","user_id":"<string>","timeout":"<number>"}}'
```

### TikTok Live Room

Get a TikTok live room's status and metrics.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/live`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `room_id` | string | Yes | Numeric TikTok live-room ID, obtainable from user-live. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/live","method":"GET","query":{"room_id":"<string>","timeout":"<number>"}}'
```

### TikTok Profile

Get public TikTok profile fields and statistics by handle or numeric user ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/profile`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | No | Public TikTok handle, with or without @; supply this or user_id. |
| `user_id` | string | No | Numeric TikTok user ID; supply this or handle. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/profile","method":"GET","query":{"handle":"<string>","user_id":"<string>","timeout":"<number>"}}'
```

### TikTok Profile Videos

Page through posts from a public TikTok profile by handle or numeric user ID.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/profile-videos`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `handle` | string | No | Public TikTok handle, with or without @; supply this or user_id. |
| `user_id` | string | No | Numeric TikTok user ID; supply this or handle. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/profile-videos","method":"GET","query":{"cursor":"<string>","count":"<integer>","handle":"<string>","user_id":"<string>","timeout":"<number>"}}'
```

### TikTok Search Hashtag

Resolve a public hashtag and page through its posts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/search-hashtag`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `hashtag` | string | Yes | TikTok hashtag name, with or without the leading #. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/search-hashtag","method":"GET","query":{"cursor":"<string>","count":"<integer>","hashtag":"<string>","timeout":"<number>"}}'
```

### TikTok Search Suggestions

Get public TikTok autocomplete suggestions in order.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/search-suggestions`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search text for TikTok autocomplete suggestions. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/search-suggestions","method":"GET","query":{"query":"<string>","timeout":"<number>"}}'
```

### TikTok Song

Get a TikTok sound's details and usage count.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/song`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `clip_id` | string | Yes | TikTok music clip ID, the numeric suffix of a /music/ URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/song","method":"GET","query":{"clip_id":"<string>","timeout":"<number>"}}'
```

### TikTok Song Videos

Page through TikTok posts that use a sound.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/song-videos`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cursor` | string | No | Upstream pagination cursor from the preceding response; 0 starts a new feed. |
| `count` | integer | No | Requested page size, between 1 and 35. |
| `clip_id` | string | Yes | Numeric TikTok music clip ID, the suffix of a /music/ URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/song-videos","method":"GET","query":{"cursor":"<string>","count":"<integer>","clip_id":"<string>","timeout":"<number>"}}'
```

### TikTok Transcript

Get public TikTok captions with timed segments.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/transcript`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | No | TikTok video, photo/slideshow or vm/vt short-link URL. |
| `video_id` | string | No | TikTok post ID; supply this or url. |
| `language` | string | No | Caption language code, for example eng-US. Defaults to the first available track. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/transcript","method":"GET","query":{"url":"<string>","video_id":"<string>","language":"<string>","timeout":"<number>"}}'
```

### TikTok Trending Feed

Get TikTok's trending feed.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/trending-feed`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `count` | integer | No | Requested number of recommended posts, between 1 and 35. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/trending-feed","method":"GET","query":{"count":"<integer>","timeout":"<number>"}}'
```

### TikTok User Live

Get a TikTok user's live status and room metadata.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/user-live`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `handle` | string | Yes | Public TikTok handle, with or without the leading @. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/user-live","method":"GET","query":{"handle":"<string>","timeout":"<number>"}}'
```

### TikTok Video

Get a TikTok video or photo post with its media and metrics.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tiktok/video`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | No | TikTok video, photo/slideshow or vm/vt short-link URL. |
| `video_id` | string | No | TikTok post ID; supply this or url. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tiktok/video","method":"GET","query":{"url":"<string>","video_id":"<string>","timeout":"<number>"}}'
```

### Tripadvisor Reviews

Get reviews for a Tripadvisor place.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tripadvisor/reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `place_id` | integer | Yes | Required positive Tripadvisor place identifier. |
| `tripadvisor_domain` | string | No | Supported localized Tripadvisor hostname. |
| `locale` | string | No | Language or language-COUNTRY code. |
| `start` | integer | No | Zero-based review offset. Set start=20 with num=20 for the second page, or follow pagination.next. |
| `num` | integer | No | Number of reviews to return, up to 20 per request. |
| `sort_by` | string | No | Chronological or machine-ranked ordering. |
| `translate` | boolean | No | Request Tripadvisor machine translation. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tripadvisor/reviews","method":"GET","query":{"place_id":"<integer>","tripadvisor_domain":"<string>","locale":"<string>","start":"<integer>","num":"<integer>","sort_by":"<string>","translate":"<boolean>","timeout":"<number>"}}'
```

### Tripadvisor Search

Search Tripadvisor hotels, restaurants and attractions.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/tripadvisor/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page_token` | string | No | Use pagination.next_page_token with the next start offset and the same search settings to fetch the next page directly.  Follow pagination.next to preserve all pagination parameters automatically. Some searches may require another lookup before a continuation token is available. |
| `q` | string | Yes | Required search text, up to 500 characters. |
| `tripadvisor_domain` | string | No | Supported localized Tripadvisor hostname. |
| `locale` | string | No | Language or language-COUNTRY code. |
| `geo_id` | integer | No | Optional positive Tripadvisor geography identifier. |
| `lat` | number | No | Optional search-center latitude; requires lon. |
| `lon` | number | No | Optional search-center longitude; requires lat. |
| `place_type` | string | No | Result entity type. |
| `start` | integer | No | Zero-based result offset. Follow pagination.next for the next page, or pass its start and page_token together to continue the same search. |
| `num` | integer | No | Number of results to return, up to 20 per request. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tripadvisor/search","method":"GET","query":{"page_token":"<string>","q":"<string>","tripadvisor_domain":"<string>","locale":"<string>","geo_id":"<integer>","lat":"<number>","lon":"<number>","place_type":"<string>","start":"<integer>","num":"<integer>","timeout":"<number>"}}'
```

### Walmart Product

Get a Walmart product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/walmart/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/walmart/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Walmart Search

Search Walmart products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/walmart/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/walmart/search","method":"GET","query":{"query":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Wayfair Product

Get a Wayfair product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/wayfair/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/wayfair/product","method":"GET","query":{"url":"<string>","timeout":"<number>"}}'
```

### Wayfair Search

Search Wayfair products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/wayfair/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/wayfair/search","method":"GET","query":{"query":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Web page fetch

Get a web page as Markdown, HTML or plain text.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/web/fetch`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTP(S) URL to capture, 1-8,192 characters. Include http:// or https://; bare domains are rejected. The host must be public, on port 80 or 443, without embedded credentials. |
| `remove_overlay` | boolean | No | Remove modal and cookie-banner overlays from the page. |
| `detach_invisibles` | boolean | No | Drop display:none elements from the page. |
| `wait_for_selector` | string | No | CSS selector to wait for after navigation, 1-2,048 characters. POST also accepts a list of 1-16 selectors. |
| `user_agent` | string | No | User-Agent for the page request, 1-1,024 characters without control characters. Defaults to the browser's own. |
| `page_timeout` | integer | No | Seconds from 1 through 180 for page loading and browser operations. Cannot extend the total request budget set by timeout. |
| `locale` | string | No | Browser locale as a language tag, 2-64 characters. Defaults to the browser's own. |
| `referer` | string | No | HTTP(S) URL sent as the Referer. |
| `assert_status_code` | integer | No | Expected origin HTTP status, 100-599. A different status is rejected; otherwise a rendered error page is a successful capture. |
| `robots_txt` | string | No | User agent, 1-256 characters, to check against the site's robots.txt; disallowed URLs are rejected. |
| `respond_timing` | string | No | Page readiness condition to reach before responding. |
| `respond_with` | string | No | Output format: content (default; main content as Markdown, or the whole page when extraction keeps too little), markdown (whole page as Markdown), html, text, frontmatter (content plus front matter), or a '+' combination such as markdown+frontmatter. For screenshots use /api/web/screenshot. |
| `with_links_summary` | string | No | true, false or all: add a links list to the response. |
| `with_images_summary` | boolean | No | Add an images list to the response. |
| `retain_images` | string | No | Images to keep: all (default), alt (alt text only) or none. |
| `retain_links` | string | No | Links to keep: all (default), text (link text only), none, or gpt-oss (citation format with a links summary). |
| `retain_media` | string | No | How video, audio and embedded video appear: none, text, link (default), image or html. |
| `preset` | string | No | Option preset. Fills only the options the request leaves unset. |
| `no_gfm` | string | No | true, false or table: disable GitHub-flavored Markdown, or only its tables. |
| `target_selector` | string | No | CSS selector to extract, 1-2,048 characters; POST also accepts a list of 1-16 selectors. Implies waiting for the selector. Match-all selectors are rejected. |
| `remove_selector` | string | No | CSS selector removed before extraction, 1-2,048 characters; POST also accepts a list of 1-16 selectors. |
| `keep_img_data_url` | boolean | No | Keep inline data: images in Markdown. |
| `with_iframe` | string | No | true, false or quoted: include iframe content before extraction. |
| `with_shadow_dom` | boolean | No | Include open shadow DOM content before extraction. |
| `engine` | string | No | auto (default; lightweight HTTP first, a browser when needed), browser, or curl (no JavaScript). |
| `token_budget` | integer | No | Integer 1-10,000,000. Reject the page when its token count exceeds the budget. |
| `markdown_chunking` | string | No | true, h1-h5, structured or s1-s5: split the Markdown and return chunks. |
| `max_tokens` | integer | No | Integer 500-10,000,000. Trim content to this many tokens. |
| `base` | string | No | Resolve relative links against the requested URL (initial, default) or the final URL after redirects (final). |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/web/fetch","method":"GET","query":{"url":"<string>","remove_overlay":"<boolean>","detach_invisibles":"<boolean>","wait_for_selector":"<string>","user_agent":"<string>","page_timeout":"<integer>","locale":"<string>","referer":"<string>","assert_status_code":"<integer>","robots_txt":"<string>","respond_timing":"<string>","respond_with":"<string>","with_links_summary":"<string>","with_images_summary":"<boolean>","retain_images":"<string>","retain_links":"<string>","retain_media":"<string>","preset":"<string>","no_gfm":"<string>","target_selector":"<string>","remove_selector":"<string>","keep_img_data_url":"<boolean>","with_iframe":"<string>","with_shadow_dom":"<boolean>","engine":"<string>","token_budget":"<integer>","markdown_chunking":"<string>","max_tokens":"<integer>","base":"<string>","timeout":"<number>"}}'
```

### Whole Foods Product

Get a Whole Foods product's details, price and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/wholefoods/product`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Public HTTPS product URL on this retailer's site. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/wholefoods/product","method":"GET","query":{"url":"<string>","store_id":"<string>","timeout":"<number>"}}'
```

### Whole Foods Search

Search Whole Foods products with prices and availability.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/wholefoods/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Product keywords to search for. |
| `page` | integer | No | One-based result page. |
| `store_id` | string | No | Retailer's store ID. Selects the store catalog, pricing or availability where the retailer exposes it. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/wholefoods/search","method":"GET","query":{"query":"<string>","page":"<integer>","store_id":"<string>","timeout":"<number>"}}'
```

### Wikipedia Article

Get the text of a Wikipedia article in a selected language.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/wikipedia/article`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `language` | string | No | Wikipedia language code, such as en, de, or fr. |
| `title` | string | Yes | Wikipedia article title, such as Python (programming language). |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/wikipedia/article","method":"GET","query":{"language":"<string>","title":"<string>","timeout":"<number>"}}'
```

### Wikipedia Search

Search Wikipedia articles in a selected language.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/wikipedia/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `language` | string | No | Wikipedia language code, such as en, de, or fr. |
| `q` | string | Yes | Wikipedia search terms. |
| `page` | integer | No | One-based results page. |
| `limit` | integer | No | Maximum articles per page, from 1 to 50. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/wikipedia/search","method":"GET","query":{"language":"<string>","q":"<string>","page":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### Workday Jobs

Search an employer's Workday career board with result totals and pagination.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/workday/jobs`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `host` | string | Yes | Employer's Workday hostname, such as nvidia.wd5.myworkdayjobs.com. |
| `tenant` | string | Yes | Workday employer tenant, such as nvidia. |
| `board` | string | Yes | Career board name, such as NVIDIAExternalCareerSite. |
| `query` | string | No | Job title or keywords; leave empty to list all jobs. |
| `offset` | integer | No | Number of matching jobs to skip. |
| `limit` | integer | No | Maximum jobs per page, up to 20. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/workday/jobs","method":"GET","query":{"host":"<string>","tenant":"<string>","board":"<string>","query":"<string>","offset":"<integer>","limit":"<integer>","timeout":"<number>"}}'
```

### X Community

Get X community details, including its creator, member count and rules.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/x/community`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `community_id` | string | Yes | Numeric X community ID as a string. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/x/community","method":"GET","query":{"community_id":"<string>","timeout":"<number>"}}'
```

### X Community Posts

Get posts from an X community, including authors, engagement and media.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/x/community-posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `community_id` | string | Yes | Numeric X community ID as a string, from its /i/communities/ URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/x/community-posts","method":"GET","query":{"community_id":"<string>","timeout":"<number>"}}'
```

### X Post

Get an X post with its text, author, engagement counts and media.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/x/post`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `post_id` | string | Yes | Numeric X post ID as a string, taken from its /status/ URL. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/x/post","method":"GET","query":{"post_id":"<string>","timeout":"<number>"}}'
```

### X Profile

Get a public X profile, including its bio, follower counts and profile images.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/x/profile`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | X username, with or without a leading @. Profile URLs are not accepted. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/x/profile","method":"GET","query":{"username":"<string>","timeout":"<number>"}}'
```

### X User Posts

Get posts from an X user.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/x/user-posts`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | X username, with or without a leading @. Profile URLs are not accepted. |
| `cursor` | string | No | Continuation cursor returned for the same username. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/x/user-posts","method":"GET","query":{"username":"<string>","cursor":"<string>","timeout":"<number>"}}'
```

### Yahoo Finance History

Read daily, weekly, or monthly prices and volume for a market symbol.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yahoo/finance-history`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `symbol` | string | Yes | Yahoo Finance ticker, such as AAPL, ^GSPC, or BTC-USD. |
| `interval` | string | No | Price interval: daily, weekly, or monthly. |
| `range` | string | No | History period to return. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yahoo/finance-history","method":"GET","query":{"symbol":"<string>","interval":"<string>","range":"<string>","timeout":"<number>"}}'
```

### Yahoo Images

Search Yahoo Images.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yahoo/images`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `p` | string | Yes | Text or search operators to send to Yahoo. |
| `yahoo_domain` | string | No | Yahoo regional search host, for example fr.search.yahoo.com. A regional prefix such as fr is also accepted. |
| `b` | integer | No | One-based starting result. Web pages usually advance by 10; image pages usually advance by 60. |
| `device` | string | No | Device profile used for the Yahoo result page. |
| `imgsz` | string | No | Image size category; wallpaper selects extra-large images. |
| `imgc` | string | No | Select color images, monochrome images (bw), or a dominant color. |
| `imgty` | string | No | Image style or format to include. |
| `imga` | string | No | Image shape: square, landscape (wide), or portrait (tall). |
| `imgf` | string | No | People filter: faces, head-and-shoulders portraits, or images without people. |
| `imgt` | string | No | Limit images to a recent day, week, month, or year. |
| `imgl` | string | No | Usage-rights category: Creative Commons (cc), public domain (pd), sharing (fsu), commercial sharing (fsuc), modification (fmsu), or commercial modification (fmsuc). |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yahoo/images","method":"GET","query":{"p":"<string>","yahoo_domain":"<string>","b":"<integer>","device":"<string>","imgsz":"<string>","imgc":"<string>","imgty":"<string>","imga":"<string>","imgf":"<string>","imgt":"<string>","imgl":"<string>","timeout":"<number>"}}'
```

### Yahoo Search

Get Yahoo web search results.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yahoo/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `p` | string | Yes | Text or search operators to send to Yahoo. |
| `yahoo_domain` | string | No | Yahoo regional search host, for example fr.search.yahoo.com. A regional prefix such as fr is also accepted. |
| `b` | integer | No | One-based starting result. Web pages usually advance by 10; image pages usually advance by 60. |
| `device` | string | No | Device profile used for the Yahoo result page. |
| `vc` | string | No | Country code for regional results, such as us or uk. |
| `vl` | string | No | Restrict matches to a language, such as lang_fr, lang_zh_chs, or lang_zh_cht. Enables Yahoo's language filter. |
| `vm` | string | No | Adult-content filtering: r for strict, i for moderate, p for unfiltered. |
| `vs` | string | No | Comma-separated domain suffixes to search, such as .com,.org. |
| `vf` | string | No | Document format to match, such as pdf, txt, or all formats. |
| `fr2` | string | No | Yahoo display token controlling result module placement and expansion. |
| `d` | string | No | Yahoo related-topic destination token, passed through as a string. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yahoo/search","method":"GET","query":{"p":"<string>","yahoo_domain":"<string>","b":"<integer>","device":"<string>","vc":"<string>","vl":"<string>","vm":"<string>","vs":"<string>","vf":"<string>","fr2":"<string>","d":"<string>","timeout":"<number>"}}'
```

### Yandex Images

Search Yandex Images, including reverse image search.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yandex/images`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `yandex_domain` | string | No | Yandex domain to search. |
| `family_mode` | integer | No | Safe search: 0 off, 1 moderate, 2 strict. |
| `p` | integer | No | Page number, starting at zero. |
| `text` | string | No | Image search query; optional when url is provided. |
| `width` | integer | No | Exact image width; requires height. |
| `height` | integer | No | Exact image height; requires width. |
| `file_type` | string | No | Image file type. |
| `color` | string | No | Image color filter. |
| `orientation` | string | No | Image orientation. |
| `image_type` | string | No | Image content type. |
| `site` | string | No | Limit images to this source website. |
| `recent` | boolean | No | Only images appearing in the last seven days. |
| `url` | string | No | Image URL for reverse image search. |
| `crop` | string | No | Crop coordinates: left;top;right;bottom, each between 0 and 1. |
| `crop_id` | string | No | Yandex uploaded image section ID; cannot be combined with crop. |
| `tab` | string | No | Reverse image search tab. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yandex/images","method":"GET","query":{"yandex_domain":"<string>","family_mode":"<integer>","p":"<integer>","text":"<string>","width":"<integer>","height":"<integer>","file_type":"<string>","color":"<string>","orientation":"<string>","image_type":"<string>","site":"<string>","recent":"<boolean>","url":"<string>","crop":"<string>","crop_id":"<string>","tab":"<string>","timeout":"<number>"}}'
```

### Yandex Search

Get Yandex web search results.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yandex/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `yandex_domain` | string | No | Yandex domain to search. |
| `family_mode` | integer | No | Safe search: 0 off, 1 moderate, 2 strict. |
| `p` | integer | No | Page number, starting at zero. |
| `text` | string | Yes | Search query, including Yandex query operators. |
| `lang` | string | No | Search language code; defaults to en on yandex.com. |
| `lr` | integer | No | Country or region ID; defaults to the selected domain's region. |
| `fix_typo` | boolean | No | Automatically correct spelling. |
| `groups_on_page` | integer | No | Maximum result groups per page. |
| `sort_mode` | string | No | Sort results by relevance or date. |
| `period` | string | No | Time period for results. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yandex/search","method":"GET","query":{"yandex_domain":"<string>","family_mode":"<integer>","p":"<integer>","text":"<string>","lang":"<string>","lr":"<integer>","fix_typo":"<boolean>","groups_on_page":"<integer>","sort_mode":"<string>","period":"<string>","timeout":"<number>"}}'
```

### Yelp Place

Get a Yelp business's details and menu.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yelp/place`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `place_id` | string | Yes | Required Yelp encoded business ID or business alias. |
| `yelp_domain` | string | No | Supported localized Yelp hostname. |
| `business_alert` | boolean | No | Include business alert information when available. |
| `full_menu` | boolean | No | Fetch the full menu when available; otherwise return place details with an explanation. |
| `menu_name` | string | No | Select a named menu when more than one is available. Requires full_menu=true. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yelp/place","method":"GET","query":{"place_id":"<string>","yelp_domain":"<string>","business_alert":"<boolean>","full_menu":"<boolean>","menu_name":"<string>","timeout":"<number>"}}'
```

### Yelp Reviews

Get reviews for a Yelp business.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yelp/reviews`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `place_id` | string | Yes | Required encoded Yelp business identifier. |
| `yelp_domain` | string | No | Supported localized Yelp hostname. |
| `hl` | string | No | Review language such as en or fr-FR. |
| `q` | string | No | Search review text for these terms. |
| `sortby` | string | No | Yelp review ordering. |
| `rating` | string | No | Comma-separated ratings from 1 through 5. |
| `not_recommended` | boolean | No | Fetch reviews that Yelp does not recommend. |
| `not_recommended_start` | integer | No | Offset within not-recommended reviews. Requires not_recommended=true. |
| `start` | integer | No | Review offset from 0 through 10,000. |
| `num` | integer | No | Review count from 1 through 49. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yelp/reviews","method":"GET","query":{"place_id":"<string>","yelp_domain":"<string>","hl":"<string>","q":"<string>","sortby":"<string>","rating":"<string>","not_recommended":"<boolean>","not_recommended_start":"<integer>","start":"<integer>","num":"<integer>","timeout":"<number>"}}'
```

### Yelp Search

Search Yelp businesses by location and category.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/yelp/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `find_desc` | string | No | Business name, category, or search terms. |
| `find_loc` | string | Yes | Required Yelp search location. |
| `yelp_domain` | string | No | Supported Yelp hostname. Results use the language of the selected domain. |
| `l` | string | No | Optional Yelp-native map bounds token. |
| `cflt` | string | No | Yelp category identifier containing letters, numbers, _ or -. |
| `sortby` | string | No | Native Yelp ordering. |
| `attrs` | string | No | Yelp-native comma-separated attribute filters. |
| `start` | integer | No | Result offset from 0 through 10,000. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/yelp/search","method":"GET","query":{"find_desc":"<string>","find_loc":"<string>","yelp_domain":"<string>","l":"<string>","cflt":"<string>","sortby":"<string>","attrs":"<string>","start":"<integer>","timeout":"<number>"}}'
```

### YouTube Channel

Get a YouTube channel's profile, videos, Shorts, playlists and posts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/youtube/channel`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `channel_id` | string | No | Channel handle (with or without @) or a UC channel ID. Required on the first page; omit with next_page_token.  Required on the first page. Use a handle such as @veritasium or a UC channel ID; full URLs are not accepted. |
| `tab` | string | No | Channel content tab. Defaults to videos. Omit when using search_query or next_page_token. Not every channel offers every tab.  A channel without the requested tab returns an empty content group with search_information.tab_available set to false. |
| `sort` | string | No | videos, shorts and streams accept latest, popular or oldest; playlists accept dd (newest playlist) or lad (last video added). Omit with podcasts, posts, search_query or next_page_token.  Videos, Shorts and streams default to latest. Playlists default to dd. Sorting uses the choices offered by YouTube. |
| `search_query` | string | No | Search within this channel for matching videos and playlists. Cannot be combined with tab or sort. Omit with next_page_token.  Omit tab and sort when searching. Matching videos and playlists appear in search_results. |
| `hl` | string | No | Interface language, such as en or pt-BR. Defaults to en. Omit with next_page_token. |
| `gl` | string | No | Two-letter country code. Defaults to US. Omit with next_page_token. |
| `about` | boolean | No | Include additional public channel details, such as country, join date, total views and links. Defaults to false. Omit with next_page_token.  Channel profile data is returned on the first page. about=true includes additional public details. Continuation pages return content only. |
| `next_page_token` | string | No | Opaque pagination.next_page_token from this endpoint. Send it alone to continue the channel feed with its original settings. Tokens expire after one hour.  Send next_page_token alone. The token preserves the channel, selected tab or search, sorting and locale. Use POST for long tokens. Stop when pagination.next_page_token is absent. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/youtube/channel","method":"GET","query":{"channel_id":"<string>","tab":"<string>","sort":"<string>","search_query":"<string>","hl":"<string>","gl":"<string>","about":"<boolean>","next_page_token":"<string>","timeout":"<number>"}}'
```

### YouTube Comments

Read public YouTube video comments with pagination.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/youtube/comments`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `video_id` | string | Yes | YouTube video ID, such as jNQXAC9IVRw. |
| `hl` | string | No | Response language code. |
| `next_page_token` | string | No | Token from the previous comments response. Keep video_id and hl unchanged. Tokens expire after one hour. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/youtube/comments","method":"GET","query":{"video_id":"<string>","hl":"<string>","next_page_token":"<string>","timeout":"<number>"}}'
```

### YouTube Search

Search YouTube videos, channels, playlists and Shorts.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/youtube/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `type` | string | No | Result type. Omit for mixed results. Movies appear in video_results.  Channels and playlists cannot use upload_date, duration or features. Shorts cannot use duration. Movies cannot use live, subtitles, creative_commons or 3d features. |
| `upload_date` | string | No | Limit results by upload date. |
| `duration` | string | No | Video duration: under 3 minutes, 3–20 minutes, or over 20 minutes. |
| `features` | string | No | Comma-separated features: live, 4k, hd, subtitles, creative_commons, 360, vr180, 3d, hdr, location. Combined features must all match. |
| `sort_by` | string | No | YouTube ranking: relevance (default) or popularity. Popularity is not a strict numerical view-count sort.  Uses YouTube's current ranking choices. The removed upload-date/rating sorts and last-hour upload filter are not supported named values. |
| `q` | string | No | Search query. Required for the first page; omit with page_token.  Required on the first page. |
| `hl` | string | No | YouTube interface language, such as en or pt-BR. Defaults to en. Omit with page_token. |
| `gl` | string | No | Two-letter country code. Defaults to US. Omit with page_token. |
| `sp` | string | No | Advanced YouTube filter token from a results URL. Use either sp or named filters, never both. Omit with page_token.  Use either sp or named filters, never both. Raw or once-URL-encoded values from a YouTube results URL are accepted. |
| `page_token` | string | No | Opaque next_page_token from the preceding response. Send it alone to continue the same search; tokens expire after one hour.  Send page_token alone, without query, locale or filter parameters. It preserves all filters. Use POST for long tokens. Pagination ends when pagination.next_page_token is absent. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/youtube/search","method":"GET","query":{"type":"<string>","upload_date":"<string>","duration":"<string>","features":"<string>","sort_by":"<string>","q":"<string>","hl":"<string>","gl":"<string>","sp":"<string>","page_token":"<string>","timeout":"<number>"}}'
```

### YouTube Video

Get a public YouTube video title, description, channel, and view count.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/youtube/video`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `video_id` | string | Yes | YouTube video ID, such as jNQXAC9IVRw. |
| `hl` | string | No | Response language code. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/youtube/video","method":"GET","query":{"video_id":"<string>","hl":"<string>","timeout":"<number>"}}'
```

### Zillow Locations

Get Zillow region and address suggestions.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/zillow/locations`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | City, ZIP code, neighborhood or street address. Required on the first page; omit with page_token. |
| `type` | string | No | Find regions or addresses. Defaults to regions; omit with page_token.  Region suggestions include Zillow region IDs. Address suggestions return names; this route does not return property ZPIDs or coordinates. |
| `limit` | integer | No | Suggestions per page, from 1 to 100. Defaults to 10; omit with page_token.  Follow pagination.next or send pagination.next_page_token as page_token. Each lookup supports up to 1,000 suggestions; if pagination.possibly_truncated is true, refine q. |
| `page_token` | string | No | Opaque next_page_token from the preceding response. Send it alone to continue the same lookup.  Continue the same query, suggestion type and page size without repeating previously returned suggestions. If pagination.next is null while has_more is true, send page_token through POST JSON. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/zillow/locations","method":"GET","query":{"q":"<string>","type":"<string>","limit":"<integer>","page_token":"<string>","timeout":"<number>"}}'
```

### Zillow Search

Search Zillow homes for sale, for rent or recently sold.

Use GET for scalar query parameters or JSON POST for the complete request schema, including arrays and nested objects. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`GET /api/zillow/search`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `min_price` | integer | No | Minimum listing price in US dollars.  For rental searches, prices are monthly rent in US dollars. |
| `max_price` | integer | No | Maximum listing price in US dollars. |
| `min_beds` | integer | No | Minimum number of bedrooms. |
| `max_beds` | integer | No | Maximum number of bedrooms. |
| `min_baths` | number | No | Minimum number of bathrooms. |
| `min_sqft` | integer | No | Minimum interior area in square feet. |
| `max_sqft` | integer | No | Maximum interior area in square feet. |
| `q` | string | No | City, ZIP code, neighborhood or address. Supply q or map_bounds.  Supply exactly one of q or map_bounds. |
| `map_bounds` | string | No | Map rectangle as north,east,south,west. |
| `status` | string | No | Listing status. |
| `property_type` | string | No | Restrict results to one property type. |
| `sort` | string | No | Order of matching listings. |
| `page` | integer | No | Result page, starting at 1; Zillow caps searches at 20 pages.  Follow pagination.next for another page. A search exposes at most 20 pages. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/zillow/search","method":"GET","query":{"min_price":"<integer>","max_price":"<integer>","min_beds":"<integer>","max_beds":"<integer>","min_baths":"<number>","min_sqft":"<integer>","max_sqft":"<integer>","q":"<string>","map_bounds":"<string>","status":"<string>","property_type":"<string>","sort":"<string>","page":"<integer>","timeout":"<number>"}}'
```

### Tool finder

Find the Litescrape APIs that best fit a use case. Describe what you want to do in plain language; the response lists the most relevant tools, most relevant first, each with its HTTP method, path and JSON input schema. Pass names instead to fetch specific tools by name. Free. Searches without an API key share a daily limit per network; name lookups do not count against it.

`GET /api/tools`

**Cost:** Free

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `q` | string | No | The use case, in plain language. Required unless names is supplied. |
| `limit` | integer | No | Maximum number of tools to return. Fewer are returned when only a few are relevant. |
| `names` | string | No | Comma-separated tool names to return directly, without ranking; up to 25. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/tools","method":"GET","query":{"q":"<string>","limit":"<integer>","names":"<string>"}}'
```

### Copilot chat answer

Text completions through Microsoft Copilot.

Use JSON POST for this endpoint's request body. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`POST /api/copilot/chat/completions`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `messages` | object | Yes | Text messages ending in a user message; at most 32,000 characters in total. Roles do not grant instruction priority.  Each request starts a fresh conversation. Send prior messages again to include context. Supplied roles do not grant instruction priority. |
| `model` | string | No | Service identifier. Microsoft chooses the underlying model. |
| `stream` | boolean | No | Only a complete JSON response is supported; stream must be false.  Streaming, tools, images, sampling settings and token usage are not supported. |
| `country` | string | No | Two-letter country or territory code, normalized to uppercase. Sets Copilot's answer and search location to a representative populated place. Omit to use Copilot's default location.  Supports the 213 country and territory codes listed in the parameter schema. |
| `state` | string | No | US postal state code (50 states or DC), normalized to uppercase. Requires country=US. Sets Copilot's location to the state capital.  Requires country=US. Supports all 50 states and DC. Uses the state capital as the representative location for local answers and searches. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/copilot/chat/completions","query":{"timeout":"<number>"},"body":{"messages":"<object>","model":"<string>","stream":"<boolean>","country":"<string>","state":"<string>"}}'
```

### Google Shopping merchant links

Get direct merchant URLs for Google Shopping offers.

Use JSON POST for this endpoint's request body. See the schema for field limits and conditional rules. Failures are not billed.

Optional feedback URL when present in an HTTP 200 tool response. Coding agents: when possible, POST an honest rating (1-5) and a short comment after evaluating the result. Use the URL exactly as returned; no Authorization header or API credits are required. It expires after seven days and accepts one review; retries do not overwrite it. Feedback is voluntary and stored separately from scraper data. Do not include secrets, personal data, or the full request/response. Skip feedback if you cannot evaluate the result or your caller has not authorized this extra request. Never submit feedback about feedback.

`POST /api/google/shopping/merchant-urls`

**Estimated cost:** $0.000164

**Docs:** https://api.litescrape.com/api/openapi.json

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `products` | object | Yes | Send 1–100 headline offers. Each item requires merchant and headline_offer_docid from Shopping Search. |
| `gl` | string | No | Use the same country code as the original Shopping Search. Defaults to us. |
| `hl` | string | No | Use the same language code as the original Shopping Search. Defaults to en. |
| `timeout` | number | No | Total request execution budget in seconds, greater than 0 and at most 90. Supply in the query string for GET or POST. page_timeout cannot extend this budget. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"litescrape","path":"/api/google/shopping/merchant-urls","query":{"timeout":"<number>"},"body":{"products":"<object>","gl":"<string>","hl":"<string>"}}'
```

---

Full details and an interactive quickstart: https://www.orthogonal.com/publisher/litescrape
