> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API

> API reference for Orbit: every `orbit.api.*` operation with input and output types.

Every `orbit.api.*` operation is listed below with parameter shapes and return types from the plugin Zod schemas.

> [!NOTE]
>
> **New to Corsair?** See [API access](/concepts/api), [authentication](/concepts/auth), and [error handling](/concepts/error-handling).

## Bulk

### cancel

`bulk.cancel`

Cancel undispatched bulk items

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.bulk.cancel({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | Yes | — |
| `status` | `queued \| running \| waiting_for_credits \| needs_attention \| completed \| completed_with_errors \| canceled` | Yes | — |
| `request_id` | `string` | No | — |
| `updated_at` | `string` | No | — |
| `billing` | `object` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

***

### get

`bulk.get`

Read bulk search progress

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.bulk.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | Yes | — |
| `status` | `queued \| running \| waiting_for_credits \| needs_attention \| completed \| completed_with_errors \| canceled` | Yes | — |
| `request_id` | `string` | No | — |
| `updated_at` | `string` | No | — |
| `billing` | `object` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

***

### results

`bulk.results`

Read bulk search results

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.bulk.results({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | Yes | — |
| `offset` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | No | — |
| `results` | `object[]` | No | — |

> **results full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

### submit

`bulk.submit`

Submit a bulk search

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.bulk.submit({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `request_id` | `string` | Yes | — |
| `items` | `object[]` | Yes | — |

> **items full type**
>
> ```ts theme={null}
> {
>   query?: string,
>   intent?: {
>     names?: string[],
>     experiences?: {
>     }[],
>     semanticClauses?: {
>     }[],
>     schools?: {
>     }[],
>     geo?: {
>     } | null,
>     demographics?: {
>     } | null,
>     personalization?: {
>     } | null
>   },
>   signals?: {
>     address?: string,
>     email?: string,
>     phone?: string,
>     linkedin_url?: string,
>     urls?: string[],
>     usernames?: string[],
>     face_source?: {
>       image_url: string,
>       bbox?: number[]
>     }
>   },
>   candidate_discovery?: boolean,
>   candidate_discovery_limit?: number,
>   profile_depth?: partial | full,
>   include_profile?: boolean
> }[]
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `job_id` | `string` | Yes | — |
| `status` | `queued \| running \| waiting_for_credits \| needs_attention \| completed \| completed_with_errors \| canceled` | Yes | — |
| `request_id` | `string` | No | — |
| `updated_at` | `string` | No | — |
| `billing` | `object` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

***

## Enrich

### batch

`enrich.batch`

Enrich up to 20 profiles

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.enrich.batch({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `profile_ids` | `string[]` | Yes | — |
| `operation` | `partial \| full \| regenerate` | Yes | — |
| `request_id` | `string` | No | — |
| `include_profile` | `boolean` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `request_id` | `string` | No | — |
| `status` | `string` | No | — |

***

### get

`enrich.get`

Poll an enrichment

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.enrich.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `request_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `request_id` | `string` | Yes | — |
| `profile_id` | `string` | No | — |
| `status` | `running \| completed \| failed` | Yes | — |
| `billing` | `object` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

***

### read

`enrich.read`

Read an enriched profile

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.enrich.read({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `profile_id` | `string` | Yes | — |
| `format` | `json \| markdown` | No | — |
| `idempotencyKey` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `profile_id` | `string` | No | — |
| `id` | `string` | No | — |

***

### start

`enrich.start`

Enrich one profile

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.enrich.start({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `profile_id` | `string` | Yes | — |
| `operation` | `partial \| full \| regenerate` | Yes | — |
| `request_id` | `string` | No | — |
| `include_profile` | `boolean` | No | — |
| `idempotencyKey` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `request_id` | `string` | Yes | — |
| `profile_id` | `string` | No | — |
| `status` | `running \| completed \| failed` | Yes | — |
| `billing` | `object` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

***

## Faces

### detect

`faces.detect`

Detect faces in a photo

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.faces.detect({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `imageBase64` | `string` | Yes | — |
| `contentType` | `image/jpeg \| image/png \| image/webp` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `image_url` | `string` | Yes | — |
| `faces` | `object[]` | Yes | — |

> **faces full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

### index

`faces.index`

Search the face index

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.faces.index({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `image_url` | `string` | Yes | — |
| `bbox` | `number[]` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `matches` | `object[]` | Yes | — |

> **matches full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

## Search

### get

`search.get`

Poll a people search

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.search.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `search_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `search_id` | `string` | Yes | — |
| `status` | `running \| completed \| completed_with_errors \| failed` | Yes | — |
| `request_id` | `string` | No | — |
| `updated_at` | `string` | No | — |
| `billing` | `object` | No | — |
| `results` | `object[]` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

> **results full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

### quotePopulation

`search.quotePopulation`

Price a population search

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.search.quotePopulation({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `population` | `object` | Yes | — |
| `size` | `number` | No | — |
| `profile_depth` | `partial \| full` | No | — |

> **population full type**
>
> ```ts theme={null}
> {
>   kind: company | school,
>   id: string,
>   name: string
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `credits` | `number` | No | — |

***

### start

`search.start`

Start a people search

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.search.start({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `request_id` | `string` | No | — |
| `query` | `string` | No | — |
| `intent` | `object` | No | — |
| `signals` | `object` | No | — |
| `candidate_discovery` | `boolean` | No | — |
| `candidate_discovery_limit` | `number` | No | — |
| `profile_depth` | `partial \| full` | No | — |
| `include_profile` | `boolean` | No | — |
| `limit` | `number` | No | — |
| `webhooks` | `boolean` | No | — |

> **intent full type**
>
> ```ts theme={null}
> {
>   names?: string[],
>   experiences?: {
>   }[],
>   semanticClauses?: {
>   }[],
>   schools?: {
>   }[],
>   geo?: {
>   } | null,
>   demographics?: {
>   } | null,
>   personalization?: {
>   } | null
> }
> ```

> **signals full type**
>
> ```ts theme={null}
> {
>   address?: string,
>   email?: string,
>   phone?: string,
>   linkedin_url?: string,
>   urls?: string[],
>   usernames?: string[],
>   face_source?: {
>     image_url: string,
>     bbox?: number[]
>   }
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `search_id` | `string` | Yes | — |
| `status` | `running \| completed \| completed_with_errors \| failed` | Yes | — |
| `request_id` | `string` | No | — |
| `updated_at` | `string` | No | — |
| `billing` | `object` | No | — |
| `results` | `object[]` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

> **results full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

### startPopulation

`search.startPopulation`

Search everyone at a company or school

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.search.startPopulation({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `population` | `object` | Yes | — |
| `size` | `number` | No | — |
| `profile_depth` | `partial \| full` | No | — |
| `request_id` | `string` | No | — |

> **population full type**
>
> ```ts theme={null}
> {
>   kind: company | school,
>   id: string,
>   name: string
> }
> ```

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `search_id` | `string` | Yes | — |
| `status` | `running \| completed \| completed_with_errors \| failed` | Yes | — |
| `request_id` | `string` | No | — |
| `updated_at` | `string` | No | — |
| `billing` | `object` | No | — |
| `results` | `object[]` | No | — |

> **billing full type**
>
> ```ts theme={null}
> {
> }
> ```

> **results full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

## Watchers

### create

`watchers.create`

Watch a profile

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.watchers.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `orbit_id` | `string` | Yes | — |
| `interval_seconds` | `number` | Yes | — |
| `phases` | `existing_sources \| existing_socials \| new_sources[]` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `orbit_id` | `string` | No | — |
| `enabled` | `boolean` | No | — |

***

### delete

`watchers.delete`

Delete a watcher

**Risk:** `destructive`

```ts theme={null}
await corsair.orbit.api.watchers.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `watcher_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `deleted` | `true` | Yes | — |

***

### get

`watchers.get`

Get a watcher

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.watchers.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `watcher_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `orbit_id` | `string` | No | — |
| `enabled` | `boolean` | No | — |

***

### list

`watchers.list`

List watchers

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.watchers.list({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `watchers` | `object[]` | No | — |

> **watchers full type**
>
> ```ts theme={null}
> {
>   id: string,
>   orbit_id?: string,
>   enabled?: boolean
> }[]
> ```

***

### runs

`watchers.runs`

List watcher runs

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.watchers.runs({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `watcher_id` | `string` | Yes | — |
| `limit` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `runs` | `object[]` | No | — |

> **runs full type**
>
> ```ts theme={null}
> {
> }[]
> ```

***

### update

`watchers.update`

Update a watcher

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.watchers.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `watcher_id` | `string` | Yes | — |
| `enabled` | `boolean` | No | — |
| `interval_seconds` | `number` | No | — |
| `phases` | `existing_sources \| existing_socials \| new_sources[]` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `orbit_id` | `string` | No | — |
| `enabled` | `boolean` | No | — |

***

## Webhooks

### create

`webhooks.create`

Register a webhook endpoint

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.webhooks.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `url` | `string` | Yes | — |
| `event_types` | `profile.updated \| company.thesis.changed \| company.alert \| portfolio.changed \| search.profile.updated \| search.completed[]` | No | — |
| `description` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `url` | `string` | Yes | — |
| `event_types` | `string[]` | Yes | — |
| `enabled` | `boolean` | Yes | — |
| `secret` | `string` | No | — |

***

### delete

`webhooks.delete`

Delete a webhook endpoint

**Risk:** `destructive`

```ts theme={null}
await corsair.orbit.api.webhooks.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `webhook_id` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `deleted` | `true` | Yes | — |

***

### list

`webhooks.list`

List webhook endpoints

**Risk:** `read`

```ts theme={null}
await corsair.orbit.api.webhooks.list({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `webhooks` | `object[]` | No | — |

> **webhooks full type**
>
> ```ts theme={null}
> {
>   id: string,
>   url: string,
>   event_types: string[],
>   enabled: boolean,
>   secret?: string
> }[]
> ```

***

### test

`webhooks.test`

Send a test webhook delivery

**Risk:** `write`

```ts theme={null}
await corsair.orbit.api.webhooks.test({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `webhook_id` | `string` | Yes | — |
| `event_type` | `profile.updated \| company.thesis.changed \| company.alert \| portfolio.changed \| search.profile.updated \| search.completed` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `delivered` | `boolean` | No | — |

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.