# Orthogonal Company Search Scroll (Cursor-Paginated)

> Orthogonal Company Search Scroll (Cursor-Paginated) is a paid API for AI agents from x402.orthogonal.com, paid per call via x402, $0.01225/call, status unknown (last checked 2026-10-20).

Search companies with cursor-based pagination, bypassing the 10,000-result limit of the standard search endpoint, with cost-efficient pagination billing.

## Facts

- Endpoint: POST https://x402.orthogonal.com/company-enrich/companies/search/scroll?utm_source=zero.xyz
- Price: $0.01225/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/orthogonal-company-search-scroll-cursor-paginated-21839515
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_O-ysPYo4bMaRbwG83hJt8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability orthogonal-company-search-scroll-cursor-paginated-21839515 -d '<json body>'
```

Example prompt: Search Orthogonal's company database for SaaS companies in the US with 50–200 employees in the software publishing NAICS code 5112, returning 50 results per page — and scroll through all pages using cursor pagination.

## When to prefer this

Choose this endpoint over the standard /companies/search when your query is expected to return more than 10,000 companies, or when you need to paginate deeply through results. The cursor-based pagination and cost-efficient continuation billing (subsequent pages of the same search are free) make it ideal for large-scale data extraction and prospect list building.

## Known failure modes

- Invalid or expired cursor returns an error — must use the cursor from the most recent response
- Changing filter parameters mid-pagination starts a new billable request
- pageSize not provided or out of range (1-100) causes a validation error
- Invalid country codes, state IDs, or NAICS codes result in empty or error responses
- Passing parentRequestId with changed filters does not grant free continuation and starts a fresh billable call
- Price calculation error at time of call may prevent billing from completing

## How this service works

Search companies with cursor-based pagination for large result sets. Accepts the same filters as /companies/search. No 10,000 result limit unlike the standard search endpoint. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request. | ERROR: Unable to calculate price.

## Output

Returns a paginated batch of company records matching the specified filters, along with a cursor value for fetching the next page and a requestId for cost-free continuation calls on subsequent pages of the same logical search.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "type": {
   "type": "array",
   "description": "The list of company types to filter by"
  },
  "lists": {
   "type": "array",
   "description": "The list IDs to filter by"
  },
  "query": {
   "type": "string",
   "description": "The search query to apply on the company name and domain"
  },
  "cities": {
   "type": "array",
   "description": "The city IDs to filter by"
  },
  "cursor": {
   "type": "string",
   "description": "The cursor to use for pagination. This is used for cursor based pagination. If this is set, Page will be ignored. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
  },
  "states": {
   "type": "array",
   "description": "The state IDs to filter by"
  },
  "exclude": {
   "type": "object",
   "description": "Exclusion filters to apply on the companies. If a company matches any of the filters here, it will be excluded from the results."
  },
  "regions": {
   "type": "array",
   "description": "The region IDs to filter by"
  },
  "require": {
   "type": "array",
   "description": "The features that must exist for the company"
  },
  "revenue": {
   "type": "array",
   "description": "The list of revenue ranges to filter by"
  },
  "category": {
   "type": "array",
   "description": "The list of company categories to filter by"
  },
  "keywords": {
   "type": "array",
   "description": "The keywords to filter by"
  },
  "pageSize": {
   "type": "integer",
   "description": "REQUIRED. Number of results per page (1-100). Determines cost: 1 credit ($0.01225) per result returned. Total call cost = pageSize x per-result cost."
  },
  "countries": {
   "type": "array",
   "description": "The 2 letter country codes to filter by"
  },
  "employees": {
   "type": "array",
   "description": "The list of employee counts to filter by"
  },
  "naicsCode": {
   "type": "array",
   "description": "The NAICS codes to filter by. Can be 2 to 6 digit codes. In case of a 2-5 digit code, all 6 digit codes under it will be included"
  },
  "foundedYear": {
   "type": "object",
   "description": "The range of years"
  },
  "fundingYear": {
   "type": "object",
   "description": "The range of years"
  },
  "technologies": {
   "type": "array",
   "description": "The technologies to filter by"
  },
  "fundingAmount": {
   "type": "object",
   "description": "The funding amount range to filter by"
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/orthogonal-company-search-scroll-cursor-paginated-21839515/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.orthogonal.com](https://www.zero.xyz/host/x402.orthogonal.com/llms.txt)
