Browse documentation

Discovery API

List Endpoints

Get all available APIs and endpoints

GET
https://www.orthogonal.com/v1/list-endpoints

List all discoverable APIs and their endpoints. Useful for browsing the catalog or building custom search interfaces.

Request

limitnumberdefault: 100
Maximum number of APIs to return. Max: 500
offsetnumberdefault: 0
Number of APIs to skip (for pagination)

Response

{
"success": true,
"apis": [
{
"name": "Olostep",
"slug": "olostep",
"description": "Web scraping and content extraction API",
"baseUrl": "https://api.olostep.com",
"verified": true,
"endpoints": [
{
"path": "/v1/scrapes",
"method": "POST",
"description": "Scrape any webpage and get clean markdown",
"price": "$0.005",
"isPayable": true,
"docsUrl": "https://docs.olostep.com/api/scrape",
"queryParams": [],
"bodyParams": [
{
"name": "url",
"type": "string",
"required": true,
"description": "URL to scrape"
}
]
}
]
},
{
"name": "Hunter.io",
"slug": "hunter",
"description": "Email finder and verification",
"baseUrl": "https://api.hunter.io",
"verified": true,
"endpoints": [
{
"path": "/v2/domain-search",
"method": "GET",
"description": "Find email addresses for a domain",
"price": "$0.01",
"isPayable": true
}
]
}
],
"count": 2,
"totalEndpoints": 2,
"pagination": {
"limit": 100,
"offset": 0,
"hasMore": false
}
}

Response Fields

FieldDescription
apisArray of APIs with their endpoints
apis[].slugAPI identifier for use with /v1/run
apis[].verifiedWhether Orthogonal has verified this API
apis[].endpointsAll available endpoints for this API
countNumber of APIs returned
totalEndpointsTotal number of endpoints across all APIs
pagination.hasMoreWhether more results are available

Example

# List all APIs
curl 'https://api.orthogonal.com/v1/list-endpoints' \
-H 'Authorization: Bearer YOUR_API_KEY'
# Paginate through results
curl 'https://api.orthogonal.com/v1/list-endpoints?limit=50&offset=50' \
-H 'Authorization: Bearer YOUR_API_KEY'

Pagination

For large result sets, use limit and offset to paginate:

async function getAllApis() {
const allApis = [];
let offset = 0;
const limit = 100;
while (true) {
const response = await fetch(
`https://api.orthogonal.com/v1/list-endpoints?limit=${limit}&offset=${offset}`,
{ headers: { 'Authorization': `Bearer ${apiKey}` } }
);
const { apis, pagination } = await response.json();
allApis.push(...apis);
if (!pagination.hasMore) break;
offset += limit;
}
return allApis;
}

Search vs List

Use CaseEndpoint
Find APIs for a specific taskPOST /v1/search with natural language
Browse all available APIsGET /v1/list-endpoints
Get details for one endpointPOST /v1/details