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

# Sources

> Where an org's evidence comes from: trace sources, connectors, schedules and the credentials behind them.

22 routes. Every example runs with `LITMUS_URL`, `LITMUS_TOKEN` and `LITMUS_ORG` (your org tag) set in your shell (see [Authentication](/authentication)). A `$NAME` in a path is an id you read from the listing route on this page; a `<field>` in a body is a value you supply, and every field the handler reads is shown, so send only the ones you need. Fields are what the handler's source reads and writes, listed mechanically; they are not a schema.

| Method | Path | Scope |
| - | - | - |
| GET | `/v0/orgs/{orgtag}/connectors` | `read` |
| POST | `/v0/orgs/{orgtag}/connectors` | `push` |
| PATCH | `/v0/orgs/{orgtag}/connectors/{cid}` | `push` |
| GET | `/v0/orgs/{orgtag}/connections/rotations` | `read` |
| POST | `/v0/orgs/{orgtag}/connections/rotations` | `push` |
| GET | `/v0/orgs/{orgtag}/schedules` | `read` |
| POST | `/v0/orgs/{orgtag}/schedules` | `push` |
| GET | `/v0/orgs/{orgtag}/schedules/{sid}` | `read` |
| PATCH | `/v0/orgs/{orgtag}/schedules/{sid}` | `push` |
| DELETE | `/v0/orgs/{orgtag}/schedules/{sid}` | `push` |
| GET | `/v0/orgs/{orgtag}/sources` | `read` |
| POST | `/v0/orgs/{orgtag}/sources` | `push` |
| GET | `/v0/orgs/{orgtag}/sources/datadog/oauth/start` | `admin` |
| GET | `/v0/orgs/{orgtag}/sources/datadog/oauth/callback` | `admin` |
| POST | `/v0/orgs/{orgtag}/sources/datadog/connect` | `admin` |
| GET | `/v0/orgs/{orgtag}/sources/{sid}` | `read` |
| PATCH | `/v0/orgs/{orgtag}/sources/{sid}` | `push` |
| DELETE | `/v0/orgs/{orgtag}/sources/{sid}` | `admin` |
| POST | `/v0/orgs/{orgtag}/sources/{sid}/sync` | `push` |
| POST | `/v0/orgs/{orgtag}/sources/{sid}/pulled` | `push` |
| POST | `/v0/orgs/{orgtag}/sources/{sid}/labels` | `push` |
| GET | `/v0/connections` | `read` |

## `GET /v0/orgs/{orgtag}/connectors`

`GET /v0/orgs/{org}/connectors`: the catalog, per category, with each standard connector's inherited eval set and the computed promote-to-VIP flag (`connectorcatalog`). Retired rows only with `?retired=1`.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/connectors"]["GET"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Query parameters the handler or its helper reads:** `retired`

**Response fields written in the helper the handler answers through:** `categories`, `connectors`, `counts`, `org`, `promotion_tier`, `tier`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/connectors" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `POST /v0/orgs/{orgtag}/connectors`

`POST /v0/orgs/{org}/connectors` with `{connectors: [...], by}`: an idempotent upsert of catalog rows.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/connectors"]["POST"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Body fields the handler or its helper reads:** `by`, `connectors`

**Response:** JSON: a stored record or a helper's result, answered as it is, so its keys are not written in the source and none are listed.

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/connectors" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"by": "<by>", "connectors": "<connectors>"}'
```

## `PATCH /v0/orgs/{orgtag}/connectors/{cid}`

`PATCH /v0/orgs/{org}/connectors/{cid}` with the fields to change and `by` — a tier, a new version (marks a rerun due), a regression rate.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/connectors/{cid}"]["PATCH"]` |
| CLI | — |

**Path parameters:** `orgtag`, `cid`

**Body fields the handler or its helper reads:** `by`, `retired`

**Response:** JSON: a stored record or a helper's result, answered as it is, so its keys are not written in the source and none are listed.

This call changes state in the org.

```bash theme={null}
curl -sS -X PATCH "$LITMUS_URL/v0/orgs/$LITMUS_ORG/connectors/$CID" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"by": "<by>", "retired": "<retired>"}'
```

## `GET /v0/orgs/{orgtag}/connections/rotations`

This org's rotation record: when every link was turned over, and by whom.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/connections/rotations"]["GET"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Response fields written in the handler:** `note`, `org`, `rotations`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/connections/rotations" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `POST /v0/orgs/{orgtag}/connections/rotations`

Turn over EVERY live connector URL this org holds. `{by?}`.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/connections/rotations"]["POST"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Body fields the handler or its helper reads:** `by`, `via`

**Response fields written in the handler:** `links`, `note`, `org`, `public_url`, `rotated`, `rotation`

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/connections/rotations" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"by": "<by>", "via": "<via>"}'
```

## `GET /v0/orgs/{orgtag}/schedules`

This org's schedules. `?surface=` narrows to one surface's.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/schedules"]["GET"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Query parameters the handler or its helper reads:** `surface`

**Response fields written in the handler:** `anchors`, `cadences`, `kinds`, `schedules`, `tick_seconds`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/schedules" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `POST /v0/orgs/{orgtag}/schedules`

Declare a cadence: `{kind, surface, cadence, anchor, …}`.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/schedules"]["POST"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Body fields the handler or its helper reads:** `agent`, `anchor`, `cadence`, `harness`, `kind`, `label`, `source`, `start_at`, `surface`

**Response fields written in the helper the handler answers through:** `due_in`, `fire_blocked` (added to a stored record whose own keys are not in the source)

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/schedules" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"agent": "<agent>", "anchor": "<anchor>", "cadence": "<cadence>", "harness": "<harness>", "kind": "<kind>", "label": "<label>", "source": "<source>", "start_at": "<start_at>", "surface": "<surface>"}'
```

## `GET /v0/orgs/{orgtag}/schedules/{sid}`

One schedule. Another org's id answers as one that does not exist.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/schedules/{sid}"]["GET"]` |
| CLI | — |

**Path parameters:** `orgtag`, `sid`

**Response fields written in the helper the handler answers through:** `due_in`, `fire_blocked` (added to a stored record whose own keys are not in the source)

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/schedules/$SID" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `PATCH /v0/orgs/{orgtag}/schedules/{sid}`

Change a schedule's cadence, anchor, label or pinned spec.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/schedules/{sid}"]["PATCH"]` |
| CLI | — |

**Path parameters:** `orgtag`, `sid`

**Body fields the handler or its helper reads:** `anchor`, `cadence`, `label`, `start_at`

**Response fields written in the helper the handler answers through:** `due_in`, `fire_blocked` (added to a stored record whose own keys are not in the source)

This call changes state in the org.

```bash theme={null}
curl -sS -X PATCH "$LITMUS_URL/v0/orgs/$LITMUS_ORG/schedules/$SID" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"anchor": "<anchor>", "cadence": "<cadence>", "label": "<label>", "start_at": "<start_at>"}'
```

## `DELETE /v0/orgs/{orgtag}/schedules/{sid}`

Stop a schedule. The runs it produced are evidence and are kept — what goes is the standing instruction to produce more.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/schedules/{sid}"]["DELETE"]` |
| CLI | — |

**Path parameters:** `orgtag`, `sid`

**Response fields written in the handler:** `deleted`, `runs_kept`

This call changes state in the org.

```bash theme={null}
curl -sS -X DELETE "$LITMUS_URL/v0/orgs/$LITMUS_ORG/schedules/$SID" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `GET /v0/orgs/{orgtag}/sources`

This org's sources. `?surface=` narrows to one surface's feeds.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources"]["GET"]` |
| CLI | `litmus-ai pull` |

**Path parameters:** `orgtag`

**Query parameters the handler or its helper reads:** `surface`

**Response fields written in the handler:** `cadences`, `consent_questions`, `kinds`, `pullable`, `sources`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `POST /v0/orgs/{orgtag}/sources`

Connect a source: `{kind, surface, external_id, auth?, cadence?, consent?}`.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources"]["POST"]` |
| CLI | `litmus-ai push` |

**Path parameters:** `orgtag`

**Body fields the handler or its helper reads:** `agent`, `anonymize`, `auth`, `cadence`, `consent`, `data_access`, `external_id`, `import`, `kind`, `label`, `last_sync`, `scope`, `services`, `surface`

**Response fields written in the helper the handler answers through:** `anonymize`, `anonymize_default`, `auth_mode`, `consent_question`, `data_access`, `key_location`, `next_sync`, `pullable`, `services`, `span_resume`, `stats`, `sync_blocked` (added to a stored record whose own keys are not in the source)

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"agent": "<agent>", "anonymize": "<anonymize>", "auth": "<auth>", "cadence": "<cadence>", "consent": "<consent>", "data_access": "<data_access>", "external_id": "<external_id>", "import": "<import>", "kind": "<kind>", "label": "<label>", "last_sync": "<last_sync>", "scope": "<scope>", "services": "<services>", "surface": "<surface>"}'
```

## `GET /v0/orgs/{orgtag}/sources/datadog/oauth/start`

Start Connect Datadog: `?by, site, service, surface, consent=granted, data_access, ml_app?, requests_ml_app?, requests_select?, label?, cadence?` → 302 to Datadog's consent page, the URL also in the body as `authorize_url` for the console's server-side hop.

| | |
| - | - |
| Token scope | `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/datadog/oauth/start"]["GET"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Response fields written in the handler:** `authorize_url`, `scopes`, `state`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/datadog/oauth/start" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `GET /v0/orgs/{orgtag}/sources/datadog/oauth/callback`

Finish Connect Datadog: `?code, state, domain?, by` (or `?error, state`).

| | |
| - | - |
| Token scope | `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/datadog/oauth/callback"]["GET"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Query parameters the handler or its helper reads:** `by`, `code`, `domain`, `error`, `state`

**Response fields written in the handler:** `auth`, `first_sync`, `ml_app`, `reconnected`, `site`, `source`, `state`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/datadog/oauth/callback" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `POST /v0/orgs/{orgtag}/sources/datadog/connect`

Connect (or reconnect) this org's Datadog from two keys and a site.

| | |
| - | - |
| Token scope | `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/datadog/connect"]["POST"]` |
| CLI | — |

**Path parameters:** `orgtag`

**Body fields the handler or its helper reads:** `anon_key`, `api_key`, `app_key`, `by`, `cadence`, `consent`, `data_access`, `label`, `list`, `ml_app`, `requests_ml_app`, `requests_select`, `service`, `site`, `surface`

**Response fields written in the handler:** `first_sync`, `message`, `ml_app`, `reconnected`, `services`, `site`, `source`, `state`

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/datadog/connect" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"anon_key": "<anon_key>", "api_key": "<api_key>", "app_key": "<app_key>", "by": "<by>", "cadence": "<cadence>", "consent": "<consent>", "data_access": "<data_access>", "label": "<label>", "list": "<list>", "ml_app": "<ml_app>", "requests_ml_app": "<requests_ml_app>", "requests_select": "<requests_select>", "service": "<service>", "site": "<site>", "surface": "<surface>"}'
```

## `GET /v0/orgs/{orgtag}/sources/{sid}`

One source. Another org's id answers as one that does not exist.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/{sid}"]["GET"]` |
| CLI | `litmus-ai pull` |

**Path parameters:** `orgtag`, `sid`

**Response fields written in the helper the handler answers through:** `anonymize`, `anonymize_default`, `auth_mode`, `consent_question`, `data_access`, `key_location`, `next_sync`, `pullable`, `services`, `span_resume`, `stats`, `sync_blocked` (added to a stored record whose own keys are not in the source)

```bash theme={null}
curl -sS "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/$SID" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `PATCH /v0/orgs/{orgtag}/sources/{sid}`

Change a source's cadence, consent, credential names, label, evidence, or the record of its last sync.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/{sid}"]["PATCH"]` |
| CLI | `litmus-ai push`, `litmus-ai pull`, `litmus-ai sources` |

**Path parameters:** `orgtag`, `sid`

**Body fields the handler or its helper reads:** `agent`, `anon_key`, `anonymize`, `auth`, `by`, `cadence`, `consent`, `data_access`, `evidence`, `forget_anon_key`, `import`, `label`, `last_sync`, `pull_pending`, `scope`, `services`

**Response fields written in the helper the handler answers through:** `anonymize`, `anonymize_default`, `auth_mode`, `changes`, `consent_question`, `data_access`, `forgotten`, `key_location`, `next_sync`, `pullable`, `services`, `span_resume`, `stats`, `sync_blocked` (added to a stored record whose own keys are not in the source)

This call changes state in the org.

```bash theme={null}
curl -sS -X PATCH "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/$SID" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"agent": "<agent>", "anon_key": "<anon_key>", "anonymize": "<anonymize>", "auth": "<auth>", "by": "<by>", "cadence": "<cadence>", "consent": "<consent>", "data_access": "<data_access>", "evidence": "<evidence>", "forget_anon_key": "<forget_anon_key>", "import": "<import>", "label": "<label>", "last_sync": "<last_sync>", "pull_pending": "<pull_pending>", "scope": "<scope>", "services": "<services>"}'
```

## `DELETE /v0/orgs/{orgtag}/sources/{sid}`

Disconnect a source.

| | |
| - | - |
| Token scope | `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/{sid}"]["DELETE"]` |
| CLI | — |

**Path parameters:** `orgtag`, `sid`

**Query parameters the handler or its helper reads:** `by`

**Response fields written in the handler:** `deleted`, `evidence_kept`

This call changes state in the org.

```bash theme={null}
curl -sS -X DELETE "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/$SID" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```

## `POST /v0/orgs/{orgtag}/sources/{sid}/sync`

Pull this source now: `POST /v0/orgs/{org}/sources/{sid}/sync`.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/{sid}/sync"]["POST"]` |
| CLI | — |

**Path parameters:** `orgtag`, `sid`

**Response fields written in the handler:** `deduplicated`, `job`, `note`, `poll`, `source`, `status`

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/$SID/sync" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## `POST /v0/orgs/{orgtag}/sources/{sid}/pulled`

Record a finished LLM Observability pull: `POST …/sources/{sid}/pulled`.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/{sid}/pulled"]["POST"]` |
| CLI | `litmus-ai pull` |

**Path parameters:** `orgtag`, `sid`

**Response fields written in the helper the handler answers through:** `anonymize`, `anonymize_default`, `auth_mode`, `consent_question`, `data_access`, `key_location`, `next_sync`, `pullable`, `services`, `span_resume`, `stats`, `sync_blocked` (added to a stored record whose own keys are not in the source)

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/$SID/pulled" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## `POST /v0/orgs/{orgtag}/sources/{sid}/labels`

A label stream's batch, from an operator's pull: `POST …/sources/{sid}/labels` with `{format?, name?, items}`.

| | |
| - | - |
| Token scope | `push` or `admin` |
| Org comes from | the `{orgtag}` path segment; a token for another org is refused with 403 |
| Policy row | `apitokens.POLICY["/v0/orgs/{orgtag}/sources/{sid}/labels"]["POST"]` |
| CLI | `litmus-ai labels` |

**Path parameters:** `orgtag`, `sid`

**Body fields the handler or its helper reads:** `as_failure_modes`, `format`, `items`, `name`

**Response:** JSON: a stored record or a helper's result, answered as it is, so its keys are not written in the source and none are listed.

This call changes state in the org.

```bash theme={null}
curl -sS -X POST "$LITMUS_URL/v0/orgs/$LITMUS_ORG/sources/$SID/labels" \
  -H "Authorization: Bearer $LITMUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"as_failure_modes": "<as_failure_modes>", "format": "<format>", "items": "<items>", "name": "<name>"}'
```

## `GET /v0/connections`

One org's minted connections: world, urls, and whether each is live.

| | |
| - | - |
| Token scope | `read` (any org token) |
| Org comes from | your token: the handler answers your org's rows only |
| Policy row | `apitokens.POLICY["/v0/connections"]["GET"]` |
| CLI | — |

**Query parameters the handler or its helper reads:** `org`

**Response fields written in the handler:** `connections`

```bash theme={null}
curl -sS "$LITMUS_URL/v0/connections" \
  -H "Authorization: Bearer $LITMUS_TOKEN"
```


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