{"info":{"title":"ServiceBox — Turkish Funds API","version":"1.0.0","description":"Every Turkish investment fund (including hedge funds), private pension (BES/OKS) fund and ETF that TEFAS lists — about 2,500 funds: the latest price, fund size, investors and shares, returns from 1 month to 5 years, fees, risk level, category and portfolio company; each fund's portfolio allocation by asset class; and daily price history since October 2021. Updated every morning. Prices in TRY. Collections answer `{ items, next_cursor, total }`; page with `limit` (1–200, default 50) and `cursor` (pass back `next_cursor` with the same filters). Errors are RFC 9457 problems. Every answer has an ETag: send it back in `If-None-Match` for a `304` while the data is unchanged.\n\nSource: TEFAS (Türkiye Elektronik Fon Alım Satım Platformu), operated by Takasbank. ServiceBox is not affiliated with Takasbank; data is informational and not investment advice. Returns and categories are TEFAS's; English asset-class names are TEFAS's own."},"paths":{"/v1/funds":{"get":{"summary":"List funds","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"asOf":{"type":["string","null"],"format":"date"},"source":{"type":"string"},"currency":{"type":"string"},"disclaimer":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/Fund"}},"total":{"type":"integer"},"next_cursor":{"type":["string","null"],"description":"Pass back as `cursor` for the next page; null on the last page."}}}}},"headers":{"ETag":{"schema":{"type":"string"}}},"description":"The funds."},"304":{"description":"Not modified."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid parameters."},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"504":{"$ref":"#/components/responses/GatewayTimeout"}},"parameters":[{"in":"query","name":"type","schema":{"enum":["investment","pension","exchange-traded"],"type":"string"},"required":false,"description":"Only this type."},{"in":"query","name":"category","schema":{"type":"string"},"required":false,"description":"A category id from /funds/categories, e.g. para-piyasasi-semsiye-fonu."},{"in":"query","name":"founder","schema":{"type":"string"},"required":false,"description":"A company code from /funds/founders, e.g. ISP."},{"in":"query","name":"codes","schema":{"type":"string"},"required":false,"description":"Comma-separated fund codes (up to 100), e.g. AAL,TTE."},{"in":"query","name":"q","schema":{"type":"string"},"required":false,"description":"Words to find at the start of words of the code or the Turkish or English title; Turkish letters optional: `altin` finds ALTIN and Altın, `tekno` TEKNOLOJİ."},{"in":"query","name":"tefas","schema":{"enum":["true","false"],"type":"string"},"required":false,"description":"`true`: only funds traded on the TEFAS platform; `false`: only those that are not."},{"in":"query","name":"riskLevel","schema":{"type":"integer","maximum":7,"minimum":1},"required":false,"description":"Only this risk value, 1–7."},{"in":"query","name":"status","schema":{"enum":["active","all"],"type":"string","default":"active"},"required":false,"description":"`active` (default) or `all` (also funds no longer priced)."},{"in":"query","name":"sort","schema":{"enum":["aum","investors","return-1m","return-3m","return-6m","return-ytd","return-1y","return-3y","return-5y","fee","code","name"],"type":"string","default":"aum"},"required":false,"description":"Sort key. Default `aum` (fund size)."},{"in":"query","name":"order","schema":{"enum":["asc","desc"],"type":"string"},"required":false,"description":"`desc` or `asc`; default `asc` for fee, code and name, else `desc`. Funds without the sort value come last."},{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":200,"minimum":1},"required":false,"description":"Items per page, 1–200."},{"in":"query","name":"cursor","schema":{"type":"string"},"required":false,"description":"The `next_cursor` of the previous page, with the same filters."},{"in":"header","name":"If-None-Match","schema":{"type":"string"},"required":false,"description":"An ETag from a previous answer; 304 while unchanged."}],"description":"Every Turkish investment fund, pension fund and ETF TEFAS lists, with the latest price, size, investors, returns, fees and risk. Filter by `type`, `category`, `founder`, `codes`, a text search `q` (code or title, Turkish letters optional), `tefas` and `riskLevel`; sort by size, investors, a return period, fee, code or name. Active funds only unless `status=all`. Updated every morning from TEFAS. Use for questions about Turkish mutual funds, hedge funds, private pension (BES) funds or ETFs: finding a fund by name or company, the best performers over a period, the largest funds, or the lowest fees.","operationId":"listFunds","x-sbx-credits":1}},"/v1/funds/{code}":{"get":{"summary":"Get a fund","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FundDetail"}}},"headers":{"ETag":{"schema":{"type":"string"}}},"description":"The fund."},"304":{"description":"Not modified."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid parameters."},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found."},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"504":{"$ref":"#/components/responses/GatewayTimeout"}},"parameters":[{"in":"path","name":"code","schema":{"type":"string","pattern":"^[A-Za-z0-9]{3}$"},"required":true,"description":"A TEFAS fund code, e.g. AAL."},{"in":"header","name":"If-None-Match","schema":{"type":"string"},"required":false,"description":"An ETag from a previous answer; 304 while unchanged."}],"description":"One fund: the latest price, size, investors, returns, fees and risk, and its portfolio allocation by asset class (stocks, government bonds, reverse repo, deposits, precious metals, foreign securities…). Use when the user names a fund code (e.g. TTE, AAL) or asks what a fund invests in.","operationId":"getFund","x-sbx-credits":1}},"/v1/funds/founders":{"get":{"summary":"List fund companies","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"source":{"type":"string"},"currency":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/FundFounder"}},"total":{"type":"integer"},"next_cursor":{"type":["string","null"],"description":"Pass back as `cursor` for the next page; null on the last page."}}}}},"headers":{"ETag":{"schema":{"type":"string"}}},"description":"The companies."},"304":{"description":"Not modified."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid parameters."},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"504":{"$ref":"#/components/responses/GatewayTimeout"}},"parameters":[{"in":"query","name":"type","schema":{"enum":["investment","pension","exchange-traded"],"type":"string"},"required":false,"description":"Only this type."},{"in":"header","name":"If-None-Match","schema":{"type":"string"},"required":false,"description":"An ETag from a previous answer; 304 while unchanged."}],"description":"Portfolio management and pension companies with their number of active funds and total fund value, largest first. Free.","operationId":"listFundFounders","x-sbx-credits":0}},"/v1/funds/categories":{"get":{"summary":"List fund categories","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string"}},"source":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/FundCategory"}},"total":{"type":"integer"},"next_cursor":{"type":["string","null"],"description":"Pass back as `cursor` for the next page; null on the last page."}}}}},"headers":{"ETag":{"schema":{"type":"string"}}},"description":"The categories."},"304":{"description":"Not modified."},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"504":{"$ref":"#/components/responses/GatewayTimeout"}},"parameters":[{"in":"header","name":"If-None-Match","schema":{"type":"string"},"required":false,"description":"An ETag from a previous answer; 304 while unchanged."}],"description":"The categories TEFAS uses per fund type — umbrella fund types for investment funds, fund kinds for pension funds and ETFs — in English and Turkish, with how many active funds each has. Free.","operationId":"listFundCategories","x-sbx-credits":0}},"/v1/funds/{code}/prices":{"get":{"summary":"Daily price history","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"end":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"start":{"type":"string"},"source":{"type":"string"},"currency":{"type":"string"},"changePercent":{"type":["number","null"]}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/FundPrice"}},"total":{"type":"integer"},"next_cursor":{"type":["string","null"],"description":"Pass back as `cursor` for the next page; null on the last page."}}}}},"headers":{"ETag":{"schema":{"type":"string"}}},"description":"The prices."},"304":{"description":"Not modified."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid parameters."},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Not found."},"429":{"$ref":"#/components/responses/TooManyRequests"},"502":{"$ref":"#/components/responses/BadGateway"},"504":{"$ref":"#/components/responses/GatewayTimeout"}},"parameters":[{"in":"path","name":"code","schema":{"type":"string","pattern":"^[A-Za-z0-9]{3}$"},"required":true,"description":"A TEFAS fund code, e.g. AAL."},{"in":"query","name":"start","schema":{"type":"string","format":"date"},"required":false,"description":"YYYY-MM-DD."},{"in":"query","name":"end","schema":{"type":"string","format":"date"},"required":false,"description":"YYYY-MM-DD. Default: the fund's latest price date."},{"in":"header","name":"If-None-Match","schema":{"type":"string"},"required":false,"description":"An ETag from a previous answer; 304 while unchanged."}],"description":"One fund's daily price, shares, investors and size between `start` and `end` (inclusive; default the 30 days up to its latest price; at most 1,830 days per request), oldest first, with `meta.changePercent` over the range. History since October 2021. Use for a fund's price history or its change over a period.","operationId":"getFundPrices","x-sbx-credits":1}}},"openapi":"3.1.0","servers":[{"url":"https://api.servicebox.io"}],"security":[{"bearerAuth":[]},{"apiKeyQuery":[]}],"components":{"schemas":{"Bank":{"type":"object","required":["code","ibanBankCode","name"],"properties":{"code":{"type":"string","examples":["0010"]},"name":{"type":"string","examples":["T.C. ZİRAAT BANKASI A.Ş."]},"ibanBankCode":{"type":"string","examples":["00010"]}}},"City":{"type":"object","required":["id","name","asciiName","countryCode","subdivision","population","timezone","elevation","location","isCapital"],"properties":{"id":{"type":"string","examples":["745044"],"description":"GeoNames id."},"name":{"type":"string","examples":["İstanbul"]},"location":{"$ref":"#/components/schemas/Location"},"timezone":{"type":["string","null"],"examples":["Europe/Istanbul"]},"asciiName":{"type":"string","examples":["Istanbul"]},"elevation":{"type":["integer","null"],"description":"Metres."},"isCapital":{"type":"boolean"},"population":{"type":"integer"},"countryCode":{"type":"string","examples":["TR"]},"subdivision":{"type":["object","null"],"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"Fund":{"type":"object","required":["code","name","nameEn","type","category","founder","tradedOnTefas","riskLevel","currency","date","price","shares","investors","aum","marketPrice","returns","fees","active"],"properties":{"aum":{"type":["number","null"],"description":"Total fund value, TRY."},"code":{"type":"string","examples":["AAL"],"description":"TEFAS fund code."},"date":{"type":"string","format":"date","description":"The date of the latest price."},"fees":{"type":"object","properties":{"max":{"type":["number","null"]},"applied":{"type":["number","null"]},"expenseCap":{"type":["number","null"]}},"description":"Annual percentages. `applied`: the management fee charged (pension funds: the fund operating expense); `max`: the rate in the fund's by-laws; `expenseCap`: the maximum total expense ratio."},"name":{"type":"string","examples":["ATA PORTFÖY PARA PİYASASI (TL) FONU"],"description":"The official (Turkish) title."},"type":{"enum":["investment","pension","exchange-traded"],"type":"string","description":"`investment`: securities investment funds (incl. hedge/serbest funds); `pension`: private pension (BES) and auto-enrolment (OKS) funds; `exchange-traded`: ETFs."},"price":{"type":"number","description":"Unit share price, TRY."},"active":{"type":"boolean","description":"False when the fund's latest price is more than 7 days older than the newest of its type (closed, merged or no longer priced)."},"nameEn":{"type":"string","description":"TEFAS's English title; the Turkish one when it gives none."},"shares":{"type":["number","null"],"description":"Shares in circulation."},"founder":{"type":["object","null"],"required":["code","name"],"properties":{"code":{"type":"string","examples":["APY"]},"name":{"type":"string"}},"description":"The portfolio management or pension company."},"returns":{"type":"object","properties":{"1m":{"type":["number","null"]},"1y":{"type":["number","null"]},"3m":{"type":["number","null"]},"3y":{"type":["number","null"]},"5y":{"type":["number","null"]},"6m":{"type":["number","null"]},"ytd":{"type":["number","null"]}},"description":"Returns in percent over 1, 3 and 6 months, year to date, 1, 3 and 5 years, as TEFAS computes them; null when the fund is younger than the period."},"category":{"type":["object","null"],"required":["id","name","nameTr"],"properties":{"id":{"type":"string","examples":["para-piyasasi-semsiye-fonu"]},"name":{"type":"string","examples":["Money Market Umbrella Fund"]},"nameTr":{"type":"string","examples":["Para Piyasası Şemsiye Fonu"]}},"description":"The umbrella fund type (investment) or fund kind (pension, ETF), as TEFAS names it."},"currency":{"enum":["TRY"],"type":"string"},"investors":{"type":["integer","null"]},"riskLevel":{"type":["integer","null"],"maximum":7,"minimum":1,"description":"The fund's risk value, 1 (lowest) to 7."},"marketPrice":{"type":["number","null"],"description":"ETFs only: the Borsa İstanbul bulletin price, TRY."},"tradedOnTefas":{"type":["boolean","null"],"description":"Whether the fund can be bought and sold on the TEFAS platform; null for ETFs."}}},"FxRate":{"type":"object","required":["code","name","nameTr"],"properties":{"code":{"type":"string","examples":["USD"]},"name":{"type":"string","examples":["US Dollar"]},"rate":{"type":"number","description":"ECB: 1 EUR in this currency."},"unit":{"type":"integer","description":"TCMB: the rates are for this many units (JPY: 100)."},"nameTr":{"type":"string","examples":["ABD doları"]},"forexBuying":{"type":["number","null"]},"forexSelling":{"type":["number","null"]},"banknoteBuying":{"type":["number","null"]},"banknoteSelling":{"type":["number","null"]}},"description":"TCMB answers carry `unit` and the four TRY rates per `unit` units; ECB answers carry `rate` (1 EUR = rate)."},"Country":{"type":"object","required":["code","iso3","isoNumeric","name","nameTr","flag","continent","population","languages","neighbours","subdivisionCount"],"properties":{"tld":{"type":["string","null"],"examples":[".tr"]},"code":{"type":"string","examples":["TR"],"description":"ISO 3166-1 alpha-2."},"flag":{"type":"string","examples":["🇹🇷"]},"iso3":{"type":"string","examples":["TUR"]},"name":{"type":"string","examples":["Turkey"],"description":"English name."},"nameTr":{"type":"string","examples":["Türkiye"],"description":"Turkish name."},"areaKm2":{"type":["number","null"]},"capital":{"type":["string","null"],"examples":["Ankara"]},"currency":{"type":["object","null"],"required":["code","name","nameTr"],"properties":{"code":{"type":"string","examples":["TRY"]},"name":{"type":["string","null"]},"nameTr":{"type":["string","null"]}}},"continent":{"type":"object","required":["code","name"],"properties":{"code":{"enum":["AF","AN","AS","EU","NA","OC","SA"],"type":"string"},"name":{"type":"string"}}},"languages":{"type":"array","items":{"type":"string"},"examples":[["tr-TR","ku","diq","az","av"]]},"isoNumeric":{"type":"string","examples":["792"]},"neighbours":{"type":"array","items":{"type":"string"},"description":"ISO 3166-1 alpha-2 codes of bordering countries."},"population":{"type":"integer"},"phonePrefix":{"type":["string","null"],"examples":["+90"]},"postalCodeFormat":{"type":["string","null"],"examples":["#####"]},"subdivisionCount":{"type":"integer"}}},"FxPoint":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date"},"rate":{"type":"number"},"unit":{"type":"integer"},"forexBuying":{"type":["number","null"]},"forexSelling":{"type":["number","null"]},"banknoteBuying":{"type":["number","null"]},"banknoteSelling":{"type":["number","null"]}}},"Problem":{"type":"object","required":["type","title","status"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"status":{"type":"integer"}}},"Coverage":{"type":"object","required":["dataVersion","places","ipAddresses"],"properties":{"places":{"type":"object","required":["source","licence","postalCodeCountries"],"properties":{"source":{"type":"string"},"licence":{"type":"string"},"postalCodeCountries":{"type":"array","items":{"type":"string"}}}},"dataVersion":{"type":"string","examples":["20260927"],"description":"The data snapshot, `YYYYMMDD`."},"ipAddresses":{"type":"object","required":["source","licence","level"],"properties":{"level":{"enum":["country"],"type":"string"},"source":{"type":"string"},"licence":{"type":"string"}}}}},"District":{"type":"object","required":["id","name","asciiName","countryCode","subdivision"],"properties":{"id":{"type":"string","examples":["TR.34.7732454"],"description":"Stable id, `<country>.<subdivision code>.<GeoNames id>`."},"name":{"type":"string","examples":["Avcılar"]},"asciiName":{"type":"string","examples":["Avcilar"]},"countryCode":{"type":"string","examples":["TR"]},"subdivision":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"IpLookup":{"type":"object","required":["ip","version","country"],"properties":{"ip":{"type":"string","examples":["88.255.1.1"],"description":"The address, normalized (IPv4-mapped IPv6 as IPv4, IPv6 compressed)."},"country":{"type":["object","null"],"required":["code","name","nameTr"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"nameTr":{"type":"string"}},"description":"Null for reserved, private or unassigned addresses."},"version":{"enum":[4,6],"type":"integer"}}},"Location":{"type":"object","required":["lat","lon"],"properties":{"lat":{"type":"number"},"lon":{"type":"number"}}},"Timezone":{"type":"object","required":["id","cityCount"],"properties":{"id":{"type":"string","examples":["Europe/Istanbul"],"description":"IANA timezone name."},"cityCount":{"type":"integer"}}},"Commodity":{"type":"object","required":["code","name","nameTr","category","unit","unitTr","currency","frequency","source","from","to"],"properties":{"to":{"type":["string","null"],"description":"The latest date or month held."},"code":{"type":"string","examples":["brent"]},"from":{"type":["string","null"],"description":"The first date (daily) or month (monthly) held."},"name":{"type":"string","examples":["Crude oil, Brent (Europe spot FOB)"]},"unit":{"type":"string","examples":["USD/bbl"]},"nameTr":{"type":"string","examples":["Ham petrol, Brent (Avrupa spot FOB)"]},"source":{"enum":["eia","worldbank"],"type":"string"},"unitTr":{"type":"string","examples":["USD/varil"]},"category":{"enum":["energy","precious-metals","base-metals","agriculture","fertilizers","raw-materials"],"type":"string"},"currency":{"enum":["USD"],"type":"string"},"frequency":{"enum":["daily","monthly"],"type":"string"}}},"Condition":{"type":["object","null"],"required":["code","name","nameTr","daylight"],"properties":{"code":{"type":"string","examples":["partlycloudy"]},"name":{"type":"string"},"nameTr":{"type":"string"},"daylight":{"type":["boolean","null"]}}},"Continent":{"type":"object","required":["code","name","countryCount"],"properties":{"code":{"enum":["AF","AN","AS","EU","NA","OC","SA"],"type":"string"},"name":{"type":"string"},"countryCount":{"type":"integer"}}},"FundPrice":{"type":"object","required":["date","price","shares","investors","aum","marketPrice"],"properties":{"aum":{"type":["number","null"]},"date":{"type":"string","format":"date"},"price":{"type":"number"},"shares":{"type":["number","null"]},"investors":{"type":["integer","null"]},"marketPrice":{"type":["number","null"]}}},"GoldPoint":{"type":"object","required":["date","intrinsicValue"],"properties":{"date":{"type":"string","format":"date"},"intrinsicValue":{"type":"number"}}},"GoldPrice":{"type":"object","required":["id","name","nameTr","fineGrams","intrinsicValue"],"properties":{"id":{"type":"string","examples":["gram-24k"]},"name":{"type":"string"},"nameTr":{"type":"string"},"fineGrams":{"type":"number"},"intrinsicValue":{"type":"number","description":"The value of the fine gold it contains, in `meta.currency`, 2 decimals. No workmanship or dealer spread: a dealer's price for a coin is higher."}}},"IbanCheck":{"type":"object","required":["iban","formatted","valid","reasons","country","bank"],"properties":{"bank":{"type":["object","null"],"required":["code","name"],"properties":{"code":{"type":"string"},"name":{"type":"string"}},"description":"Turkish IBANs: the TCMB payment-systems participant its bank code names; null when unknown."},"iban":{"type":"string","examples":["TR330006100519786457841326"],"description":"Electronic format: no spaces, upper case."},"valid":{"type":"boolean"},"country":{"type":["object","null"],"required":["code","name","nameTr"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"nameTr":{"type":"string"}}},"reasons":{"type":"array","items":{"enum":["format","unknown_country","length","checksum","tr_reserved_digit"],"type":"string"},"description":"Why it is not valid; empty when valid."},"formatted":{"type":"string","examples":["TR33 0006 1005 1978 6457 8413 26"],"description":"Print format, groups of four."}}},"PrayerDay":{"type":"object","required":["date","fajr","sunrise","dhuhr","asr","maghrib","isha"],"properties":{"asr":{"type":["string","null"],"format":"date-time"},"date":{"type":"string","format":"date","examples":["2026-09-27"]},"fajr":{"type":["string","null"],"format":"date-time","examples":["2026-09-27T05:25:00+03:00"]},"isha":{"type":["string","null"],"format":"date-time"},"dhuhr":{"type":["string","null"],"format":"date-time"},"maghrib":{"type":["string","null"],"format":"date-time"},"sunrise":{"type":["string","null"],"format":"date-time"}},"description":"One day's times, ISO 8601 with the place's UTC offset that day, to the minute. In Turkish: fajr = İmsak, sunrise = Güneş, dhuhr = Öğle, asr = İkindi, maghrib = Akşam, isha = Yatsı. A time is null on a day the sun does not rise or set there (polar day or night)."},"BankFxBank":{"type":"object","required":["id","name","nameTr","url","channel","currencies","observedAt","sourceUpdatedAt","stale"],"properties":{"id":{"type":"string","examples":["isbank"]},"url":{"type":"string","format":"uri","description":"The bank's public rates page, where the rates are read."},"name":{"type":"string"},"stale":{"type":"boolean","description":"True when the last successful read is more than 30 minutes old."},"nameTr":{"type":"string"},"channel":{"enum":["digital","branch","indicative"],"type":"string","description":"`digital`: internet and mobile banking rates; `branch`: branch counter rates; `indicative`: rates the bank publishes as a guide, its own channels quote the binding rate."},"currencies":{"type":"integer","description":"Currencies the bank shows."},"observedAt":{"type":["string","null"],"format":"date-time","description":"The last successful read."},"sourceUpdatedAt":{"type":["string","null"],"format":"date-time","description":"The time the bank's page gives for its rates, when it gives one."}}},"BankFxRate":{"type":"object","required":["bank","bankName","channel","code","name","nameTr","unit","buying","selling","spread","spreadPct","changedAt","observedAt","stale"],"properties":{"bank":{"type":"string"},"code":{"type":"string","description":"ISO 4217."},"name":{"type":"string"},"unit":{"type":"integer","description":"The rates are TRY per this many units."},"stale":{"type":"boolean"},"buying":{"type":"number","description":"TRY the bank pays for one unit (you sell at this rate)."},"nameTr":{"type":"string"},"spread":{"type":"number","description":"selling − buying."},"channel":{"enum":["digital","branch","indicative"],"type":"string"},"selling":{"type":"number","description":"TRY the bank charges for one unit (you buy at this rate)."},"bankName":{"type":"string"},"changedAt":{"type":"string","format":"date-time","description":"When the bank's rate last moved (first seen at these values)."},"spreadPct":{"type":"number","description":"The spread as a percentage of the buying rate."},"observedAt":{"type":["string","null"],"format":"date-time","description":"The last successful read of this bank."}}},"FundDetail":{"allOf":[{"$ref":"#/components/schemas/Fund"},{"type":"object","required":["allocation","links","source","disclaimer"],"properties":{"links":{"type":"object","properties":{"tefas":{"type":"string","format":"uri"}}},"source":{"type":"string"},"allocation":{"type":"object","required":["date","items"],"properties":{"date":{"type":["string","null"],"format":"date"},"items":{"type":"array","items":{"type":"object","required":["asset","name","nameTr","share"],"properties":{"name":{"type":"string","examples":["Stock"]},"asset":{"type":"string","examples":["stocks"]},"share":{"type":"number","description":"% of the portfolio."},"nameTr":{"type":"string","examples":["Hisse Senedi"]}}},"description":"Asset classes with a non-zero share, largest first."}}},"disclaimer":{"type":"string"}}}]},"FxCurrency":{"type":"object","required":["code","name","nameTr","tcmb","ecb"],"properties":{"ecb":{"type":["object","null"],"properties":{"to":{"type":"string","format":"date"},"from":{"type":"string","format":"date"}}},"code":{"type":"string"},"name":{"type":"string"},"tcmb":{"type":["object","null"],"properties":{"to":{"type":"string","format":"date"},"from":{"type":"string","format":"date"}}},"nameTr":{"type":"string"}}},"HistoryDay":{"type":"object","required":["date","temperatureMean","temperatureMax","temperatureMin","precipitation","humidity","windSpeed"],"properties":{"date":{"type":"string","format":"date"},"humidity":{"type":["number","null"]},"windSpeed":{"type":["number","null"],"description":"m/s at 2 m"},"precipitation":{"type":["number","null"],"description":"mm per day"},"temperatureMax":{"type":["number","null"]},"temperatureMin":{"type":["number","null"]},"temperatureMean":{"type":["number","null"]}}},"NewsSource":{"type":"object","required":["id","name","nameTr","language","homepage","licence","articles","latestAt"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"nameTr":{"type":"string"},"licence":{"type":"string"},"articles":{"type":"integer"},"homepage":{"type":"string"},"language":{"type":"string"},"latestAt":{"type":["string","null"]}}},"PhoneCheck":{"type":"object","required":["input","valid","reasons","e164","national","type"],"properties":{"e164":{"type":["string","null"],"examples":["+905321234567"]},"type":{"enum":["mobile","landline","toll_free","shared_cost","single_number","premium",null],"type":["string","null"]},"input":{"type":"string"},"valid":{"type":"boolean"},"reasons":{"type":"array","items":{"enum":["format","not_turkish","length","unknown_range"],"type":"string"}},"national":{"type":["string","null"],"examples":["0532 123 45 67"]}}},"SupplyFlow":{"type":"object","required":["buyerProvince","supplierProvince","contractCount","amount","currency"],"properties":{"amount":{"type":["number","null"]},"currency":{"enum":["TRY"],"type":"string"},"buyerProvince":{"$ref":"#/components/schemas/ProcurementProvince"},"contractCount":{"type":["integer","null"]},"supplierProvince":{"$ref":"#/components/schemas/ProcurementProvince"}}},"TaxIdCheck":{"type":"object","required":["id","valid","reasons"],"properties":{"id":{"type":"string"},"valid":{"type":"boolean","description":"The check digit holds: a possible number, not proof that the taxpayer exists."},"reasons":{"type":"array","items":{"enum":["not_digits","length","checksum"],"type":"string"}}}},"BankFxPoint":{"type":"object","required":["at","buying","selling"],"properties":{"at":{"type":"string","format":"date-time","description":"When the new rate was first seen."},"buying":{"type":"number"},"selling":{"type":"number"}}},"CryptoAsset":{"type":"object","required":["id","slug","symbol","name","rank"],"properties":{"id":{"type":"integer","description":"CoinMarketCap id."},"name":{"type":"string","examples":["Bitcoin"]},"rank":{"type":"integer","description":"By market cap."},"slug":{"type":"string","examples":["bitcoin"]},"symbol":{"type":"string","examples":["BTC"]}}},"FundFounder":{"type":"object","required":["code","name","funds","aum","types"],"properties":{"aum":{"type":["number","null"],"description":"Their total value, TRY."},"code":{"type":"string"},"name":{"type":"string"},"funds":{"type":"integer","description":"Active funds."},"types":{"type":"array","items":{"type":"string"}}}},"GoldProduct":{"type":"object","required":["id","name","nameTr","grossGrams","karat","fineness","fineGrams"],"properties":{"id":{"type":"string","examples":["ceyrek"]},"name":{"type":"string","examples":["Quarter coin (çeyrek)"]},"karat":{"type":"integer"},"nameTr":{"type":"string","examples":["Çeyrek altın"]},"fineness":{"type":"number","description":"Fine-gold share: 22 karat = 22/24."},"fineGrams":{"type":"number","description":"Grams of fine gold."},"grossGrams":{"type":"number","description":"Weight, grams (Darphane specification for the coins)."}}},"HistoryHour":{"type":"object","required":["time","temperature","precipitation","humidity","windSpeed"],"properties":{"time":{"type":"string","format":"date-time"},"humidity":{"type":["number","null"]},"windSpeed":{"type":["number","null"]},"temperature":{"type":["number","null"]},"precipitation":{"type":["number","null"]}}},"NewsArticle":{"type":"object","required":["id","source","sourceName","url","publishedAt","language","originalTitle","titleTr","titleEn","summaryTr","summaryEn","category","tags","companies","countries","sentiment","importance","confident","model","summarizedAt"],"properties":{"id":{"type":"string","examples":["sec-1a2b3c4d5e6f7a8b"]},"url":{"type":"string","description":"The original document."},"tags":{"type":"array","items":{"type":"string"}},"model":{"type":"string","description":"The model that wrote the summary."},"source":{"enum":["fed","ecb","sec","resmi-gazete"],"type":"string"},"section":{"type":["string","null"],"description":"The source's own section (e.g. a Resmî Gazete heading, a Fed release type)."},"titleEn":{"type":"string"},"titleTr":{"type":"string"},"category":{"enum":["monetary-policy","macro-data","regulation","banking","capital-markets","corporate","earnings","m-and-a","management","debt","fiscal","trade","energy","other"],"type":"string"},"language":{"enum":["en","tr"],"type":"string","description":"The original document's language."},"companies":{"type":"array","items":{"type":"object","required":["name","ticker"],"properties":{"name":{"type":"string"},"ticker":{"type":["string","null"],"description":"Only for the SEC filer (from SEC's own list), never guessed."}}}},"confident":{"type":"boolean","description":"false when the document was unclear or a number in the summary could not be found in it: check the source."},"countries":{"type":"array","items":{"type":"string"},"description":"ISO 3166-1 alpha-2."},"sentiment":{"enum":["positive","negative","neutral","mixed"],"type":"string"},"summaryEn":{"type":"string"},"summaryTr":{"type":"string","description":"2–4 sentences, from the document only."},"importance":{"type":"integer","maximum":5,"minimum":1,"description":"1 routine … 5 market-moving."},"sourceName":{"type":"string"},"filingItems":{"type":["array","null"],"items":{"type":"string"},"description":"8-K items, e.g. \"2.02 Results of Operations and Financial Condition\"."},"publishedAt":{"type":"string","format":"date-time"},"summarizedAt":{"type":"string","format":"date-time"},"originalTitle":{"type":"string"}}},"PlaceLookup":{"type":"object","required":["location","country","subdivision","district","postalCode","nearestCity"],"properties":{"country":{"type":["object","null"],"required":["code","name","nameTr"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"nameTr":{"type":"string"}},"description":"The nearest city's country; null when no city of 1,000+ inhabitants is within 100 km."},"district":{"type":["object","null"],"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"description":"The nearest located postal place's district (Turkey), within 5 km."},"location":{"$ref":"#/components/schemas/Location"},"postalCode":{"type":["object","null"],"required":["postalCode","name","distanceKm"],"properties":{"name":{"type":"string"},"distanceKm":{"type":"number"},"postalCode":{"type":"string"}}},"nearestCity":{"type":["object","null"],"required":["id","name","population","distanceKm"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"distanceKm":{"type":"number"},"population":{"type":"integer"}}},"subdivision":{"type":["object","null"],"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"PostalPlace":{"type":"object","required":["postalCode","name","countryCode","district","subdivision","location"],"properties":{"name":{"type":"string","examples":["Firuzköy"],"description":"The place the code serves; in Turkey a neighbourhood (mahalle) or village. Spelled as the postal source publishes it, which often writes ı as i."},"district":{"type":["object","null"],"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"location":{"anyOf":[{"$ref":"#/components/schemas/Location"},{"type":"null"}],"description":"The place's own point; null when the source only locates the district."},"postalCode":{"type":"string","examples":["34310"]},"countryCode":{"type":"string","examples":["TR"]},"subdivision":{"type":["object","null"],"required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"Subdivision":{"type":"object","required":["id","code","countryCode","name","asciiName"],"properties":{"id":{"type":"string","examples":["TR.34"],"description":"Stable id, `<country>.<code>`. Not an ISO 3166-2 code."},"code":{"type":"string","examples":["34"]},"name":{"type":"string","examples":["İstanbul"]},"asciiName":{"type":"string","examples":["Istanbul"]},"countryCode":{"type":"string","examples":["TR"]}}},"CryptoGlobal":{"type":"object","required":["quote","totalMarketCap","totalVolume24h","btcDominance","ethDominance","lastUpdated","source","conversion"],"properties":{"quote":{"type":"string"},"source":{"type":"string"},"conversion":{"type":["object","null"]},"lastUpdated":{"type":["string","null"],"format":"date-time"},"btcDominance":{"type":["number","null"]},"ethDominance":{"type":["number","null"]},"defiMarketCap":{"type":["number","null"]},"totalMarketCap":{"type":["number","null"]},"totalVolume24h":{"type":["number","null"]},"activeExchanges":{"type":["integer","null"]},"stablecoinMarketCap":{"type":["number","null"]},"derivativesVolume24h":{"type":["number","null"]},"activeCryptocurrencies":{"type":["integer","null"]},"marketCapChangePercent24h":{"type":["number","null"]}}},"CryptoTicker":{"type":"object","required":["id","slug","symbol","name","rank","quote","price","marketCap","fullyDilutedMarketCap","volume24h","volumeChangePercent24h","changePercent1h","changePercent24h","changePercent7d","changePercent30d","dominance","circulatingSupply","totalSupply","maxSupply","lastUpdated"],"properties":{"id":{"type":"integer"},"name":{"type":"string"},"rank":{"type":"integer"},"slug":{"type":"string"},"price":{"type":["number","null"]},"quote":{"enum":["USD","EUR","TRY"],"type":"string"},"symbol":{"type":"string"},"dominance":{"type":["number","null"],"description":"Share of the total market cap, percent."},"marketCap":{"type":["number","null"]},"maxSupply":{"type":["number","null"]},"volume24h":{"type":["number","null"]},"lastUpdated":{"type":"string","format":"date-time"},"totalSupply":{"type":["number","null"]},"changePercent1h":{"type":["number","null"]},"changePercent7d":{"type":["number","null"]},"changePercent24h":{"type":["number","null"]},"changePercent30d":{"type":["number","null"]},"circulatingSupply":{"type":["number","null"]},"fullyDilutedMarketCap":{"type":["number","null"]},"volumeChangePercent24h":{"type":["number","null"]}}},"FundCategory":{"type":"object","required":["type","id","name","nameTr","funds"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"enum":["investment","pension","exchange-traded"],"type":"string"},"funds":{"type":"integer","description":"Active funds in the category."},"nameTr":{"type":"string"}}},"FxConversion":{"type":"object","required":["from","to","amount","result","rate","date","source","rateType"],"properties":{"to":{"type":"string"},"date":{"type":"string","format":"date","description":"The bulletin used."},"from":{"type":"string"},"rate":{"type":"number","description":"1 `from` in `to`."},"amount":{"type":"number"},"result":{"type":"number"},"source":{"enum":["tcmb","ecb"],"type":"string"},"rateType":{"enum":["mid","buying","selling","reference"],"type":"string"}}},"PrayerMethod":{"type":"object","required":["id","name","fajrAngle","ishaAngle","ishaIntervalMinutes"],"properties":{"id":{"type":"string","examples":["turkey"]},"name":{"type":"string"},"fajrAngle":{"type":"number"},"ishaAngle":{"type":["number","null"]},"ishaIntervalMinutes":{"type":["integer","null"],"description":"Yatsı a fixed time after Akşam (Umm al-Qura, Qatar), instead of an angle."}}},"TopAuthority":{"type":"object","required":["rank","name","contractCount","purchaseCount","amount","currency"],"properties":{"name":{"type":"string","examples":["DSİ 6. BÖLGE MÜDÜRLÜĞÜ"],"description":"The authority's name as recorded in EKAP."},"rank":{"type":"integer","maximum":10,"minimum":1},"amount":{"type":["number","null"]},"currency":{"enum":["TRY"],"type":"string"},"contractCount":{"type":["integer","null"],"description":"Tender contracts (method `tender`); null for `direct`."},"purchaseCount":{"type":["integer","null"],"description":"Direct purchases (method `direct`); null for `tender`."}}},"DailyForecast":{"type":"object","required":["date","temperatureMax","temperatureMin","precipitation","windSpeedMax","condition"],"properties":{"date":{"type":"string","format":"date"},"condition":{"$ref":"#/components/schemas/Condition"},"windSpeedMax":{"type":["number","null"]},"precipitation":{"type":"number","description":"mm over the day"},"temperatureMax":{"type":["number","null"]},"temperatureMin":{"type":["number","null"]}}},"FuturesMarket":{"type":"object","required":["code","name","nameTr","exchange","category","contractUnit","contractUnitTr","from","to"],"properties":{"to":{"type":["string","null"],"description":"The latest report held."},"code":{"type":"string","examples":["wheat-srw"]},"from":{"type":["string","null"],"description":"The first report held."},"name":{"type":"string","examples":["Wheat, soft red winter"]},"nameTr":{"type":"string","examples":["Buğday, yumuşak kırmızı kışlık (SRW)"]},"category":{"enum":["grains","oilseeds","softs","livestock","base-metals","precious-metals","energy","forest-products"],"type":"string"},"exchange":{"type":"string","examples":["CBOT"]},"contractUnit":{"type":"string","examples":["5,000 bushels"]},"contractUnitTr":{"type":"string","examples":["5.000 buşel"]}}},"MonthlyNormal":{"type":"object","required":["month","temperatureMean","temperatureHighest","temperatureLowest","precipitation","humidity","windSpeed"],"properties":{"month":{"type":"integer","maximum":12,"minimum":1},"humidity":{"type":["number","null"]},"windSpeed":{"type":["number","null"]},"precipitation":{"type":["number","null"],"description":"mm over the month"},"temperatureMean":{"type":["number","null"],"description":"Mean temperature of the month over 2001–2020, °C."},"temperatureLowest":{"type":["number","null"],"description":"Lowest hourly temperature of that month over 2001–2020 (an extreme, not an average low), °C."},"temperatureHighest":{"type":["number","null"],"description":"Highest hourly temperature of that month over 2001–2020 (an extreme, not an average high), °C."}}},"TopContractor":{"type":"object","required":["rank","name","province","contractCount","purchaseCount","amount","currency"],"properties":{"name":{"type":"string","description":"The contractor's legal name as recorded in EKAP (a joint venture lists its partners). No tax numbers."},"rank":{"type":"integer","maximum":10,"minimum":1},"amount":{"type":["number","null"],"description":"Contract value won; for `headquartered`, the firm's total public-contract revenue."},"currency":{"enum":["TRY"],"type":"string"},"province":{"anyOf":[{"$ref":"#/components/schemas/ProcurementProvince"},{"type":"null"}],"description":"The contractor's own province: known for `tender` and `headquartered`, null for `direct`."},"contractCount":{"type":["integer","null"]},"purchaseCount":{"type":["integer","null"]}}},"CommodityPoint":{"type":"object","required":["date","value"],"properties":{"date":{"type":"string","description":"YYYY-MM-DD (daily) or YYYY-MM (monthly)."},"value":{"type":"number"}}},"CurrentWeather":{"type":"object","required":["time","temperature","feelsLike","humidity","pressure","cloudCover","windSpeed","windDirection","condition","location","timezone","city","updatedAt","source"],"properties":{"city":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"countryCode":{"type":"string"}}},"time":{"type":"string","format":"date-time"},"source":{"type":"string"},"dewPoint":{"type":["number","null"],"description":"°C"},"humidity":{"type":["number","null"],"description":"%"},"location":{"$ref":"#/components/schemas/Location"},"pressure":{"type":["number","null"],"description":"hPa, at sea level"},"timezone":{"type":"string"},"windGust":{"type":["number","null"],"description":"m/s"},"condition":{"$ref":"#/components/schemas/Condition"},"feelsLike":{"type":["number","null"],"description":"°C"},"updatedAt":{"type":"string","format":"date-time","description":"When MET's model run was issued."},"windSpeed":{"type":["number","null"],"description":"m/s"},"cloudCover":{"type":["number","null"],"description":"%"},"temperature":{"type":["number","null"],"description":"°C"},"windDirection":{"type":["number","null"],"description":"Degrees the wind comes from."},"uvIndexClearSky":{"type":["number","null"]},"precipitationNextHour":{"type":["number","null"],"description":"mm"}}},"HourlyForecast":{"type":"object","required":["time","temperature","precipitation","windSpeed","condition"],"properties":{"time":{"type":"string","format":"date-time"},"humidity":{"type":["number","null"]},"condition":{"$ref":"#/components/schemas/Condition"},"feelsLike":{"type":["number","null"]},"windSpeed":{"type":["number","null"]},"cloudCover":{"type":["number","null"]},"temperature":{"type":["number","null"]},"precipitation":{"type":["number","null"],"description":"mm in the hour"},"windDirection":{"type":["number","null"]},"precipitationProbability":{"type":["number","null"],"description":"%"}}},"ProvinceSector":{"type":"object","required":["province","sector","tenderCount","totalAmount","localAmount","outsideAmount","localPercent","currency"],"properties":{"sector":{"$ref":"#/components/schemas/ProcurementSubject"},"currency":{"enum":["TRY"],"type":"string"},"province":{"$ref":"#/components/schemas/ProcurementProvince"},"localAmount":{"type":["number","null"],"description":"Won by suppliers from the same province."},"tenderCount":{"type":["integer","null"]},"totalAmount":{"type":["number","null"]},"localPercent":{"type":["number","null"]},"outsideAmount":{"type":["number","null"],"description":"Won by suppliers from other provinces."}}},"CommodityLatest":{"type":"object","required":["code","name","nameTr","category","unit","unitTr","currency","frequency","source","date","value","previousDate","previousValue","change","changePercent"],"properties":{"code":{"type":"string"},"date":{"type":"string","description":"YYYY-MM-DD for daily series, YYYY-MM for monthly ones."},"name":{"type":"string"},"unit":{"type":"string"},"value":{"type":"number"},"change":{"type":["number","null"],"description":"`value` − `previousValue`."},"nameTr":{"type":"string"},"source":{"type":"string"},"unitTr":{"type":"string"},"category":{"type":"string"},"currency":{"type":"string"},"frequency":{"enum":["daily","monthly"],"type":"string"},"previousDate":{"type":["string","null"]},"changePercent":{"type":["number","null"],"description":"Percent, 2 decimals."},"previousValue":{"type":["number","null"]}}},"DegreeDaysMonth":{"type":"object","required":["month","heatingDegreeDays","coolingDegreeDays","daysMissing"],"properties":{"month":{"type":"string","examples":["2025-01"]},"daysMissing":{"type":"integer"},"coolingDegreeDays":{"type":"number"},"heatingDegreeDays":{"type":"number"}}},"NationalIdCheck":{"type":"object","required":["id","valid","reasons","kind"],"properties":{"id":{"type":"string"},"kind":{"enum":["citizen","foreign",null],"type":["string","null"],"description":"`foreign` for a YKN (starts with 99)."},"valid":{"type":"boolean","description":"The checksum holds: a possible number, not proof that the person exists."},"reasons":{"type":"array","items":{"enum":["not_digits","length","leading_zero","checksum"],"type":"string"}}}},"CompetitionIndex":{"type":"object","required":["dimension","subject","period","tenderCount","singleBidPercent","singleLot","averageLotCount","averageDiscountPercent","coveragePercent"],"properties":{"period":{"type":"string","examples":["2024"],"description":"A year, or `all` for every year pooled (not an average of the years)."},"subject":{"$ref":"#/components/schemas/ProcurementSubject"},"dimension":{"enum":["overall","province","sector","procedure","authority-type"],"type":"string"},"singleLot":{"type":["object","null"],"properties":{"tenderCount":{"type":["integer","null"]},"singleBidPercent":{"type":["number","null"]}},"description":"The same for single-lot tenders only."},"tenderCount":{"type":["integer","null"]},"averageLotCount":{"type":["number","null"]},"coveragePercent":{"type":["number","null"],"description":"Share of tenders whose result details were available, percent."},"singleBidPercent":{"type":["number","null"],"description":"Share of tenders with a single bid, percent."},"averageDiscountPercent":{"type":["number","null"],"description":"Average discount of the winning bid against the estimated cost (tenzilat), percent."}},"description":"How contested tenders were: the share won with a single valid bid and the average discount against the authority's estimated cost."},"CryptoPricePoint":{"type":"object","required":["time","price","marketCap","volume24h"],"properties":{"time":{"type":"string","format":"date-time"},"price":{"type":["number","null"]},"marketCap":{"type":["number","null"]},"volume24h":{"type":["number","null"]}}},"FuturesPositions":{"type":"object","required":["code","name","nameTr","exchange","category","contractUnit","contractUnitTr","date","openInterest","producerMerchant","swapDealers","managedMoney","otherReportables","nonReportables","previousDate","changes"],"properties":{"code":{"type":"string"},"date":{"type":"string","format":"date"},"name":{"type":"string"},"nameTr":{"type":"string"},"changes":{"type":["object","null"],"properties":{"openInterest":{"type":"integer"},"swapDealersNet":{"type":"integer"},"managedMoneyNet":{"type":"integer"},"nonReportablesNet":{"type":"integer"},"otherReportablesNet":{"type":"integer"},"producerMerchantNet":{"type":"integer"}}},"category":{"type":"string"},"exchange":{"type":"string"},"swapDealers":{"type":"object","required":["long","short","spread","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"},"spread":{"type":"integer"}}},"contractUnit":{"type":"string"},"managedMoney":{"type":"object","required":["long","short","spread","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"},"spread":{"type":"integer"}}},"openInterest":{"type":"integer"},"previousDate":{"type":["string","null"],"description":"The report the changes compare with (a week earlier)."},"contractUnitTr":{"type":"string"},"nonReportables":{"type":"object","required":["long","short","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"}}},"otherReportables":{"type":"object","required":["long","short","spread","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"},"spread":{"type":"integer"}}},"producerMerchant":{"type":"object","required":["long","short","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"}}}},"description":"One market's Commitments of Traders report, in contracts: positions as of `date` (a Tuesday)."},"HistoryParameter":{"type":"object","required":["id","unit","description"],"properties":{"id":{"type":"string"},"unit":{"type":"string"},"description":{"type":"string"}}},"LocalizationIndex":{"type":"object","required":["dimension","subject","period","contractCount","localCountPercent","localAmountPercent","coveragePercent"],"properties":{"period":{"type":"string"},"subject":{"$ref":"#/components/schemas/ProcurementSubject"},"dimension":{"enum":["overall","province","sector"],"type":"string"},"contractCount":{"type":["integer","null"]},"coveragePercent":{"type":["number","null"]},"localCountPercent":{"type":["number","null"],"description":"By number of contracts, percent."},"localAmountPercent":{"type":["number","null"],"description":"By contract value, percent."}},"description":"How much public buying stays in the province: contracts won by suppliers from the buying authority's own province."},"ConcentrationIndex":{"type":"object","required":["dimension","subject","period","contractCount","firmCount","cr1Percent","cr4Percent","cr10Percent","hhi"],"properties":{"hhi":{"type":["number","null"]},"period":{"type":"string"},"subject":{"$ref":"#/components/schemas/ProcurementSubject"},"dimension":{"enum":["overall","province","sector"],"type":"string"},"firmCount":{"type":["integer","null"]},"cr1Percent":{"type":["number","null"]},"cr4Percent":{"type":["number","null"]},"cr10Percent":{"type":["number","null"]},"contractCount":{"type":["integer","null"]}},"description":"How concentrated the winners are: the largest 1, 4 and 10 contractors' share of contract value, and the Herfindahl–Hirschman index (0–10,000)."},"ProcurementDataset":{"type":"object","required":["id","name","version","rowCount","citation","loadedAt"],"properties":{"id":{"type":"string","examples":["veri_rekabet_endeksi"]},"name":{"type":["string","null"],"examples":["Rekabet Endeksi"]},"version":{"type":["string","null"],"examples":["v2026-W40"]},"citation":{"type":["string","null"],"description":"The citation the source asks for."},"loadedAt":{"type":["string","null"],"format":"date-time"},"rowCount":{"type":"integer"}}},"ProcurementSubject":{"type":"object","required":["id","name","nameEn"],"properties":{"id":{"type":"string","examples":["34"]},"name":{"type":"string","examples":["İstanbul"],"description":"Turkish."},"nameEn":{"type":["string","null"],"description":"English; null where we have no translation (rare tender procedures)."}},"description":"What a row is about: a province (`id` is its licence-plate code, `01`–`81`), a sector, an authority type or a tender procedure; `all` for the whole country; `unspecified` where the source records none."},"ProcurementProvince":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","examples":["06"],"description":"Licence-plate code, `01`–`81`, or `unspecified`."},"name":{"type":"string","examples":["Ankara"]}}},"FuturesPositionsPoint":{"type":"object","required":["date","openInterest","producerMerchant","swapDealers","managedMoney","otherReportables","nonReportables"],"properties":{"date":{"type":"string","format":"date"},"swapDealers":{"type":"object","required":["long","short","spread","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"},"spread":{"type":"integer"}}},"managedMoney":{"type":"object","required":["long","short","spread","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"},"spread":{"type":"integer"}}},"openInterest":{"type":"integer"},"nonReportables":{"type":"object","required":["long","short","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"}}},"otherReportables":{"type":"object","required":["long","short","spread","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"},"spread":{"type":"integer"}}},"producerMerchant":{"type":"object","required":["long","short","net"],"properties":{"net":{"type":"integer","description":"long − short."},"long":{"type":"integer"},"short":{"type":"integer"}}}}},"DirectProcurementIndex":{"type":"object","required":["dimension","subject","period","purchaseCount","medianAmount","meanAmount","totalAmount","p95Amount","p99Amount","maxAmount","maxSharePercent","currency"],"properties":{"period":{"type":"string"},"subject":{"$ref":"#/components/schemas/ProcurementSubject"},"currency":{"enum":["TRY"],"type":"string"},"dimension":{"enum":["overall","province","sector","authority-type"],"type":"string"},"maxAmount":{"type":["number","null"]},"p95Amount":{"type":["number","null"]},"p99Amount":{"type":["number","null"]},"meanAmount":{"type":["number","null"]},"totalAmount":{"type":["number","null"]},"medianAmount":{"type":["number","null"]},"purchaseCount":{"type":["integer","null"]},"maxSharePercent":{"type":["number","null"],"description":"The largest purchase's share of the total, percent."}},"description":"Direct procurement (doğrudan temin, 4734 article 22): purchase counts and amount distribution, nominal TRY."}},"responses":{"BadGateway":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"examples":{"upstream_auth":{"value":{"type":"https://servicebox.io/problems/upstream_auth","title":"Bad Gateway","detail":"The upstream refused ServiceBox's credential","status":502}},"upstream_error":{"value":{"type":"https://servicebox.io/problems/upstream_error","title":"Bad Gateway","detail":"The upstream failed (500)","status":502}}}}},"description":"`upstream_error`: the data source failed. `upstream_auth`: the data source refused ServiceBox's own credential; not your key."},"Unauthorized":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://servicebox.io/problems/unauthorized","title":"Unauthorized","detail":"Missing or invalid API key/bearer token","status":401}}},"description":"Missing or invalid credentials."},"GatewayTimeout":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://servicebox.io/problems/upstream_timeout","title":"Gateway Timeout","detail":"Upstream request timed out","status":504}}},"description":"The data source timed out."},"PaymentRequired":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://servicebox.io/problems/payment_required","title":"Payment Required","detail":"Insufficient credits for this request","status":402}}},"description":"Insufficient credits."},"TooManyRequests":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://servicebox.io/problems/rate_limited","title":"Too Many Requests","detail":"Rate limit exceeded, retry after backing off","status":429}}},"description":"Rate limit exceeded."}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"},"apiKeyQuery":{"in":"query","name":"apikey","type":"apiKey"}}}}