---
title: "Register a new XP transfer offer"
method: POST
path: "/xp/offer"
tags: ["XPTransfers"]
---

# Register a new XP transfer offer

`POST /xp/offer`

Register a new XP transfer offer for selling XP at a specified price.
The offer will be available for other users to claim by providing a
valid USDC transfer transaction.

## Request body

- RequestsRegisterOfferRequest
  - `expiry_duration` integer — Duration in seconds until offer expires (minimum 3600 = 1 hour, maximum 86400 = 24 hours)
  - `price` string — Price in USDC (as string to handle precision)
  - `taker` string — Address of the taker (buyer)
  - `xp_amount` integer — Amount of XP to transfer

## Response `200`

Offer registered successfully

- ResponsesRegisterOfferResponse
  - `offer` ResponsesXPTransferOffer
    - `claimed_at` integer — Claim timestamp (nanoseconds since epoch, 0 if not claimed)
    - `created_at` integer — Creation timestamp (nanoseconds since epoch)
    - `expires_at` integer — Expiration timestamp (nanoseconds since epoch)
    - `id` string — Unique offer identifier
    - `maker` string — Address of the maker (seller)
    - `price` string — Price in USDC (as string to handle precision)
    - `sequence` integer — Sequence number for this maker
    - `settled_at` integer — Settlement timestamp (nanoseconds since epoch, 0 if not settled)
    - `taker` string — Address of the taker (buyer)
    - `tx_hash` string — Transaction hash (empty if not claimed)
    - `xp_amount` integer — Amount of XP to transfer

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

## Changes

- **2025-08-29** `6607d97fbf07` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/tradeparadex/apis/paradex-rest-api/changes/xp/offer/post.md)

---

[API](https://skmtc.dev/tradeparadex/apis/paradex-rest-api.md) · [All operations](https://skmtc.dev/tradeparadex/apis/paradex-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tradeparadex/apis/paradex-rest-api/revisions/0d2666ba84b9?raw)
