haremaltin APIharemaltin.com ↗
Live and historical buy/sell prices for gold coins, gram gold, silver, platinum, and palladium from Harem Altın's price board via a simple JSON API.
What is the haremaltin API?
The Harem Altın API exposes 3 endpoints covering live and historical buy/sell prices for every product on haremaltin.com's gold price board, including gram gold, quarter/half/full coins, Ata coins, 22/14 carat, ounce, silver, platinum, and palladium. The get_gold_prices endpoint returns the full board in a single call, while get_price_history lets you pull minute-, hour-, or day-resolution price series with configurable date windows.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/8cb61976-ada7-4a9f-a08c-370a489a6c1f/get_gold_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 haremaltin-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: Harem Altın gold prices — bounded, re-runnable."""
from parse_apis.haremaltin_com_api import HaremAltin, Interval, InputNotFound
client = HaremAltin()
# List all products on the price board, capped to 5 for demo.
for product in client.products.list(limit=5):
print(product.product_name_en, product.currency, product.buy_price, product.sell_price)
# Drill into the first product's price history (daily, last 10 days).
first = client.products.list(limit=1).first()
if first is not None:
history = first.history(interval=Interval.DAY, start_date="2026-09-10", end_date="2026-09-20")
print(f"{first.product_code}: high={history.period_high} low={history.period_low} records={history.record_count}")
for rec in history.records[:3]:
print(f" {rec.timestamp} buy={rec.buy_price} sell={rec.sell_price}")
# Point-lookup by a code discovered above, with error handling.
if first is not None:
try:
detail = client.products.get(product_code=first.product_code)
print(detail.product_name, detail.product_url)
except InputNotFound:
print("product not found")
print("exercised: products.list / products.get / product.history")
Returns the current buy and sell price of every product on Harem Altın's gold price board ('ALTIN FİYATLARI'), in board order: one row per product with its code, Turkish and English name, quote currency, display decimals, chart page URL and the latest recorded buy/sell price with its timestamp. Prices are the most recent minute-resolution record the site holds for each product (the site records every minute), so timestamps are normally under two minutes old; timestamps are ISO 8601 in Europe/Istanbul time. The board is read once and then one price lookup is made per product (27 products at the time of writing), so a call takes several seconds. A product whose price lookup returned no record keeps null prices and is listed in missing_product_codes; priced_count says how many rows carry prices. currency is null for ratio products such as the gold/silver ratio.
No input parameters required.
{
"type": "object",
"fields": {
"products": "array of product rows: product_code (string, use with get_gold_price/get_price_history), product_name (Turkish), product_name_en, currency (ISO code or null), decimals (integer, site display precision), product_url, buy_price (number or null), sell_price (number or null), timestamp (ISO 8601 with +03:00 offset, or null)",
"priced_count": "integer, rows that carry a price",
"retrieved_at": "ISO 8601 time of the call in Europe/Istanbul",
"product_count": "integer, rows on the board",
"missing_product_codes": "array of product codes whose price lookup returned nothing"
},
"sample": {
"data": {
"products": [
{
"currency": "TRY",
"decimals": 2,
"buy_price": 6817.38,
"timestamp": "2026-09-21T01:38:02+03:00",
"sell_price": 6847.55,
"product_url": "https://www.haremaltin.com/grafik?tip=altin&birim=ALTIN",
"product_code": "ALTIN",
"product_name": "HAS ALTIN",
"product_name_en": "GOLD TRY"
},
{
"currency": null,
"decimals": 2,
"buy_price": 64.51,
"timestamp": "2026-09-21T01:38:02+03:00",
"sell_price": 70.2,
"product_url": "https://www.haremaltin.com/grafik?tip=altin&birim=XAUXAG",
"product_code": "XAUXAG",
"product_name": "ALTIN GÜMÜŞ",
"product_name_en": "GOLD SILVER"
}
],
"priced_count": 27,
"retrieved_at": "2026-09-21T01:38:27.837621+03:00",
"product_count": 27,
"missing_product_codes": []
},
"status": "success"
}
}About the haremaltin API
Live Price Board
get_gold_prices returns the complete current price board in one call — no input required. Each row in the products array includes product_code, Turkish and English product names (product_name, product_name_en), currency (TRY, USD, EUR, or null for ratio products), display decimals, a product_url pointing to the chart page, and the latest buy_price / sell_price. The response also surfaces product_count, priced_count, and missing_product_codes so callers can detect any gaps in the board at query time.
Single-Product Lookup
get_gold_price accepts a product_code — for example KULCEALTIN for gram gold, CEYREK_YENI for the new quarter coin, YARIM_YENI for the half coin, or TEK_YENI for the full coin — and returns the same price fields (buy_price, sell_price, currency, decimals, timestamp) scoped to that one product. The retrieved_at field on every response carries an ISO 8601 timestamp anchored to Europe/Istanbul time.
Price History
get_price_history takes a product_code plus optional start_date, end_date (both ISO dates interpreted in Europe/Istanbul time), and interval (minute, hour, or day). It returns a records array sorted oldest-first, each entry carrying buy_price, sell_price, and timestamp. The response also includes period_high and period_low for the queried window, a truncated flag that is true when the source's 10,000-record cap is reached, and record_count for quick validation without counting the array.
Product Codes and Coverage
Product codes are stable uppercase strings (letters, digits, underscores) and are the key linking all three endpoints. Always use get_gold_prices to enumerate current codes before querying history or single prices, since the board can include new instruments over time. The missing_product_codes field in get_gold_prices identifies any codes for which no price was returned in that particular call.
The haremaltin API is a managed, monitored endpoint for haremaltin.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when haremaltin.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 haremaltin.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 a live TRY gold price ticker for gram gold and coin denominations on a Turkish fintech dashboard.
- Backfill a time-series database with minute-resolution buy/sell spreads for KULCEALTIN across a custom date range.
- Calculate historical buy/sell spread width for silver and platinum using
period_highandperiod_lowfromget_price_history. - Alert users when the sell price of a specific coin (e.g. CEYREK_YENI) crosses a threshold by polling
get_gold_priceon a schedule. - Build a precious-metals portfolio tracker that converts TRY-quoted prices to other currencies using the ISO
currencyfield. - Monitor board completeness by checking
missing_product_codesandpriced_countvsproduct_counton each call.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Harem Altın provide an official public developer API?+
What does `get_price_history` return when the requested window is very long?+
truncated boolean. When the source caps the series at 10,000 records, truncated is set to true and only 10,000 entries are returned. Use a narrower start_date/end_date range or a coarser interval (e.g. hour instead of minute) to avoid hitting the cap.Does the API cover gold price data from other Turkish dealers or exchanges (e.g. Kapalıçarşı rates or Borsa Istanbul)?+
get_gold_prices, get_gold_price, and get_price_history — source data exclusively from Harem Altın's price board. You can fork this API on Parse and revise it to add endpoints that pull from other Turkish gold price sources.Which `product_code` values are available, and can I filter the board by metal type?+
get_gold_prices in the products[*].product_code field. Known codes include KULCEALTIN (gram gold), CEYREK_YENI (new quarter coin), YARIM_YENI (half coin), TEK_YENI (full coin), along with codes for Ata coins, 22/14 carat gold, ounce, silver, platinum, and palladium. The endpoint returns all products in board order; there is no server-side filter parameter, so filtering by metal type must be done client-side using the product_name_en field.Are bid/ask volumes or trade counts included alongside the prices?+
buy_price), sell price (sell_price), timestamps, and period high/low values. You can fork this API on Parse and revise it if you need to add volume-related fields should they become available on the source.