Skip to main content
POST
/
v1
/
search
Search
curl --request POST \
  --url https://api.example.com/v1/search \
  --header 'Content-Type: application/json' \
  --data '
{
  "prompt": "<string>",
  "limit": 123
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.orthogonal.com/llms.txt

Use this file to discover all available pages before exploring further.

Search for APIs by describing what you need. Uses semantic search to find the most relevant endpoints.

Request

prompt
string
required
Natural language description of what you’re looking for.Examples:
  • “enrich lead with contact info”
  • “find email for a person”
  • “company enrichment from domain”
limit
number
default:"10"
Maximum number of results to return. Max: 50

Response

Results are grouped by API, with each API containing its matching endpoints:
{
  "success": true,
  "results": [
    {
      "id": "api-uuid",
      "name": "Apollo.io",
      "slug": "apollo",
      "baseUrl": "https://api.apollo.io",
      "payableBaseUrl": "https://api.orthogonal.com/pay/apollo",
      "endpoints": [
        {
          "id": "endpoint-uuid",
          "path": "/v1/people/match",
          "method": "POST",
          "description": "Enrich a person by email, name, or LinkedIn URL",
          "price": "0.03",
          "isPayable": true,
          "verified": true,
          "score": 0.95
        },
        {
          "path": "/v1/organizations/enrich",
          "method": "POST",
          "description": "Enrich a company by domain",
          "price": "0.03",
          "verified": true,
          "score": 0.90
        }
      ]
    },
    {
      "id": "api-uuid-2",
      "name": "Hunter.io",
      "slug": "hunter",
      "endpoints": [
        {
          "path": "/domain-search",
          "method": "POST",
          "description": "Find email addresses for a company domain",
          "price": "0.01",
          "verified": true,
          "score": 0.85
        }
      ]
    }
  ],
  "count": 3,
  "apisCount": 2,
  "prompt": "enrich lead with contact info",
  "searchType": "semantic",
  "responseTime": 145
}

Response Fields

FieldDescription
resultsArray of APIs, each containing matching endpoints
results[].slugAPI identifier to use with /v1/run
results[].endpoints[].pathEndpoint path to use with /v1/run
results[].endpoints[].verifiedWhether the API is verified by Orthogonal
results[].endpoints[].scoreRelevance score (0-1, higher is better)
countTotal number of endpoints returned

Example

curl -X POST 'https://api.orthogonal.com/v1/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "enrich lead find email",
    "limit": 5
  }'

Using Search Results

The slug and path from search results can be used directly with the Run API:
# From search: slug="apollo", path="/v1/people/match"
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "api": "apollo",
    "path": "/v1/people/match",
    "body": {"email": "ceo@stripe.com"}
  }'