Skip to content
TradeTransactionsDocsTwitterSupport

Backed by

Paradigm

Paradigm

INTEGRATE API

TradeTransactionsDocsTwitterSupport

INTEGRATE

Backed by

Paradigm

Paradigm

Create an order

Create an order with the quote_id returned by get a quote and a to_address on the destination chain. Optionally provide a refund_address; otherwise, refunds go to the original sender.

The response includes deposit_address, amount_in, and deposit_deadline. Send the specified amount to that address before the deadline to begin execution.

Repeating the request with the same quote_id and addresses returns the existing order. Changing the addresses after the quote has been used is rejected. No separate idempotency key is required.

Try it out

Production
POSThttps://api.rift.trade/order
Request body

Request example

const response = await fetch("https://api.rift.trade/order", {
  method: "POST",
  headers: {
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    quote_id: "00000000-0000-4000-8000-000000000001",
  }),
});

const data = await response.json();
console.log(data);

Parameters

Required parameters

quote_idstring

The id of a quote from POST /quote. The quote must not have expired, and a quote binds to one order.

uuid

to_addressstring

Address on the to chain that receives the output. Validated against that chain's address format.

Optional parameters

refund_addressstring | null

Address on the from chain that receives a refund if the order cannot be completed. Optional; when not set, the refund goes to the original sender.

Show child attributes
Any of: string 1

string

Any of: null 2

null

Responses

The order awaiting its deposit

application/json

Example response
{
  "id": "019a3c7e-6d2f-7b41-8c3e-2a9f4d5e6b70",
  "quote_id": "019a3c7e-5b1a-7c3e-9a51-6f3d2b8e4a10",
  "vault_id": "4f8e2c1a-93b7-4d6e-a5f0-7c2b9e8d1a34",
  "from": "bitcoin.btc",
  "to": "ethereum.usdc",
  "amount_in": "0.01",
  "amount_out": null,
  "payout_tx": null,
  "format": "formatted",
  "deposit_address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
  "to_address": "0x8ba1f109551bd432803012645ac136ddd64dba72",
  "refund_address": null,
  "venue_allowlist": [],
  "venue_blocklist": [],
  "integrator_id": null,
  "integrator_fee_bps": null,
  "integrator_fee_recipient": null,
  "integrator_fee": null,
  "integrator_fee_tx": null,
  "status": "awaiting_deposit",
  "deposit_deadline": "2026-11-07T19:00:12Z",
  "created_at": "2026-10-31T19:00:12Z"
}
formatstringrequired

The format every amount and asset name in this response is written in, inherited from the quote.

Allowed: "raw""formatted"

idstringrequired

Identifier used in GET /order/{id}.

uuid

quote_idstringrequired

The quote this order was created from.

uuid

vault_idstringrequired

Internal identifier of the vault holding the deposit address.

uuid

fromstringrequired

Asset to deposit, written per format.

tostringrequired

Asset delivered, written per format.

amount_instringrequired

Amount of from to deposit, exactly as quoted.

amount_outstring | null

What the order settled: the amount of to that reached to_address when the status is delivered, or the amount of from that reached refund_address when it is refunded. Absent until then.

payout_txstring | null

The transaction that paid amount_out, to to_address when the status is delivered and to refund_address when it is refunded: a transaction hash, or a txid on Bitcoin. Null until then.

deposit_addressstringrequired

Address on the from chain to send amount_in to.

to_addressstringrequired

Address on the to chain that receives the output.

refund_addressstring | null

Address on the from chain that receives a refund if the order cannot be completed. Null when none was given; it is then set to the deposit's sender address once a refund begins.

Show child attributes
Any of: string 1

string

Any of: null 2

null

venue_allowliststring[]required

Venues quoting was restricted to; empty when it was not.

Show child attributes

string · "aave", "across", "cctp", "chainflip", "cowswap", "euler", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "metric", "morpho", "near_intents", "nordstern", "okx", "relay", "rift_otc", "transit", "tydro", "ultrayield", "uniswap", "unit", "velora", "weth_contract", "xstocks"

venue_blockliststring[]required

Venues excluded from quoting; empty when none were.

Show child attributes

string · "aave", "across", "cctp", "chainflip", "cowswap", "euler", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "metric", "morpho", "near_intents", "nordstern", "okx", "relay", "rift_otc", "transit", "tydro", "ultrayield", "uniswap", "unit", "velora", "weth_contract", "xstocks"

integrator_idstring | null

The integrator_id of the quote this order was created from, or null.

Show child attributes
Any of: string 1

string

Any of: null 2

null

integrator_fee_bpsinteger | null

The integrator_fee_bps of the quote this order was created from, or null.

Show child attributes
Any of: integer 1

integer

Any of: null 2

null

integrator_fee_recipientstring | null

The integrator_fee_recipient of the quote this order was created from, or null.

Show child attributes
Any of: string 1

string

Any of: null 2

null

integrator_feestring | null

Amount of to paid to integrator_fee_recipient, written per format. Null until the order is delivered, and for an order without a fee; a refund pays no fee.

integrator_fee_txstring | null

The transaction that paid integrator_fee. On EVM chains and Bitcoin the fee is paid in the same transaction as amount_out, so this equals payout_tx; on HyperCore it is its own. Null when no fee was paid.

statusstringrequired

awaiting_deposit until funds arrive at deposit_address; funded once they are seen; executing while the route runs; delivered when amount_out has reached to_address; refunded when execution gave up and amount_out was sent back to refund_address instead; expired when nothing arrived by deposit_deadline; frozen when the order was halted by policy, when execution gave up with no refund destination, or when the refund itself failed, and needs an operator.

Allowed: "awaiting_deposit""funded""underfunded""expired""executing""delivered""refunded""frozen"

deposit_deadlinestringrequired

Instant after which deposits are no longer watched for and the order expires. Seven days after creation.

date-time

created_atstringrequired

When the order was created.

date-time

CHAT WITH TEAM