---
title: "YouPin Float Buyorder"
method: GET
path: "/v1/prices/youpin/float-buyorder"
tags: ["Buyorder Prices"]
---

# YouPin Float Buyorder

`GET /v1/prices/youpin/float-buyorder`

## Request

- Base URL: `https://api.cspriceapi.com`
- URL: `https://api.cspriceapi.com/v1/prices/youpin/float-buyorder`
- Auth: API key in header `x-api-key`

**Every open YouPin buy order** per skin, each with its own conditions:
a float range (or any float), a Doppler phase, a Fade % range or a
Case Hardened tier. Orders are sorted by price, highest first.

Use the filters to price a specific item:
- `float=0.153` returns only orders that accept a float of 0.153
  (range lower bound included, upper bound excluded, like YouPin's wear
  ranges). `best_price_rmb` is then the highest buy order for that float.
- `phase` (Doppler / Gamma Doppler), `fade` (Fade %) and `tier`
  (Case Hardened) work the same way. Orders without such a condition
  accept any item and are always included.

Identical orders (same price and same condition) are merged into one
entry: `quantity` is their sum and `orders` says how many buy orders it
stands for.

Without `market_hash_name` the response covers every tracked skin
(~4,000 skins, ~27,000 order entries, about 6 MB uncompressed and
~0.4 MB with `Accept-Encoding: gzip`). Each skin is re-scanned about once an hour;
`scraped_at` tells when.

Order fields depend on the condition (`kind`):
- `doppler_phase` → `phase` ("Phase 1"–"Phase 4", "Ruby", "Sapphire",
  "Black Pearl", "Emerald" or "any")
- `fade` → `fade_range`, `min_fade`, `max_fade`
- `case_hardened_tier` → `tier` ("T1"–"T4", "Full Blue" or "any")
- no `kind` → a plain float-range order

## Query parameters

- `market_hash_name` string
- `float` number
- `phase` 'Phase 1' | 'Phase 2' | 'Phase 3' | 'Phase 4' | 'Ruby' | 'Sapphire' | 'Black Pearl' | 'Emerald'
- `fade` number
- `tier` 'T1' | 'T2' | 'T3' | 'T4' | 'Full Blue'
- `limit` integer

## Response `200`

Buy orders per skin, highest price first.

- YoupinFloatBuyorderResponse: Envelope fields returned by every `GET /v1/prices/*` response.
  - `source` 'YouPin', required: Human-readable marketplace identifier.
  - `requestor` string, email: Email address associated with the API key making the call.
  - `plan` string: Plan of the API key (e.g. `free`, `pro`, `enterprise`).
  - `timestamp` string, date-time, required: ISO-8601 UTC timestamp (millisecond precision).
  - `data` YoupinFloatBuyorderItem[], required
    - `template_id` integer, required
    - `market_hash_name` string, required
    - `best_price_rmb` string, required: Fixed-point decimal value serialized as a string (preserves precision across languages). Parse with an arbitrary-precision decimal library; do **not** parse as a native float.
    - `best_quantity` integer: Items wanted at the best price.
    - `total_quantity` integer: Items wanted by all matching orders.
    - `order_count` integer, required: Matching orders (before limit).
    - `orders_on_youpin` integer, nullable: All orders for this skin at the last scan.
    - `truncated` boolean: The order list hit the scan limit and may be incomplete.
    - `scraped_at` string, date-time, nullable
    - `orders` YoupinFloatBuyorderOrder[], required
      - `price_rmb` string, required: Fixed-point decimal value serialized as a string (preserves precision across languages). Parse with an arbitrary-precision decimal library; do **not** parse as a native float.
      - `quantity` integer, required: Items still wanted (summed over merged orders).
      - `orders` integer, required: How many identical buy orders (same price and condition) this entry merges.
      - `float_range` string, required: Accepted float range, or "any".
      - `min_float` number, required
      - `max_float` number, required
      - `kind` 'doppler_phase' | 'fade' | 'case_hardened_tier': Extra condition of the order; absent for plain float-range orders.
      - `phase` string: Only for kind doppler_phase.
      - `tier` string: Only for kind case_hardened_tier.
      - `fade_range` string: Only for kind fade.
      - `min_fade` number, nullable
      - `max_fade` number, nullable
      - `auto_accept` boolean, nullable: At least one of the merged orders accepts sales automatically.
      - `first_seen` string, date-time, nullable: When we first saw this order (earliest of the merged ones).
      - `updated_at` string, date-time, nullable
  - `meta` object, required
    - `count` integer, required
    - `orders` integer, required: Order entries returned in total (after merging and limit).
    - `max_orders_per_item` integer, nullable, required: The limit applied
    - `currency` 'CNY', required
    - `filters` object
    - `updated_at` string, date-time, nullable: Most recent scan among the returned skins.

## Other responses

- `400`: Invalid filter (e.g. float outside 0–1, unknown phase, limit outside 1–500).
- `401`: Missing, invalid, disabled or expired API key.
- `403`: The API key is valid but is not allowed to call this endpoint (endpoint ACL).
- `429`: Rate limit exceeded (10 requests per second per key). Retry after 1 second.
- `500`: Internal server error – temporary upstream failure, etc.

---

[API](https://skmtc.dev/cspriceapi/apis/cs-price-api.md) · [All operations](https://skmtc.dev/cspriceapi/apis/cs-price-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cspriceapi/apis/cs-price-api/revisions/4a18a7641dad?raw)
