Setup - install and connect
AvailableStart here
This app lists the market deals worth sniping, read live from the order pages YOUR game shows. Two one-time setups, then you just play:
- Install the data client that reads your game (steps 1-2 below, ~5 minutes).
- Open this app with its launcher - double-click
AlbionSnipe.bat. It serves the page for you. Opening the file directly (an address startingC:/...) will not work.
It's working when the badge at the top-left turns green (LIVE) and orders start filling the Sniper as you open market pages in game. Full steps, the friend-scan option and every fix are below.
1. Install the official Albion Data Client (once)
- Download the latest release: github.com/ao-data/albiondata-client/releases
- Npcap is required (the installer offers it).
- This is the same client thousands of players run to feed the public price database. This tool is read-only: your public upload keeps running untouched.
2. Enable the local websocket
Create a file named config.yaml in the same folder as albiondata-client.exe with exactly:
EnableWebsockets: true AllowedWebsocketHosts: - localhost - 127.0.0.1
Then restart the client. The config is read once at startup.
3. Verify
- Open this page, click Connect on the Sniper tab. The badge turns green.
- In game, open any city market and browse item pages.
- Orders appear in the Sniper list as you browse. Not magic, not real-time: the list updates as you browse - what your game shows is what the tool sees.
4. Optional: merge a friend's scan into your feed
The live feed is each player's own scan: what your friend browses in game lands in HIS browser, not yours - there is no server in between, and the public API only serves delayed aggregates (no per-player live stream). But the app accepts several feed URLs, comma-separated, so two players who trust each other can merge scans directly:
- Your friend adds YOUR address to his client's
config.yamlAllowedWebsocketHostslist (e.g. his LAN IP or VPN hostname) and restarts his client. - You reach his machine over a LAN or a private VPN such as Tailscale (free, zero config: both install it, you get stable private IPs). Never expose port 8099 to the open internet.
- In the Sniper connect bar, set:
ws://localhost:8099/ws, ws://his-tailscale-ip:8099/wsand click Connect. The badge counts the connected feeds; his market pages now stream into your Sniper, Order Flip and Craft tabs exactly like your own.
Privacy holds: the merged flow goes machine-to-machine between the two of you, still no server of ours.
Troubleshooting (every item below was hit for real while building this)
- "request origin not allowed by Upgrader.CheckOrigin" in the client window:
the client did not read your config.yaml.
- Launch
albiondata-client.exeby double-clicking the exe itself, not a shortcut. Shortcuts (and "Run as administrator" on shortcuts) change the startup folder, and the client looks for config.yaml in the startup folder. - Save config.yaml as plain UTF-8 without BOM, Unix line endings if possible. Avoid
PowerShell
Set-Content/Out-File: their default encodings can silently corrupt the values. - Restart the client after any config change.
- Launch
- Badge stays red: the client is not running, or EnableWebsockets was not read (no config file = websockets silently off, no error shown).
- Connected but no orders: browse the market in game - the feed only carries what your game client displays. Admin rights are NOT needed.
- Player position updates but no market orders: on brand-new or long-inactive accounts market orders can be encrypted (gold prices and history still pass). Playing normally unlocks it over time.
- VPN users: set the VPN adapter to NDIS/Legacy mode so Npcap can see the traffic.
- Page opened as file:// (URL bar shows
C:/...instead ofhttp://localhost:...): the client rejects it (null origin), feed stays red even with the client running. The page must be served over http on localhost.- Easiest: launch with
AlbionSnipe.bat- it serves the page and opens your browser athttp://localhost:8000for you. Keep that window open while you play; closing it stops the tool. - Manual: open a terminal in the
docsfolder and runpython -m http.server 8000, then openhttp://localhost:8000.
- Easiest: launch with
Privacy
The live Sniper feed goes from the client on your machine straight into your browser tab. Nothing is sent to any server of ours - there is no server of ours. Baseline averages are public data from albion-online-data.com.
The Market Prices tab is the one exception: when you look up an item it sends that item id to the public community API at albion-online-data.com to fetch current prices. No account, no personal data, just the item you searched.
Something broken, or an idea?
Everything happens on the AlbionSnipe Discord: report a bug, suggest a feature, ask for help with the setup above. No forms, no tickets - the Bug / idea button in the bottom bar opens the same place, from any tab.
Sniper
AvailableFlip fresh city listings to the Black Market, live
What it is: your data client streams every sell order YOUR game displays, the instant it displays it. The Sniper compares each fresh listing to what the Black Market pays and to what other cities pay. This is the live edge: sites built on the public API run 30-60 minutes behind; you see listings seconds after they are posted.
New here? The tab opens in a simple view: item, where to buy, price, and your profit selling to the Black Market. When you want the full toolkit (avg price, vs avg %, BM volume, tier/category filters, VIP rules), hit the green Expert view button - nothing is hidden for good, it just folds away until you ask for it.
The workflow that works
- Pick your preset first (the two gold buttons): Big flip ranks by margin as a % of what you pay, for the few heavy trades; Market sit ranks by silver per take and demands real daily flow, for many small ones. They set the sort and the thresholds only - Simple/Expert still decides how many columns you see. Edit any of their settings by hand and the button goes dark, because it no longer describes the screen.
- Visit the Black Market once at session start and browse its categories: that captures live BM buy orders and unlocks the margin @ BM now column (otherwise only the 2x/day baseline snapshot prices your exits). Check the badge counts BM buy orders afterwards - a pass made before the data client is ready reaches nothing, and every margin silently falls back to the baseline.
- Sit at a market (Brecilien is fat: its dumps are often BM-negative but huge toward royal cities), sort the in-game list by time since listed and browse the fresh pages. Every page you see lands here.
- Read a row in this order: age (under 2 minutes = still catchable; good discounts die in seconds), vs avg % (a real dump sits well under its own average), then the three exits: margin @ BM now (live order, surest), margin @ BM base (2x/day snapshot, can be a day old), best city exit (haul to that royal city, sell around its 7d average - often the biggest number on Brecilien listings).
- An into Good tag next to a margin means the exit is a LOWER quality's buy order: a buy order takes items of its quality or better and pays its own price flat, and that one pays more. Fill the order it names, not the one at your item's own quality - the two are often far apart, and the wiki says so itself.
- Buy in game fast, then click TAKEN (or xN to take a whole stack) - it logs price and expected net to the Journal and hides the row. Misclick? Undo it from the Journal within 15 minutes.
Settings
- feed URLs: comma-separate several to merge a friend's scan over LAN/VPN (Setup, section 4).
- avg window 7d/30d: the reference average for "vs avg %". 7d follows the market faster.
- BM sales tax %: 4 with premium, 8 without - charged on the BM sale. Default 4.
- upgrade flips (off): also prices the enchant-up route - buy, spend runes at an Artifact Foundry, sell one enchant level higher. A +1 ench tag appears only when that beats every direct exit, because it costs you a trip. Runes only: no silver, no focus, and your quality is kept. x.3 cannot go to x.4 - that one is craft-only.
- order setup fee %: keep 0 while your exit is instant-selling into BM buy orders; the 2.5% listing fee only applies if you place sell orders instead. (The best-city-exit column already includes the 2.5% internally.)
- min BM vol/day: liquidity floor from the baseline. Rows with a LIVE BM order bypass it - a standing order in front of you IS the exit.
- stack same item: one row per item/quality/city, cheapest offer kept, xN counts the rest. Keep it on; the Order Flip click-pass otherwise floods the list with one row per offer.
- VIP gear: rows passing every enabled rule turn gold and pin on top. Rules = margin floors on each basis plus "price under its own average".
Traps
- An enormous margin on a stale age is a listing someone else already sniped.
- margin @ BM base is a snapshot, not an average: prices move between builds. Trust @ BM now when both exist.
- The buffer holds the last 10,000 orders; heavy scrolling still evicts the oldest. Decide fast.
Craft Radar
AvailableWhat is worth crafting for the Black Market, right now
What it is: the LIVE craft radar. Every item the BM currently pays over its own average for (a demand signal), with the real cost to craft it and the margin. Live BM prices come from your scan; material prices from the public API (2x/day). Its cold, offline sibling is Craft Planner (a single item in depth) - click the calculator icon on any row here to open that item there.
The workflow that works
- Visit the Black Market so the feed captures its live buy orders - the whole tab prices against them.
- Sort by craft/day (default): margin x BM daily volume. A +40% margin on 550 sales/day beats +120% on 4/day.
- Watch trend: the BM reprices upward as its stock drains - a rising arrow is the craft-snipe window.
- Set your real production: city bonus ★ (craft each item in its starred specialty city), focus, daily bonus from the Activities menu. The RRR chip shows the computed return.
- Crafting with focus? Fill spec (your specialization level on what you craft) and card (sum of the mastery card's other nodes, mastery included), then sort by silver/focus: your real constraint is the daily focus pool, not silver - this column answers "where do my 10k/30k focus earn the most". The focus cost halves every 10,000 efficiency points (280/level from the item's spec, 30/level from the rest of the card).
- Gold PREMIUM rows are the robust picks: profitable even at base return, on both the live price and the average, with volume. Tune the rules in the star menu.
Settings worth knowing
- buy city / mat price: where and at which price basis materials are bought; material prices gear = your own fixed prices (bulk deals) override the market.
- fee /100n: the station sign number; fee = item value x 0.1125 x this / 100. Confirm once in game.
- return override: for hideouts/islands; empty = auto (18 base +15 star +59 focus + daily).
n/a in craft cost = a material has no market price or the recipe is bound - never a guess.
Market Prices
AvailableOne item, every city, live
What it is: the lookup. Search any of the 11k items and get its sell/buy prices and daily volume in all 8 markets, fetched from the public API at that moment (same lag as the in-game data, minutes to hours).
Use it for
- Sanity-checking a deal before committing: click any item name in the Sniper/Order Flip to open it here in a new tab.
- Reading depth: sell vs buy gap per city, the avg line, and the volume window (avg days, up to 30).
- Freshness dots: green under 6h, red over 48h - old prices are opinions, not facts.
Server and language live in Settings (top right). This tab is the only one that queries the public API directly per lookup.
Journal
AvailableEverything you committed silver to
What it is: every TAKEN (Sniper), PLACE (Order Flip / Routes) and PLAN (Craft Planner) click, with the price and the net the app showed at that moment. Survives reloads, never expires (last 500 kept).
Use it for
- End-of-session accounting: filter by action, compare est. net to what you really got.
- UNDO on a fresh TAKEN (15 min): puts the listing back in the Sniper and removes the entry.
- Misclick forgiveness: un-clicking a PLACE within 5 minutes removes its entry too.
Working states are separate: the 24h/48h PLACED expiries and "Reset session" never touch this journal. est. net is an estimate at click time - the market moves.
Top Traded
Coming soonWhat moves + a cold demand signal
What it is: the highest daily-silver items at the Black Market or in any single city (baseline, works offline). The accumulation shortlist: what to stock up on, and where the BM is overpaying right now. Confirm any live price in the Sniper before a big dump. Click an item name to open Market Prices, or the calculator icon to open it in Craft Planner.
Reading a BM row
- daily amount / daily silver: the raw flow - the BM's buy orders are finite, so spread purchases across many high-volume items rather than dumping one stack.
- BM buy (base): what the BM pays you selling direct (its highest buy order). The age tag next to it is when that price was last seen - a 2x/day snapshot, so it can be a day or two old (red). It is a tendency, not a live quote. Visit the Black Market this session and rows you saw switch to the captured LIVE price (green + LIVE tag), and the premium recomputes against it.
- premium: BM buy over the item's own average = how much the BM overpays now. premium/day = premium x daily volume, the honest prioritizer (a small % on huge volume beats a fat % on nothing).
- trend: 7d average vs 30d - the item's BM price direction this month (rising = demand outrunning supply).
The signal gear
- The signal ⚙ pins + highlights the high-volume items the BM overpays for (premium % and vol/day floors, editable). Sort by premium/day to rank the real opportunities; raise the % floor to tighten the shortlist.
- window 7d/30d switches the average basis (BM volume is always 7d - the baseline does not track BM 30d volume).
City views (location selector) show each market's daily flow instead - pairs with Routes for hauling.
Craft Planner
Coming soonOne item, the full craft in depth
What it is: the cold microscope (works offline, baseline data). Pick ANY craftable item - gear, refined bar, food, potion - and get its recipe, the real cost to craft, the cheapest city to source materials, the margin at every exit, demand, and the best tier to craft. The live sibling is Craft Radar. Reach here from any tab's calculator icon, or search at the top.
Reading the plan
- Craft cost/unit: materials at your buy city/source, minus the resource return, plus the station fee. n/a = a material has no price or the fee is unknowable - never a guess.
- Sell options: every exit (BM now, BM 7/30d, best city avg, cheapest city sell) with its net AND its sold/day and net/day. The best exit is the highest net/day, not the highest margin - a fat margin at a venue that moves 5/day loses to a smaller one moving 500.
- sold/day + ARTEFACT flag: the demand guard. A great margin on an artefact nobody buys at the BM is a mirage; the flag and the low volume warn you.
- Recipe: per-unit and batch quantities, each ingredient's traded/day (sourcing liquidity), and an editable unit price - type your real bulk price to override the market. Refined resources (↺) get the return rate.
- Margin by tier: the same item across T4-T8 at a glance - the highlighted row is the most profitable tier to craft right now. Click a tier to open it.
Controls
- buy city / mat price / city bonus ★ / focus / daily / fee /100n / return: same craft model as Craft Radar, shared - set it once. sell tax % is applied to the net.
- amount: the batch. Quantities and line costs scale; the returned column shows what the return rate refunds.
- PLAN: logs this batch to the Journal (buy the materials, craft, sell) so you can track it.
- back (header): returns to the previous item you were on - a deeper ingredient, or the tab you came from.
Ingredient prices for raw resources, crops and herbs come from the Routes dataset (refreshed 2x/day) when the material list has no price for them.
Routes
Coming soonCity-to-city hauling planner
What it is: every profitable buy-here-sell-there pair across the royal cities, Caerleon and Brecilien, priced from the public API (refreshed 2x/day, age tags on every price). The Black Market is a different game - that is the Sniper.
The workflow that works
- Pick your view with the two bases. Snipe view = buy "sell order" x sell "sell order": real standing orders on both sides, freshest but exposed to outliers. Steady haul view = avg 7/30d on both sides: the classic reliable route list. Crossing them works too (buy live, exit at average = conservative).
- Sort by profit/day (default): profit per unit times the destination's daily flow - it naturally favors routes that absorb real volume, like mounts to Brecilien or resources between royal cities.
- Check the row's honesty signals: age tags on both prices, the ! flags, and the vol/day tooltip (sold last day / week / month at the destination).
- Buy and haul in game, click PLACE: the route greys out for 48h and logs to the Journal.
Settings
- buy as: sell order = buy it now; buy order = patient accumulation (adds the 2.5% fee); avg 7/30d = accumulate around the traded price.
- sell as: sell order = undercut the current cheapest (fee applies); instant = fill a standing buy order (no fee, thin outside Caerleon); avg 7/30d = the realistic steady exit.
- realistic exits only (keep it on): hides ghost exits - a lowest sell far above the destination's own average with no depth behind it. In testing, EVERY top row by profit/day was a ghost until this filter existed; several were negative at the real exit.
- max profit % (500): kills price-error outliers. max buy age h: only fresh buy prices.
- min profit/kg: sort or floor by transport efficiency when carry weight is the constraint.
- safe only (no red zone): hides any haul through Caerleon or Brecilien - reaching them crosses a red/black zone (or the Mists) where you can be ganked. Leaves only royal-to-royal blue-road runs.
- mount + carry kg + profit/trip: pick your mount to fill carry kg from the wiki base load (or type the free capacity the game shows), and the profit/trip column shows what one full mount trip nets = profit/unit x floor(carry / item kg), with the unit count. It stops the list overselling big cheap-per-kg volumes you can't actually haul: a 60kg item on a 100kg mount is 1 unit a trip, not the 1.67 that profit/kg implies. Capacity-bounded only - it does not cap by market depth (routes.json has no order depth), so cross-check the vol/day exit before hauling.
- sales tax / setup fee: applied per the basis (instant skips the fee).
Traps
- The ! on a buy price = far under its own city average: often bait or a stale upload.
- On avg x avg the numbers aggregate all qualities - the quality label is dropped on purpose.
- Caerleon legs cross the black zone, Brecilien goes through the Mists: price the risk, haul in batches.
Order Flip
Coming soonBuy low and resell inside one city market
What it is: place a buy order just over the current best one, wait for a seller to fill it, then either relist just under the lowest sell in the same market, or haul to the Black Market. You earn the spread without leaving town.
The workflow that works
- At a market, open the SELL tab and click items one by one: scrolling only broadcasts sell orders; the buy-order book of an item reaches the feed only when its detail page opens. Click 15-20 items you know trade.
- Judge a row by city sold/d (this market's real daily flow) before the spread %. A +600% spread on an item that trades 0.1/day never fills either leg; a +200% on 12/day is money.
- Compare the three routes: net in place (relist here), net @ BM now (live BM order = guaranteed exit if your buy fills), net @ BM avg. Gold = best positive route.
- Place the order in game, click PLACE here: the row greys out, sinks, and logs to the Journal (24h memory).
Settings
- sales tax / setup fee: separate from the Sniper on purpose. A full flip pays the 2.5% fee twice (buy order + relist) and 4% tax on the sale - defaults model exactly that.
- min spread % / min buy order: noise floors for the list itself.
- BM avg selector: what "net @ BM avg" is priced on - last snapshot covers most items, 7d/30d are true averages.
- FILTERS bar hides rows below your floors; the VIP gear only highlights and pins. Independent controls.
Traps
- A big buy-order queue (x50+) in front of you means constant outbidding wars - check the "N ord x qty" subtext.
- Quality matters: each quality is its own book. The Outstanding copy can be a highlighted take while the Normal is dead.
- Prices move between your click-pass and your order: re-check in game before committing silver.
Station
Coming soonIs running a crafting station worth it
What it is: the owner-side economics. You own a station, feed it food, and charge crafters a usage fee per 100 nutrition. This ranks every food by how profitable it is to feed. Baseline data (food nutrition from the game files, food prices from the public API).
Reading a row
- nutrition: what the food restores (base), and in brackets with the favourite x bonus applied - a station restores extra from its own favourite dish.
- cost /100n: silver to supply 100 nutrition via this food = food price / (nutrition x favourite) x 100. Lower = cheaper to run. profit /food = fee x (nutrition x favourite) / 100 - food price. margin /100n = your fee minus the cost.
Controls
- usage fee /100n: the number you set on your station sign. favourite x: the favourite-food bonus (default 2). food price: direct / 7d / 30d source.
HYPOTHESE: the favourite multiplier (x2) and any laborer reward are not yet confirmed in game - treat the numbers as directional until verified. Few players own city stations, so this tab is a bonus, not the core tool.
Ready to run it?
One bundle, Windows, no account, free in full. The tabs above are the whole toolkit for flipping.