# Happenstance — 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)

Person research API. Submit a description of someone and get back a detailed profile including employment history, education, projects, writings, hobbies, and a summary.

**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

### Create Research

Start a new person research request. Include as many details as possible about the person in the description field (name, company, role, etc.).

`POST /v1/research`

**Estimated cost:** $0.3

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `description` | string | Yes | Description of the person to research. Include name, company, role, or any identifying details. |

```bash
curl -X POST 'https://api.orth.sh/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"happenstance","path":"/v1/research","body":{"description":"<string>"}}'
```

### Get Research

Get the status and results of a research request. Returns status (RUNNING, COMPLETED, FAILED, FAILED_AMBIGUOUS) and a detailed profile when completed.

`GET /v1/research/{research_id}`

**Cost:** Free

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `research_id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `research_id` | string | Yes | The ID of the research job returned by Create Research. |

```bash
# Replace {research_id} 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":"happenstance","path":"/v1/research/{research_id}","method":"GET","query":{"research_id":"<string>"}}'
```

---

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