---
title: "Spot Buy"
method: POST
path: "/v1/spot_hl/buy"
tags: ["spot_hl"]
---

# Spot Buy

`POST /v1/spot_hl/buy`

## Request

- Base URL: `https://api.fereai.xyz`
- URL: `https://api.fereai.xyz/v1/spot_hl/buy`
- Auth: none declared

Buy a spot asset with USDC (optionally attach a TP/SL bracket).

## Query parameters

- `wait` boolean: Block until task completes
- `timeout` integer: Seconds to block when wait=true (max 90; the ~100s edge cuts longer waits — use wait=false + poll for longer).

## Request body

- SpotBuyRequest
  - `asset` string, required: Spot base asset symbol (USDC-quoted), e.g. 'HYPE'.
  - `size` number, required: Base-token amount to buy.
  - `order_type` string: Order type: 'market' or 'limit'.
  - `limit_price` number, nullable: Limit price (required when order_type='limit').
  - `slippage_pct` number: Allowed slippage in percent points (0.5 = 0.5%).
  - `tp_price` number, nullable: Optional take-profit trigger price (sell trigger attached after the buy fills).
  - `sl_price` number, nullable: Optional stop-loss trigger price (sell trigger attached after the buy fills).
  - `tp_is_market` boolean
  - `sl_is_market` boolean

## Response `200`

Successful Response

- TaskResponse
  - `task_id` string, required: Celery task ID for tracking the async operation.
  - `status` string: Current task status: queued, pending, started.
  - `poll_url` string, nullable: Relative URL to poll for task status.
  - `notification_stream` string, nullable: SSE stream URL for real-time task updates.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/fereai/apis/fereai-gateway.md) - [All operations](https://skmtc.dev/fereai/apis/fereai-gateway/llms.txt) - [OpenAPI document](https://skmtc.dev/fereai/apis/fereai-gateway/revisions/ad211f8e2f30?raw)
