Discovery API
Search
Find APIs using natural language
POST
https://www.orthogonal.com/v1/search
Search for APIs by describing what you need. Uses semantic search to find the most relevant endpoints.
Request
promptstringrequired
Natural language description of what you’re looking for.
Examples:
- “enrich lead with contact info”
- “find email for a person”
- “company enrichment from domain”
limitnumberdefault:
10Maximum 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://www.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": "/v2/domain-search",
"method": "GET",
"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
| Field | Description |
|---|---|
results | Array of APIs, each containing matching endpoints |
results[].slug | API identifier to use with /v1/run |
results[].endpoints[].path | Endpoint path to use with /v1/run |
results[].endpoints[].verified | Whether the API is verified by Orthogonal |
results[].endpoints[].score | Relevance score (0-1, higher is better) |
results[].kind | integration for an OAuth app (Gmail, Slack, …), ranked among the APIs: each endpoint is one of its actions, run with /v1/run on your own connected account at no per-call cost |
count | Total 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"}
}'