Variants & float

CS2 Doppler Phases: Price Differences Explained

Doppler knives come in Phase 1–4 plus the rare Ruby, Sapphire and Black Pearl; Gamma Doppler has Phase 1–4 plus Emerald. Each phase is a separate paint with its own price. In our 26 September 2026 snapshot of Karambit, Butterfly and M9 Bayonet (Factory New), Phase 2 listed at 1.2–1.5× Phase 4 and the rare phases at 2.3–7.9×.

By CSPriceAPI Team · Last updated: 2026-09-26·View as Markdown

Key numbers (Factory New, median listing ask across up to 7 marketplaces, EUR, 2026-09-26):

  • Phase 2 is the only regular phase with a consistent premium: 1.21× (M9), 1.37× (Karambit), 1.53× (Butterfly).
  • Phase 1 and Phase 3 traded at or below Phase 4 on every Doppler knife we sampled.
  • Ruby ran 3.7–7.9× Phase 4 on the three high-tier knives, but only 2.4× on the cheaper Navaja.
  • Emerald ran 4.4–4.6× Gamma Phase 4 on Butterfly and Karambit.
  • If you average all seven Karambit Doppler phases you get about €3,120. That is 2.7× what a Phase 4 lists for, and less than half the price of a Ruby.

What are Doppler phases in CS2?

A Doppler knife isn't one skin. Each phase is its own paint kit, with its own paint index (Valve's internal finish ID). The paint index fixes the phase when the item is created, and the phase never changes. A second number, the paint seed (pattern index, 0–1000), changes how the colours are laid out within a phase. That's why two Phase 2 knives can look noticeably different. Don't confuse the two: the paint index tells you the phase, and the seed tells you the variation inside it.

Doppler (knives)

PhasePaint indexWhat it looks likeRelative price (2026 sample)
Phase 1418Dark blue and light purple with pinkish shades and small black areas≈ Phase 4 or below
Phase 2419 (618 on Butterfly and Shadow Daggers)Mainly pink with small dark purple parts1.1–1.5× Phase 4
Phase 3420Deep blue base with green and black side elements≈ Phase 4 or below
Phase 4421Mainly blue with small black partsbaseline
Ruby415Solid red, dark orange at some angles2.4–7.9×
Sapphire416 (619 on Butterfly and Shadow Daggers)Blue with purplish and greenish tones1.8–4.1×
Black Pearl417 (617 on Butterfly and Shadow Daggers)Deep purple / near-black2.8–6.9×

The Talon Knife uses its own indexes for Phase 1–4 (852–855). Its Ruby, Sapphire and Black Pearl use the standard 415–417.

Gamma Doppler (knives and Glock-18)

PhasePaint indexGlock-18 indexRelative price (2026 sample)
Emerald56811194.4–4.6× Phase 4
Phase 156911201.0–1.1×
Phase 257011211.3–1.5×
Phase 35711122≈ Phase 4
Phase 45721123baseline

Identify Gamma Doppler phases by paint index rather than by colour.

Paint indexes come from the community-maintained ByMykel CSGO-API dataset, which is built from the game files. Colour descriptions for Doppler come from DMarket's Doppler guide. Both are listed under Sources.

Which knives and weapons have Doppler phases?

According to the same dataset:

  • Doppler: Bayonet, Bowie, Butterfly, Falchion, Flip, Gut, Huntsman, Karambit, M9 Bayonet, Navaja, Nomad, Paracord, Shadow Daggers, Skeleton, Stiletto, Survival, Talon, Ursus.
  • Not every knife uses the standard indexes. The Butterfly and Shadow Daggers carry Sapphire, Black Pearl and Phase 2 under separate indexes (617–619). The Talon has no Phase 1–4 on the standard 418–421 indexes.
  • Gamma Doppler: Bayonet, Bowie, Butterfly, Falchion, Flip, Gut, Huntsman, Karambit, M9 Bayonet, Shadow Daggers, plus the Glock-18, the only gun with phases.
  • Emerald exists only on Gamma Doppler, so on the 10 knives above and the Glock-18. That's why searches like "Huntsman Emerald" or "Butterfly Emerald" refer to the Gamma Doppler finish.

How do you identify a Doppler phase?

  1. Paint index (reliable). Read the item's paint index from its inspect data with a float or inspect tool, then map it with the tables above. This is the only check that doesn't depend on lighting, angle or screenshots.
  2. The marketplace's phase label (usually reliable). Most third-party marketplaces show the phase on the listing. The Steam Community Market doesn't: every phase is listed under one name, such as ★ Karambit | Doppler (Factory New). The listing title alone never tells you the phase.
  3. Colour (last resort). Ruby, Sapphire and Emerald are hard to mistake. Phase 1 vs Phase 3 and blue-heavy Phase 2 seeds vs Phase 4 are easy to misread in screenshots.

Doppler phase prices: September 2026 snapshot

Method. On 2026-09-26 between 08:29 and 08:33 UTC we read 38 per-phase item pages from the CSPriceAPI skins catalogue, all Factory New and non-StatTrak. Each page is server-rendered and shows the lowest listing ask per marketplace, converted to EUR by the site with live exchange rates from frankfurter.app (exchangerate.host as fallback). For each phase we used the median ask across the marketplaces shown by default (six or seven per page, depending on the item): YouPin898, BUFF163, C5Game, EcoSteam, Skinport, SkinBaron, CSFloat, LIS-SKINS, ShadowPay or Waxpeer. The other 6 markets sit behind "Show all" and aren't included. BUFF163 listing counts and Waxpeer Black Pearl and Emerald rows are not shown in this snapshot.

These are listing asks, not completed sales. Rows had been updated within about two hours before capture.

Doppler (Factory New): median ask in EUR

PhaseKarambitButterfly KnifeM9 BayonetNavaja Knife
Phase 11,0941,92680097
Phase 21,5773,6981,086104
Phase 31,1001,77477096
Phase 41,1482,42289997
Ruby6,4489,0007,094233
Sapphire3,9035,6683,666173
Black Pearl6,5669,8066,173273

Phase premium vs Phase 4 (Doppler, Factory New)

PhaseKarambitButterflyM9 BayonetNavaja
Phase 10.95×0.80×0.89×1.00×
Phase 21.37×1.53×1.21×1.07×
Phase 30.96×0.73×0.86×0.99×
Phase 41.00×1.00×1.00×1.00×
Ruby5.62×3.72×7.89×2.40×
Sapphire3.40×2.34×4.08×1.78×
Black Pearl5.72×4.05×6.87×2.81×
YouPin listings, P4 / Black Pearl571 / 993 / 12348 / 1725 / 2

Gamma Doppler (Factory New): median ask in EUR and premium vs Phase 4

PhaseButterfly Knifevs P4Karambitvs P4
Phase 11,5351.01×1,5361.11×
Phase 21,9451.28×2,0721.50×
Phase 31,5191.00×1,3750.99×
Phase 41,5191.00×1,3841.00×
Emerald6,6184.36×6,3384.58×

What the data shows

  • There is no fixed ladder of rare phases. Black Pearl edged out Ruby on Karambit and Butterfly, but Ruby led by 15% on the M9. Ruby vs Sapphire was more consistent: Ruby was 1.35–1.94× Sapphire on all four knives.
  • Phase 4 is not the cheapest phase. On the Butterfly, Phase 4 listed 26% above Phase 1 and 37% above Phase 3. A bot that treats Phase 4 as the floor will misprice Phase 1 and Phase 3.
  • The premium depends on the knife. Ruby is 7.9× Phase 4 on the M9 but only 2.4× on the Navaja. You can't carry a "Ruby multiplier" from one knife to another.
  • Rare phases are thin. Black Pearl had 2–17 YouPin listings, against 25–571 for Phase 4. One outlier ask moves the price. The Navaja Black Pearl's YouPin ask was €718, 2.6× the cross-market median of €273. Use medians and listing counts, not a single lowest ask.

Why you must never average Doppler phases

Many price feeds return one "Doppler (Factory New)" number. Our Karambit data shows what that does:

ApproachKarambit Doppler FN valueError for a Phase 4Error for a Ruby
Correct per-phase median1,148 (P4) / 6,448 (Ruby)——
Simple average of 7 phases≈ 3,120+172%−52%

A trading bot using the averaged number overpays for every regular phase and lists every Ruby or Black Pearl at about half its market price.

Pitfalls for bots and price trackers

  1. Joining on the base name alone. On Steam and in many exports, all phases share one base name. Join on (market_hash_name, phase), and keep Doppler and Gamma Doppler apart: "Phase 2" exists in both finishes and the prices are not interchangeable.
  2. Rows without a phase. If a data source doesn't carry the phase, its row is the price for the whole Doppler pool. Never map it to a specific phase. Sanity check: a "Black Pearl" or "Emerald" row that prices like a Phase 4 with hundreds of listings didn't carry phase data.
  3. Different labels. Some sources put the phase in the item name, some in a separate field, some in another language, and Steam doesn't show it at all. Normalise the labels to one set (Phase 1–4, Ruby, Sapphire, Black Pearl, Emerald) before comparing.
  4. Mixed currencies. YouPin898, BUFF163, C5Game and EcoSteam price in CNY; Skinport and SkinBaron in EUR; CSFloat, LIS-SKINS, DMarket, ShadowPay, Waxpeer, Market.CSGO and Steam in USD. Convert before you rank.
  5. Pattern premiums inside a phase. A phase price is a price for a typical seed. Seeds with more pink in Phase 2, or more blue, can sell well above it. Check completed sales before you price an unusual seed; CSPriceAPI's sales data with pattern fields is on the Enterprise plan.

How to get per-phase Doppler prices with an API

CSPriceAPI returns Doppler and Gamma Doppler prices per phase on all 13 live listing marketplaces, with most prices updating about every 5 minutes. For the 12 non-Steam marketplaces the endpoint is /v1/prices/latest, included from the Basic plan. Steam isn't part of that response: Steam prices, including the in-depth Steam order book, come from GET /v1/steam. See the data coverage page for the full list of markets and phases.

One GET /v1/prices/latest call returns the whole catalogue: every item with its current prices plus average, change % (24h, 7d, 30d, 90d) and liquidity values. That means one request gets every phase of every Doppler and Gamma Doppler knife. The rate limit is 10 requests per second on every plan, so polling the full catalogue every few minutes stays well within it.

According to the OpenAPI spec, the response is an items map keyed by market_hash_name. Each phase is its own entry: the phase is appended after the exterior, e.g. ★ Karambit | Doppler (Factory New) (Ruby). Each item has one object per marketplace, and each marketplace object carries a phase string (normalised to English; empty or null for non-phase items). Prices are serialised as strings, in the marketplace's native currency. YouPin uses price_rmb; most other markets use price.

Python: every Doppler phase from one call

import os, re
from collections import defaultdict
from decimal import Decimal
import requests

API = "https://api.cspriceapi.com/v1/prices/latest"
MARKETS = ["youpin", "buff163", "csfloat", "skinport"]
SUFFIX_RE = re.compile(r"\s*\((Phase [1-4]|Ruby|Sapphire|Black Pearl|Emerald)\)$")

resp = requests.get(
    API,
    params={"markets": ",".join(MARKETS)},
    headers={"x-api-key": os.environ['CSPRICEAPI_KEY'],
             "Accept-Encoding": "gzip"},   # the full catalogue is large
    timeout=60,
)
resp.raise_for_status()
items = resp.json()["items"]  # market_hash_name -> {market: row}

prices = defaultdict(dict)    # (base item, phase) -> {market: Decimal (native currency)}
for name, item in items.items():
    if "Doppler (" not in name:            # Doppler and Gamma Doppler only
        continue
    base = SUFFIX_RE.sub("", name)         # "★ Karambit | Doppler (Factory New)"
    for market in MARKETS:
        row = item.get(market)
        if not row:
            continue
        phase = row.get("phase")           # no phase -> skip, never guess
        raw = row.get("price") or row.get("price_rmb")
        if phase and raw:
            prices[(base, phase)][market] = Decimal(raw)

knife = "★ Karambit | Doppler (Factory New)"
for phase in ["Phase 1", "Phase 2", "Phase 3", "Phase 4", "Ruby", "Sapphire", "Black Pearl"]:
    print(phase, {mk: str(p) for mk, p in prices.get((knife, phase), {}).items()})

rubies_only = {k: v for k, v in prices.items() if k[1] == "Ruby"}  # every Ruby knife

Compare prices within one currency, or convert first. youpin and buff163 are CNY, skinport is EUR, csfloat is USD.

To track how a phase premium moves over time, GET /v1/prices/{market}/history returns daily prices going back 1 year+, one skin per request (Enterprise plan; see historical data).

curl + jq: YouPin phase rows for the Karambit Doppler FN

curl -s --compressed "https://api.cspriceapi.com/v1/prices/latest?markets=youpin" \
  -H "x-api-key: YOUR_API_KEY" \
| jq '.items | to_entries[]
      | select(.key | startswith("★ Karambit | Doppler (Factory New)"))
      | {name: .key, phase: .value.youpin.phase, price_cny: .value.youpin.price_rmb, listings: .value.youpin.count}'

For a smaller payload, POST /v1/prices/latest accepts up to 100 market_hash_name values in items; pass the phase-suffixed names. To get every phase of one skin from the base name, use GET /v1/prices/search?market_hash_name=…: for Doppler and Gamma Doppler names it queries all phase variants and returns an array of phase rows per marketplace (is_doppler: true).

Try it free: a free 2-day test key covers every endpoint except price history. Create it instantly in the #get-testkey channel of the CSPriceAPI Discord, and see the quickstart for your first call. Paid plans start at $50/month; see pricing.

Without code

  • Every phase has its own item page in the skins catalogue, with per-market prices.
  • The price comparison tool has a free tier that shows YouPin and BUFF163 prices in the currency of your choice.
  • The Chrome extension shows cross-market prices on marketplace listing pages.

Related: Fade and Blue Gem pricing. The same API also covers Fade percentages and Blue Gem (Case Hardened pattern) items.

FAQ

How much is an Emerald Butterfly Knife?

On 26 September 2026, a Butterfly Knife | Gamma Doppler Emerald (Factory New) had a median listing ask of about €6,618 across six marketplaces. The lowest ask was €6,506, on YouPin898, with 248 listings. That is 4.4× a Gamma Doppler Phase 4 Butterfly. Prices move daily, so check the live item page before you trade.

What is an M9 Bayonet Black Pearl worth?

The M9 Bayonet | Doppler Black Pearl (Factory New) had a median ask of about €6,173 on 26 September 2026, 6.9× a Phase 4 M9. Only 17 were listed on YouPin, so individual asks vary widely.

Ruby vs Sapphire: which is more expensive?

Ruby, on every knife we sampled: 1.65× Sapphire on the Karambit, 1.59× on the Butterfly, 1.94× on the M9 Bayonet and 1.35× on the Navaja (Factory New, September 2026).

Doppler Phase 2 vs Phase 4: which is worth more?

Phase 2. Its pink-dominant look carries a 21–53% premium over Phase 4 on high-tier knives (M9, Karambit, Butterfly) and about 7% on the Navaja. Phase 1 and Phase 3 usually list at or below Phase 4.

Is Emerald a Doppler or a Gamma Doppler phase?

Gamma Doppler. The regular Doppler finish's rare phases are Ruby, Sapphire and Black Pearl. Gamma Doppler has Phase 1–4 and Emerald.

Does the paint seed change the phase?

No. The paint index sets the phase, and it never changes. The paint seed only changes the colour layout within that phase.

Why does the Steam Market show one price for all Doppler phases?

The Steam Community Market lists every phase under the same item name, so its listings and price history mix phases together. For valuation, use a source that labels the phase on each price, such as marketplaces that show the phase on the listing or an API row with a phase field.

Sources

  • CSPriceAPI skins catalogue, 38 per-phase item pages at /apps/skins/{id}, Factory New, non-StatTrak, captured 08:29–08:33 UTC. Karambit Doppler: /apps/skins/19338, 19342, 19346, 19350, 19374, 19378, 19334. Butterfly Doppler: 19062, 19066, 19070, 19074, 19098, 19102, 19058. M9 Bayonet Doppler: 19386, 19390, 19394, 19398, 19422, 19426, 19382. Navaja Doppler: 19310, 19314, 19318, 19322, 19326, 19330, 19306. Butterfly Gamma Doppler: 19082, 19086, 19090, 19094, 19078. Karambit Gamma Doppler: 19358, 19362, 19366, 19370, 19354: https://cspriceapi.com/skins (accessed 2026-09-26)
  • CSPriceAPI, Data coverage: https://cspriceapi.com/docs/data-coverage.md (accessed 2026-09-26)
  • CSPriceAPI, OpenAPI specification (items map, phase-suffixed names, phase field, search expansion): https://cspriceapi.com/openapi.yaml (accessed 2026-09-26)
  • CSPriceAPI, /v1/prices/latest reference: https://cspriceapi.com/docs/api/prices-latest.md (accessed 2026-09-26)
  • CSPriceAPI, Quickstart: https://cspriceapi.com/docs/quickstart.md (accessed 2026-09-26)
  • Frankfurter exchange-rate API (api.frankfurter.app, now served from frankfurter.dev), used by the site for the EUR conversion: https://frankfurter.dev (accessed 2026-09-26)
  • ByMykel, CSGO-API skins dataset (paint indexes and phases): https://raw.githubusercontent.com/ByMykel/CSGO-API/main/public/api/en/skins.json (accessed 2026-09-26)
  • DMarket Blog, "All About Doppler Phases in CS2" (updated 2025-08-26): https://dmarket.com/blog/csgo-doppler-phases-guide/ (accessed 2026-09-26)
  • VSkin, "CS2 Doppler Phases Explained" (Steam market naming): https://vskin.gg/guides/cs2-doppler-patterns (accessed 2026-09-26)

Every endpoint, every market

Try the API free for 2 days

A test key gives access to listing prices, buy orders, history and sales data. Paid plans start at $50/month.

Get a test key on Discord

Or read the quickstart and pricing.