Skip to main content
GET
/
v1
/
list-endpoints
List Endpoints
curl --request GET \
  --url https://api.example.com/v1/list-endpoints
List all discoverable APIs and their endpoints. Useful for browsing the catalog or building custom search interfaces.

Request

limit
number
default:"100"
Maximum number of APIs to return. Max: 500
offset
number
default:"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/v2",
      "verified": true,
      "endpoints": [
        {
          "path": "/domain-search",
          "method": "POST",
          "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.orth.sh/v1/list-endpoints' \
  -H 'Authorization: Bearer YOUR_API_KEY'

# Paginate through results
curl 'https://api.orth.sh/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.orth.sh/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