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

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

# Orders & tasking operations

Place and manage archive orders and new-acquisition (tasking) orders.

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.

## `orders.archive.estimate`

Preview the server-authoritative AOI price for a cart of archive captures.

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

**Request** — `ArchiveEstimateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `captures` | array of object | — |  |
| `splitByDate` | boolean | — |  |

**Response** — `ArchiveEstimateOutput`.

## `orders.archive.place`

Invoke Archive Place.

| | |
|---|---|
| **Scope** | `orders:write` |
| **Side-effect** | spend — accepts an `Idempotency-Key` header |
| **HTTP** | `POST /v1/op/orders.archive.place`  ·  `POST /v1/orders/archive/place` |
| **Python / TypeScript** | `client.orders.archive.place(…)` |
| **CLI** | `geopera orders archive place …` |

**Request** — a free-form JSON object.

## `orders.cancel`

Cancel an order (policy-gated), refunding/voiding its reservation.

| | |
|---|---|
| **Scope** | `orders:write` |
| **Side-effect** | spend — accepts an `Idempotency-Key` header |
| **HTTP** | `POST /v1/op/orders.cancel`  ·  `POST /v1/orders/cancel` |
| **Python / TypeScript** | `client.orders.cancel(…)` |
| **CLI** | `geopera orders cancel …` |

**Request** — `OrderCancelInput`

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

**Response** — `OrderCancelOutput`.

## `orders.coverage.get`

Covered-vs-remainder coverage for a fulfilled/fulfilling tasking order.

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

**Request** — `CoverageInput`

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

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

## `orders.coverage.groups.list`

Per-AOI delivered-vs-requested coverage for a tasking order (any status).

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

**Request** — `CoverageInput`

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

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

## `orders.estimate`

Price-preview an order without committing (provider-compatible).

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

**Request** — `EstimateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `dataProduct` | string | yes |  |
| `displayName` | string | — |  |
| `params` | object | — |  |
| `featureCollection` | object | — |  |
| `tags` | array of string | — |  |

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

## `orders.get`

Get a single order (org-scoped).

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

**Request** — `OrderGetInput`

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

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

## `orders.get_schema`

Get the dynamic order-form schema for a data product (reference).

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

**Request** — `OrderSchemaInput`

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

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

## `orders.list`

List the org's orders (filtered, paged, provider-compatible).

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

**Request** — `OrdersListInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `workspaceId` | string | — |  |
| `type` | string | — |  |
| `status` | string | — |  |
| `subStatus` | string | — |  |
| `displayName` | string | — |  |
| `dataProductIds` | string | — |  |
| `orderIds` | string | — |  |
| `tags` | string | — |  |
| `size` | integer | — |  |
| `page` | integer | — |  |
| `sort` | string | — |  |

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

## `orders.list_assets`

List the items + assets delivered for an order (STAC FeatureCollection).

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

**Request** — `OrderAssetsInput`

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

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

## `orders.place`

Place order(s) from a FeatureCollection (archive reserves; tasking queues feasibility).

| | |
|---|---|
| **Scope** | `orders:write` |
| **Side-effect** | spend — accepts an `Idempotency-Key` header |
| **HTTP** | `POST /v1/op/orders.place`  ·  `POST /v1/orders/place` |
| **Python / TypeScript** | `client.orders.place(…)` |
| **CLI** | `geopera orders place …` |

**Request** — `OrderPlaceInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `workspaceId` | string | yes |  |
| `dataProduct` | string | yes |  |
| `displayName` | string | — |  |
| `params` | object | — |  |
| `featureCollection` | object | — |  |
| `tags` | array of string | — |  |

**Response** — `OrderPlaceOutput`.

## `orders.tasking.decisions.pending`

Unified inbox of the org's pending tasking decisions (feasibility + quotation).

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

**Request** — `DecisionsPendingInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `workspaceId` | string | — |  |
| `page` | integer | — |  |
| `size` | integer | — |  |
| `kinds` | string | — |  |

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

## `orders.tasking.estimate`

Preview the server-authoritative price for an AOI-priced tasking request.

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

**Request** — `TaskingEstimateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `groups` | array of object | — |  |

**Response** — `TaskingEstimateOutput`.

## `orders.tasking.feasibility_check`

Predict whether a tasking order needs a feasibility study (per-feature).

| | |
|---|---|
| **Scope** | `orders:read` |
| **Side-effect** | read |
| **HTTP** | `POST /v1/op/orders.tasking.feasibility_check`  ·  `POST /v1/orders/tasking/feasibility_check` |
| **Python / TypeScript** | `client.orders.tasking.feasibility_check(…)` |
| **CLI** | `geopera orders tasking feasibility-check …` |

**Request** — `FeasibilityCheckInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `dataProduct` | string | yes |  |
| `displayName` | string | — |  |
| `featureCollection` | object | — |  |
| `params` | object | — |  |

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

## `orders.tasking.feasibility_decide`

Accept a feasibility-study option (one-step priced accept reserves/post-pays).

| | |
|---|---|
| **Scope** | `orders:write` |
| **Side-effect** | spend — accepts an `Idempotency-Key` header |
| **HTTP** | `POST /v1/op/orders.tasking.feasibility_decide`  ·  `POST /v1/orders/tasking/feasibility_decide` |
| **Python / TypeScript** | `client.orders.tasking.feasibility_decide(…)` |
| **CLI** | `geopera orders tasking feasibility-decide …` |

**Request** — `FeasibilityDecideInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `study_id` | string | yes |  |
| `acceptedOptionId` | string | yes |  |

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

## `orders.tasking.feasibility_studies.list`

List the org's feasibility studies (+ their options, paged).

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

**Request** — `StudiesListInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | — |  |
| `workspaceId` | string | — |  |
| `orderId` | string | — |  |
| `decision` | string | — |  |
| `page` | integer | — |  |
| `size` | integer | — |  |

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

## `orders.tasking.opportunities_list`

Predicted satellite passes for a tasking AOI (manual-feasibility: empty).

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

**Request** — `FeasibilityCheckInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `dataProduct` | string | yes |  |
| `displayName` | string | — |  |
| `featureCollection` | object | — |  |
| `params` | object | — |  |

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

## `orders.tasking.place`

Invoke Tasking Place.

| | |
|---|---|
| **Scope** | `orders:write` |
| **Side-effect** | spend — accepts an `Idempotency-Key` header |
| **HTTP** | `POST /v1/op/orders.tasking.place`  ·  `POST /v1/orders/tasking/place` |
| **Python / TypeScript** | `client.orders.tasking.place(…)` |
| **CLI** | `geopera orders tasking place …` |

**Request** — a free-form JSON object.

## `orders.tasking.quotation_decide`

Accept or reject a tasking quotation (accept reserves/post-pays).

| | |
|---|---|
| **Scope** | `orders:write` |
| **Side-effect** | spend — accepts an `Idempotency-Key` header |
| **HTTP** | `POST /v1/op/orders.tasking.quotation_decide`  ·  `POST /v1/orders/tasking/quotation_decide` |
| **Python / TypeScript** | `client.orders.tasking.quotation_decide(…)` |
| **CLI** | `geopera orders tasking quotation-decide …` |

**Request** — `QuotationDecideInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `quotation_id` | string | yes |  |
| `decision` | string | yes |  |

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

## `orders.tasking.quotations.list`

List the org's tasking quotations (paged).

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

**Request** — `StudiesListInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | — |  |
| `workspaceId` | string | — |  |
| `orderId` | string | — |  |
| `decision` | string | — |  |
| `page` | integer | — |  |
| `size` | integer | — |  |

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

## `orders.tasking.sensors`

List the tasking sensor catalog (ids, resolution, bands, pricing inputs).

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

**Request** — `TaskingSensorsInput` _(see the OpenAPI schema for fields)_.

**Response** — `TaskingSensorsOutput`.

## `orders.tasking.templates.delete`

Soft-delete a tasking template (org-scoped).

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

**Request** — `TemplateDeleteInput`

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

**Response** — `TemplateDeleteOutput`.

## `orders.tasking.templates.list`

List the caller organization's active tasking templates.

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

**Request** — `TemplateListInput` _(see the OpenAPI schema for fields)_.

**Response** — `TemplateListOutput`.

## `orders.tasking.templates.save`

Save a reusable tasking acquisition template for the caller's organization.

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

**Request** — `TemplateSaveInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `name` | string | yes |  |
| `description` | string | — |  |
| `capture_asap` | boolean | — |  |
| `resolution` | string | yes |  |
| `sensor` | string | yes |  |
| `capture_frequency` | string | yes |  |
| `datum` | string | yes |  |
| `file_format` | string | yes |  |
| `has_control` | boolean | — |  |
| `max_cloud_coverage` | integer | — |  |
| `max_nadir_angle` | integer | — |  |

**Response** — `TemplateSaveOutput`.

## `orders.update`

Patch an order's tags (metadata only; provider merge-patch).

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

**Request** — `OrderUpdateInput`

| Field | Type | Required | Description |
|---|---|---|---|
| `order_id` | string | yes |  |
| `tags` | array of string | — |  |

**Response** — `OrderUpdateOutput`.
