---
title: "Create Order Endpoint"
method: POST
path: "/v2/orders"
tags: ["orders"]
---

# Create Order Endpoint

`POST /v2/orders`

Projection of orders.place. Keeps the Stripe-style Idempotency-Key parity at the
route (a repeat with the same key replays the first response — one order set, one
credit reservation); the workspace/paywall guards + create_orders live in the op.

## Query parameters

- `workspaceId` string, required

## Headers

- `x-api-key` string, nullable

## Request body

- CreateOrderRequest
  - `dataProduct` string, required — provider UUID or our internal id/name
  - `displayName` string, required
  - `params` object
  - `featureCollection` object, required
  - `tags` string[], nullable

## Response `202`

Successful Response

- unknown

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.dev/geopera/apis/geopera-data-platform.md) · [All operations](https://skmtc.dev/geopera/apis/geopera-data-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/geopera/geopera-data-platform/revisions/cb0130b2a40a/schema)
