BullionVault APIbullionvault.com ↗
Access live gold, silver, platinum, and palladium prices, historical charts, latest trades, news, and daily audit data from BullionVault via a single API.
What is the BullionVault API?
This API exposes 7 endpoints covering BullionVault's live precious metal market data, including real-time order book prices for gold, silver, platinum, and palladium across multiple vault locations and currencies. The get_all_live_prices endpoint returns the full market order book with buy and sell pitches per metal, vault, and currency, while dedicated endpoints cover historical price charts, recent trades, market news, and the platform's daily holdings audit.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/c16a497a-ac9f-4e7c-9174-17275f9935e0/get_all_live_prices' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bullionvault-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: BullionVault SDK — live prices, charts, trades, news, and audit data."""
from parse_apis.bullionvault_api import BullionVault, Metal, Currency, ChartDataUnavailable
client = BullionVault()
# Fetch historical gold chart data in USD
chart = client.chartdatas.get(metal=Metal.GOLD, currency=Currency.USD)
print(chart.series_data.name, chart.series_data.security_id, chart.series_data.interval)
for point in chart.series_data.prices[:3]:
print(point.latest_price, point.high, point.low, point.price_time)
# Get the full live market order book
market = client.markets.get()
print(market.update_time, market.weight_unit)
for pitch in market.pitches[:3]:
print(pitch.security_id, pitch.security_class, pitch.currency)
# List gold-specific pitches across vaults
for pitch in client.markets.gold_pitches(limit=3):
print(pitch.security_id, pitch.currency, pitch.size)
# List latest trades
for trade in client.trades.list(limit=5):
print(trade.market, trade.quantity, trade.price, trade.time)
# List recent news articles
article = client.articles.list(limit=1).first()
if article:
print(article.title, article.link)
# Typed error handling for chart data
try:
client.chartdatas.get(metal=Metal.PALLADIUM, currency=Currency.EUR)
except ChartDataUnavailable as exc:
print(f"Chart unavailable: {exc}")
# Fetch daily audit holdings
audit = client.auditdatas.get()
print(audit.table_0[0], audit.table_1[0])
print("exercised: chartdatas.get / markets.get / markets.gold_pitches / trades.list / articles.list / auditdatas.get")
Fetch the full live market order book for all metals (Gold, Silver, Platinum, Palladium) across all vaults and currencies. Each pitch contains buy and sell price arrays with quantity, limit price, and value. The weightUnit is KG and prices are per-kilogram. Updates every few seconds during market hours.
No input parameters required.
{
"type": "object",
"fields": {
"market": "object containing pitches array with buy/sell prices per metal, vault, and currency",
"weightUnit": "string weight unit (KG)",
"updateTimeString": "string timestamp of last market update"
},
"sample": {
"data": {
"locale": "en",
"market": {
"pitches": [
{
"size": 2,
"buyPrices": [
{
"buy": true,
"sell": false,
"limit": 130750,
"value": 131011.5,
"quantity": 1.002,
"ouncesLimit": 4066.78,
"ouncesQuantity": 32.22,
"actionIndicator": {
"buy": true,
"sell": false,
"value": "B"
}
}
],
"securityId": "AUXZU",
"sellPrices": [
{
"buy": false,
"sell": true,
"limit": 131040,
"value": 88189.92,
"quantity": 0.673,
"ouncesLimit": 4075.8,
"ouncesQuantity": 21.64,
"actionIndicator": {
"buy": false,
"sell": true,
"value": "S"
}
}
],
"considerationCurrency": "USD",
"securityClassNarrative": "GOLD"
}
]
},
"loggedIn": false,
"weightUnit": "KG",
"updateTimeString": "10 Jun 2026 16:04:17 CDT"
},
"status": "success"
}
}About the BullionVault API
Live Price Data
The get_all_live_prices endpoint returns a market object containing a pitches array with buy and sell prices for all four metals — gold (AUX prefix), silver (AGX prefix), platinum, and palladium — broken down by vault location and currency. The response includes a weightUnit field (KG) and an updateTimeString timestamp indicating when the market data was last refreshed. If you only need gold or silver, get_live_gold_price and get_live_silver_price return filtered pitch arrays for those metals specifically.
Historical Charts and Recent Trades
The get_price_chart_data endpoint accepts metal (GOLD, SILVER, PLATINUM, PALLADIUM), currency (USD, GBP, EUR), and time_scale parameters to retrieve historical price series. The response includes a seriesData object with name, securityId, interval, and a prices array, plus a latestPrice object with current price and timestamp. The verified working time_scale value is 3600 (one-hour intervals); not all metal/currency/time_scale combinations are guaranteed to have data available. The get_latest_trades endpoint returns an array of recent trades with market, quantity, price, and time fields.
News and Audit Data
get_gold_news returns an array of article objects from BullionVault's news section, each with title, link, and summary fields. The get_daily_audit endpoint exposes BullionVault's published holdings audit as two tables: table_0 summarises total metal holdings by vault location, and table_1 provides a detailed breakdown by client nickname initial and vault location — giving a transparent view of platform-wide custody.
The BullionVault API is a managed, monitored endpoint for bullionvault.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bullionvault.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bullionvault.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display real-time gold and silver buy/sell spreads by vault location in a precious metals portfolio tracker.
- Plot historical gold price charts in USD, GBP, or EUR using the
seriesData.pricesarray fromget_price_chart_data. - Monitor recent trade activity on BullionVault by polling
get_latest_tradesfor price, quantity, and market fields. - Aggregate live platinum and palladium prices alongside gold and silver for a multi-metal market dashboard.
- Feed BullionVault gold news headlines and summaries into a financial news aggregator or alert system.
- Audit precious metal custody transparency by parsing vault-level holdings totals from
get_daily_audit. - Build a cross-currency precious metals price comparison tool using pitches filtered by currency from
get_all_live_prices.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BullionVault have an official developer API?+
What does `get_daily_audit` return and how is the data structured?+
table_0 is a summary with rows for TOTAL holdings and individual vault locations, showing metal quantities per vault. table_1 breaks those holdings down further by client nickname initial and vault location. This mirrors BullionVault's publicly published daily audit report.Which `time_scale` values work with `get_price_chart_data`?+
3600, representing one-hour intervals between data points. Not all combinations of metal, currency, and time_scale are guaranteed to return data; unsupported combinations will return an upstream error rather than an empty result.Does the API return account balances, open orders, or trade history for individual BullionVault users?+
Are platinum and palladium prices available in the same format as gold and silver?+
get_all_live_prices returns pitches for all four metals including platinum and palladium. However, the dedicated single-metal endpoints (get_live_gold_price and get_live_silver_price) cover only gold and silver. You can fork this API on Parse and revise it to add equivalent filtered endpoints for platinum and palladium.