# Openmart — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orth.sh/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.orth.sh/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

### 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.orth.sh/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>"}}'
```

### 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.orth.sh/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>"}}'
```

### 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.orth.sh/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 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.orth.sh/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>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/openmart
