Getmidas APIapp.getmidas.com ↗
Access live BIST stock prices, trading volumes, and fundamental indicators for ~626 Borsa Istanbul equities via a single API endpoint.
What is the Getmidas API?
The Midas BIST API returns price, volume, and fundamental data for up to 626 stocks traded on Borsa Istanbul through a single list_stocks endpoint. Each response includes an array of stock objects covering live (15-minute delayed) quotes alongside key fundamental indicators, with optional filtering to narrow results to BIST 100 index constituents. The API delivers the entire dataset in one call with no pagination required.
curl -X GET 'https://api.parse.bot/scraper/704206bb-bac1-4bfd-9802-252dfaf479ca/list_stocks?index=bist30' \ -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 app-getmidas-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: Midas BIST stock market SDK — bounded, re-runnable."""
from parse_apis.app_getmidas_com_api import Midas, Index, InvalidIndex
client = Midas()
# List BIST 30 stocks with live price data, capped at 10 items.
for stock in client.stocks.list(index=Index.BIST30, limit=10):
print(f"{stock.code}: last={stock.last} change={stock.daily_change_percent}%")
# Retrieve the first stock from the full market to inspect fundamentals.
top = client.stocks.list(index=Index.ALL, limit=1).first()
if top is not None:
print(
f"\n{top.code} — P/E: {top.price_earning}, P/B: {top.price_book_value}, "
f"volatility: {top.volatility}, free float: {top.free_float_rate}%"
)
# Demonstrate typed error handling for an invalid index value.
try:
client.stocks.list(index="invalid", limit=1).first()
except InvalidIndex as e:
print(f"Caught expected error: {e.message}")
print("\nexercised: stocks.list (BIST30 filtered + ALL)")
Returns the complete list of stocks traded on Borsa Istanbul (BIST) with live price data, volume, and fundamental indicators. Supports filtering by market index. Data is delayed by 15 minutes. Returns all stocks in a single response with no pagination.
| Param | Type | Description |
|---|---|---|
| index | string | Market index filter. 'all' returns all BIST stocks (~626), 'bist100' returns the BIST 100 index constituents, 'bist50' returns BIST 50, 'bist30' returns BIST 30. |
{
"type": "object",
"fields": {
"index": "string echoing the requested index filter",
"total": "integer count of stocks returned",
"stocks": "array of stock objects with price and fundamental data"
},
"sample": {
"data": {
"index": "all",
"total": 626,
"stocks": [
{
"ask": 8.12,
"bid": 8.11,
"low": 8.1,
"code": "A1CAP",
"high": 8.26,
"last": 8.12,
"open": 8.21,
"vwap": 8.17,
"close": 8.12,
"volatility": 1.96,
"daily_change": -0.05,
"market_value": 5481000000,
"total_volume": 2954031,
"price_earning": 3.22,
"previous_close": 8.17,
"total_turnover": 24134303.68,
"free_float_rate": 37.5,
"price_book_value": 0.6,
"daily_change_percent": -0.61,
"weekly_change_percent": -11.55,
"yearly_change_percent": -31.19,
"monthly_change_percent": -7.52
}
]
},
"status": "success"
}
}About the Getmidas API
What the API Returns
The list_stocks endpoint returns a JSON object containing three top-level fields: index (echoing back your filter selection), total (integer count of stocks in the response), and stocks (an array of stock objects). Each stock object carries live price data, trading volume, and fundamental indicators sourced from the Midas platform, which aggregates BIST market data. Data is delayed by 15 minutes.
Filtering by Market Index
The index query parameter controls which slice of the market you receive. Passing all returns the full BIST universe (~626 stocks). Passing bist100 narrows the response to the 100 constituents of the BIST 100 index. If you omit the parameter, behavior defaults to the full list. The total field in the response always reflects the actual count returned for your chosen filter, making it straightforward to verify coverage programmatically.
Data Freshness and Response Shape
All price and volume figures are delayed by 15 minutes — this is a hard constraint of the source, not a configurable option. The response is not paginated: every matching stock is returned in a single array. This makes the endpoint well-suited for snapshot-style polling or batch analysis, but not for sub-minute tick data. Fundamental indicators are included inline per stock object, so you do not need a separate call to retrieve valuation or balance-sheet metrics for a given ticker.
The Getmidas API is a managed, monitored endpoint for app.getmidas.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.getmidas.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 app.getmidas.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?+
- Screen all BIST-listed stocks by fundamental indicators in a single API call using the
allindex filter. - Build a BIST 100 dashboard by polling
list_stockswithindex=bist100on a scheduled interval. - Compare trading volumes across Turkish equities to identify unusual activity relative to price moves.
- Populate a watchlist app with live (15-min delayed) prices for Borsa Istanbul stocks.
- Run quantitative backtesting prep by collecting daily snapshot data across all ~626 BIST constituents.
- Monitor fundamental indicator shifts for Turkish stocks as part of an emerging-markets research workflow.
| 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 Midas offer an official developer API?+
What does the `stocks` array in the `list_stocks` response contain?+
stocks array is a stock object that includes live (15-minute delayed) price data, trading volume, and fundamental indicators for a single BIST-listed equity. The total field tells you how many objects are in the array for the requested index filter.Does the API cover intraday tick-by-tick price history or order book depth?+
list_stocks endpoint returns a single snapshot per stock with 15-minute delayed prices; it does not expose tick history, OHLCV time series, or order book data. You can fork this API on Parse and revise it to add an endpoint targeting historical or intraday data if that data is available on the source platform.Can I retrieve data for a single stock symbol rather than the full list?+
list_stocks endpoint returns all stocks matching the chosen index filter in one response — there is no per-ticker parameter in the current API. You can fork this API on Parse and revise it to add a symbol-level endpoint if you need isolated lookups.