---
title: "Create Custom Order"
method: POST
path: "/v1/kraken_embed/custom_orders"
tags: ["Kraken Embed"]
---

# Create Custom Order

`POST /v1/kraken_embed/custom_orders`

Submit a custom order with a specified trigger condition. The order will execute automatically when the trigger condition is met.

## Headers

- `privy-app-id` string, required — ID of your Privy app.

## Request body

- KrakenEmbedCreateCustomOrderInput — Request body for creating a custom order.
  - `action` KrakenEmbedCustomOrderAction, required — Trade action for a custom order.
    - `amount` KrakenEmbedCustomOrderAmount, required — Asset amount for custom order actions.
      - `amount` string, required
      - `asset` string, required
      - `asset_class` 'currency'
    - `fee_bps` string, required
    - `quote` KrakenEmbedCustomOrderQuoteAsset, required — Target asset for the other side of the custom order trade.
      - `asset` string, required
    - `spread_bps` string, required
    - `type` 'receive' | 'spend', required — Whether the quote amount refers to the asset being received or spent.
  - `name` string, required
  - `trigger` KrakenEmbedCustomOrderTrigger, required — Price trigger for a custom order. The order executes when base_asset/quote_asset rate meets the condition against target_price.
    - `base_asset` string, required
    - `condition` 'gte' | 'lte', required — Comparison operator for a custom order price trigger.
    - `quote_asset` string, required
    - `target_price` string, required
    - `type` 'price', required
  - `user_id` string, required

## Response `200`

Custom order created successfully.

- object
  - `data` KrakenEmbedCreateCustomOrderResponse, required — Response body for creating a custom order.
    - `error` unknown[]
      - unknown
    - `errors` unknown[]
      - unknown
    - `result` KrakenEmbedCreateCustomOrderResult, required — Result payload for create custom order response.
      - `order` KrakenEmbedCustomOrder, required — Full custom order object.
        - `action` KrakenEmbedCustomOrderAction, required — Trade action for a custom order.
          - `amount` KrakenEmbedCustomOrderAmount, required — Asset amount for custom order actions.
            - `amount` string, required
            - `asset` string, required
            - `asset_class` 'currency'
          - `fee_bps` string, required
          - `quote` KrakenEmbedCustomOrderQuoteAsset, required — Target asset for the other side of the custom order trade.
            - `asset` string, required
          - `spread_bps` string, required
          - `type` 'receive' | 'spend', required — Whether the quote amount refers to the asset being received or spent.
        - `created_at` string, date-time, required
        - `id` string, required
        - `name` string, required
        - `status` KrakenEmbedCustomOrderStatus, required — Custom order status with optional reason for cancelled or paused states.
          - `reason` unknown
          - `status` 'active' | 'completed' | 'cancelled' | 'paused', required — The lifecycle state of a custom order.
        - `trigger` KrakenEmbedCustomOrderTrigger, required — Price trigger for a custom order. The order executes when base_asset/quote_asset rate meets the condition against target_price.
          - `base_asset` string, required
          - `condition` 'gte' | 'lte', required — Comparison operator for a custom order price trigger.
          - `quote_asset` string, required
          - `target_price` string, required
          - `type` 'price', required
        - `updated_at` string, date-time, required

---

[API](https://skmtc.net/privy-io/apis/privy-api.md) · [All operations](https://skmtc.net/privy-io/apis/privy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/privy-io/privy-api/revisions/bb2eb34156cc/schema)
