<!-- Source: https://docs.geopera.com/api-reference/operations/band-formulas · Markdown for LLMs -->

<!-- AUTO-GENERATED by scripts/generate-api-reference.cjs from the committed OpenAPI spec. Do not edit by hand. -->

# Band formulas operations

Spectral index and band-math formulas.

Each operation below is reachable at `POST /v1/op/{operation_id}` or the resource path `POST /v1/{resource}/{action}`, with a Bearer token (a `gpra_` API key or a session token). Back to the [Operations Reference](/api-reference/operations) index.

## `band_formulas.create`

Create a custom band-math formula for the caller's organization (write scope).

| | |
|---|---|
| **Scope** | `band_formulas:write` |
| **Side-effect** | compute |
| **HTTP** | `POST /v1/op/band_formulas.create`  ·  `POST /v1/band_formulas/create` |
| **Python / TypeScript** | `client.band_formulas.create(…)` |
| **CLI** | `geopera band-formulas create …` |

**Request** — `BandFormulaCreateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `name` | string | yes |  |
| `formula` | string | yes |  |
| `display_name` | string | — |  |
| `description` | string | — |  |
| `colormap` | string | — |  |
| `value_range` | array of number | — |  |
| `category` | string | — |  |

**Response** — `BandFormulaOutput`.

## `band_formulas.delete`

Delete a custom band-math formula (write scope; templates are protected).

| | |
|---|---|
| **Scope** | `band_formulas:write` |
| **Side-effect** | destructive |
| **HTTP** | `POST /v1/op/band_formulas.delete`  ·  `POST /v1/band_formulas/delete` |
| **Python / TypeScript** | `client.band_formulas.delete(…)` |
| **CLI** | `geopera band-formulas delete …` |

**Request** — `BandFormulaDeleteInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `formula_id` | string | yes |  |

**Response** — `BandFormulaDeleteOutput`.

## `band_formulas.get`

Get a single custom band-math formula by id (org-scoped; cross-org → 404).

| | |
|---|---|
| **Scope** | `band_formulas:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/band_formulas.get`  ·  `POST /v1/band_formulas/get` |
| **Python / TypeScript** | `client.band_formulas.get(…)` |
| **CLI** | `geopera band-formulas get …` |

**Request** — `BandFormulaGetInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `formula_id` | string | yes |  |

**Response** — a streaming or binary payload (NDJSON / file / tile). Call the HTTP endpoint directly; the JSON SDK return does not apply.

## `band_formulas.list`

List the caller-org's custom band-math formulas (optional category/template filters).

| | |
|---|---|
| **Scope** | `band_formulas:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/band_formulas.list`  ·  `POST /v1/band_formulas/list` |
| **Python / TypeScript** | `client.band_formulas.list(…)` |
| **CLI** | `geopera band-formulas list …` |

**Request** — `BandFormulasListInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `category` | string | — |  |
| `include_templates` | boolean | — |  |

**Response** — a streaming or binary payload (NDJSON / file / tile). Call the HTTP endpoint directly; the JSON SDK return does not apply.

## `band_formulas.update`

Update a custom band-math formula (write scope; org-scoped).

| | |
|---|---|
| **Scope** | `band_formulas:write` |
| **Side-effect** | compute |
| **HTTP** | `POST /v1/op/band_formulas.update`  ·  `POST /v1/band_formulas/update` |
| **Python / TypeScript** | `client.band_formulas.update(…)` |
| **CLI** | `geopera band-formulas update …` |

**Request** — `BandFormulaUpdateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `formula_id` | string | yes |  |
| `name` | string | — |  |
| `formula` | string | — |  |
| `display_name` | string | — |  |
| `description` | string | — |  |
| `colormap` | string | — |  |
| `value_range` | array of number | — |  |
| `category` | string | — |  |

**Response** — `BandFormulaOutput`.
