# Openmart — Orthogonal API
> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orthogonal.com/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)
Local business search, enrichment, and lead intelligence. Search 30M+ US/CA/AU businesses by query, tags, location, reviews, ownership type, price tier, revenue. Enrich companies, find decision makers with verified emails and phones, detect tech stacks.
**Verified:** yes
## Access
**Run API:** `POST https://api.orthogonal.com/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys
Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.
## Endpoints
### Search Business IDs Only
Lightweight search returning only business IDs.
`POST /api/v1/search/only_ids`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | |
| `geo` | object | No | |
| `tags` | array | No | |
| `page_size` | integer | No | |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"openmart","path":"/api/v1/search/only_ids","body":{"query":"<string>","geo":"<object>","tags":"<array>","page_size":"<integer>"}}'
```
### Enrich Company
Enrich a company by website URL or social media link.
`POST /api/v1/enrich_company`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `company_website` | string | No | |
| `social_media_link` | string | No | |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"openmart","path":"/api/v1/enrich_company","body":{"company_website":"<string>","social_media_link":"<string>"}}'
```
### Search Businesses
Search local businesses by natural language query with 22+ filter categories.
`POST /api/v1/search`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | |
| `geo` | object | No | |
| `tags` | array | No | |
| `page_size` | integer | No | |
| `min_rating` | number | No | |
| `min_reviews` | integer | No | |
| `ownership_type` | string | No | |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"openmart","path":"/api/v1/search","body":{"query":"<string>","geo":"<object>","tags":"<array>","page_size":"<integer>","min_rating":"<number>","min_reviews":"<integer>","ownership_type":"<string>"}}'
```
### Get Business Records
Fetch full business records by openmart_id or google_place_id. Up to 100 IDs.
`GET /api/v1/business_records/list/{id_type}`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id_type` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `ids` | string | Yes | |
```bash
# Replace {id_type} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"openmart","path":"/api/v1/business_records/list/{id_type}","method":"GET","query":{"ids":"<string>"}}'
```
---
Full details and an interactive quickstart: https://orthogonal.com/discover/openmart