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

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

# Collections operations

Group items into collections.

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.

## `collections.create`

Create an organizing collection within a project (editor/admin required).

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

**Request** — `CollectionCreateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `name` | string | yes |  |
| `description` | string | — |  |
| `color` | string | — |  |
| `show_on_map` | boolean | — |  |
| `layer_order` | integer | — |  |
| `project_id` | string | yes |  |

**Response** — `CollectionResponse`.

## `collections.delete`

Soft-delete a collection, unlinking its items (project admin required).

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

**Request** — `CollectionDeleteInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `project_id` | string | yes |  |
| `collection_id` | string | yes |  |

**Response** — `CollectionDeleteOutput`.

## `collections.get`

Get a collection by id within a project.

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

**Request** — `CollectionsGetInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `project_id` | string | yes |  |
| `collection_id` | string | yes |  |

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

## `collections.list`

List a project's collections (with item counts).

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

**Request** — `src__operations__collections__reads__CollectionsListInput`

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

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

## `collections.update`

Update a collection's metadata (editor/admin required).

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

**Request** — `CollectionUpdateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `name` | string | — |  |
| `description` | string | — |  |
| `color` | string | — |  |
| `show_on_map` | boolean | — |  |
| `layer_order` | integer | — |  |
| `project_id` | string | yes |  |
| `collection_id` | string | yes |  |

**Response** — `CollectionResponse`.
