Use fund, period, section, and text-search filters across every endpoint, and paginate large result sets with limit and offset parameters.
Most list endpoints in the MKK API accept a common set of query parameters that let you narrow results by fund, time period, section, or free-text search. Understanding how these parameters compose — and how pagination works — will help you write precise queries rather than fetching and filtering data client-side.
Both fund_code and fund_id identify the same fund, but fund_code is a human-readable string (e.g. OJB) while fund_id is an opaque integer. Use fund_code when you are working interactively or constructing URLs by hand — it is stable across environments and easier to read in logs.
The period parameter performs a prefix match on the period string stored for each document or value. This means you can filter at any level of granularity — year, quarter, or full period string.
# All documents for 2023 (any quarter or month)curl "https://mkk-roan.vercel.app/api/documents?fund_code=OJB&period=2023"# Only Q1 documentscurl "https://mkk-roan.vercel.app/api/documents?fund_code=OJB&period=2023-Q1"# Exact period matchcurl "https://mkk-roan.vercel.app/api/line-item-values?fund_code=OJB&period=2023-Q4"
Period strings are stored as-is from the MKK disclosure data. Common formats include YYYY, YYYY-QN, and YYYY-MM. Pass the prefix that matches the granularity you need.
Use the q parameter on the /documents, /sections, and /line-items endpoints to search by label or text content. The search is case-insensitive and matches partial strings.
# Search documents by keywordcurl "https://mkk-roan.vercel.app/api/documents?q=yatirim"# Search sections by namecurl "https://mkk-roan.vercel.app/api/sections?fund_code=OJB&q=portfolio"# Search line items by labelcurl "https://mkk-roan.vercel.app/api/line-items?q=net+asset"
On /line-item-values (and its alias /key-values), use section_id to restrict results to a specific section of a document, and line_item_slug to retrieve values for a specific line item across all documents or periods.
# All net-asset-value entries for OJB in 2023curl "https://mkk-roan.vercel.app/api/line-item-values?fund_code=OJB&period=2023&line_item_slug=net-asset-value"# All values in a specific sectioncurl "https://mkk-roan.vercel.app/api/line-item-values?section_id=7&fund_code=OJB"
You can also combine label with other filters to match values by their display label:
Use /portfolio-entries with fund_code, period, and section to find holdings for a given fund and period.
# All portfolio entries for OJB in Q4 2023curl "https://mkk-roan.vercel.app/api/portfolio-entries?fund_code=OJB&period=2023-Q4"# Narrow by section namecurl "https://mkk-roan.vercel.app/api/portfolio-entries?fund_code=OJB&period=2023-Q4§ion=hisse"
All list endpoints return a total field alongside the data array. Use limit and offset together to page through results.
# First page of 50curl "https://mkk-roan.vercel.app/api/portfolio-entries?fund_code=OJB&limit=50&offset=0"# Second pagecurl "https://mkk-roan.vercel.app/api/portfolio-entries?fund_code=OJB&limit=50&offset=50"
The outer array field name matches the resource (funds, documents, line_items, portfolio_entries, etc.).Use total to determine how many pages exist: ceil(total / limit). Keep incrementing offset by limit until offset >= total.Per-endpoint limits
When using include_portfolio=true on GET /funds/{fundId}, the embedded portfolio list is paginated with its own portfolio_limit and portfolio_offset parameters — separate from the top-level limit and offset.
The response includes a portfolio_entry_count field at the fund level indicating the full count of portfolio entries for that fund, and portfolio_limit/portfolio_offset reflecting the pagination applied to the embedded array.