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:
100Maximum number of APIs to return. Max: 500
offsetnumberdefault:
0Number 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
| Field | Description |
|---|---|
apis | Array of APIs with their endpoints |
apis[].slug | API identifier for use with /v1/run |
apis[].verified | Whether Orthogonal has verified this API |
apis[].endpoints | All available endpoints for this API |
count | Number of APIs returned |
totalEndpoints | Total number of endpoints across all APIs |
pagination.hasMore | Whether 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 Case | Endpoint |
|---|---|
| Find APIs for a specific task | POST /v1/search with natural language |
| Browse all available APIs | GET /v1/list-endpoints |
| Get details for one endpoint | POST /v1/details |