{"info":{"title":"ServiceBox — Card Campaigns & Deals API","version":"1.0.0","description":"The current campaigns of Turkish credit-card programs — Wings, World, Bonus, Maximum and Axess — read once a day from each program's public campaign page: installment offers, discounts, points and prize draws, with the merchant, start and end dates, the amounts in the headline, sector tags (grocery, fuel, fashion, travel, dining, …) and audience segments (student, traveler, driver, homemaker, …). Ended campaigns stay a week as `status=ended`. Content is the programs' own Turkish text. 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: the public campaign pages of Wings (Şekerbank), World (Yapı Kredi), Bonus (Garanti BBVA), Maximum (İşbank) and Axess (Akbank), read once a day; every campaign links to its page at the program's site, which is the authoritative statement of its terms. Sector and segment tags are ServiceBox's. ServiceBox is not affiliated with the banks; informational, not financial advice."},"paths":{"/v1/deals/cards":{"get":{"summary":"List card programs","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"note":{"type":"string"},"source":{"type":"string"},"disclaimer":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/DealCard"}},"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 card programs."},"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 five card programs covered — Wings (Şekerbank), World (Yapı Kredi), Bonus (Garanti BBVA), Maximum (İşbank), Axess (Akbank) — with their active campaign count, when each program's page was last read completely (`lastUpdated`), and the attribution to show. Free.","operationId":"listCards","x-sbx-credits":0}},"/v1/deals/sectors":{"get":{"summary":"List sectors","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"note":{"type":"string"},"source":{"type":"string"},"disclaimer":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/DealSector"}},"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 sectors."},"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":"What a campaign is for — grocery, fuel & automotive, fashion, electronics, home, travel, dining, education, health, entertainment, online shopping, insurance, bills & taxes, card services, other — in English and Turkish, with active counts. Free.","operationId":"listSectors","x-sbx-credits":0}},"/v1/deals/segments":{"get":{"summary":"List audience segments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"note":{"type":"string"},"source":{"type":"string"},"disclaimer":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/DealSegment"}},"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 segments."},"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":"Who a campaign is for — students, parents, travellers, people spending abroad, car owners, home makers, fashion and tech shoppers, online shoppers, diners, grocery shoppers, culture, health & sport, pet owners, football fans, bill payers, mobile/QR payers, new card applicants — in English and Turkish, with active counts. Free.","operationId":"listSegments","x-sbx-credits":0}},"/v1/deals/campaigns":{"get":{"summary":"List card campaigns","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"q":{"type":"string"},"card":{"type":"array","items":{"type":"string"}},"brand":{"type":"string"},"reward":{"type":"array","items":{"type":"string"}},"sector":{"type":"array","items":{"type":"string"}},"source":{"type":"string"},"status":{"type":"string"},"segment":{"type":"array","items":{"type":"string"}},"updatedAt":{"type":["string","null"]},"disclaimer":{"type":"string"},"ending_within":{"type":"integer"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/Deal"}},"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 campaigns."},"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":"card","schema":{"type":"string"},"required":false,"description":"Comma-separated card program ids from /deals/cards, e.g. bonus,axess."},{"in":"query","name":"sector","schema":{"type":"string"},"required":false,"description":"Comma-separated sector ids from /deals/sectors (any of), e.g. grocery,dining."},{"in":"query","name":"segment","schema":{"type":"string"},"required":false,"description":"Comma-separated segment ids from /deals/segments (any of), e.g. student,traveler."},{"in":"query","name":"reward","schema":{"type":"string"},"required":false,"description":"Comma-separated reward types (any of): installment, discount, points, draw, other."},{"in":"query","name":"brand","schema":{"type":"string"},"required":false,"description":"A merchant name as it appears in `brand`, e.g. Trendyol (case-insensitive)."},{"in":"query","name":"q","schema":{"type":"string"},"required":false,"description":"Words to find at the start of words of the title, brand or summary; Turkish letters optional: `market`, `akaryakit`, `trendyol`."},{"in":"query","name":"status","schema":{"enum":["active","ended","all"],"type":"string","default":"active"},"required":false,"description":"`active` (default), `ended` (ended within the last 7 days) or `all`."},{"in":"query","name":"ending_within","schema":{"type":"integer","maximum":60,"minimum":1},"required":false,"description":"Only active campaigns ending within this many days (1–60), soonest first."},{"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":"The current campaigns of Turkish credit-card programs — Wings, World, Bonus, Maximum and Axess — read daily from the programs' public campaign pages: installment offers, discounts, points (chip-para, Bonus, Worldpuan, MaxiPuan, miles) and prize draws, with the merchant, dates, amounts parsed from the headline, our sector tags and audience segments (student, traveler, driver, homemaker, …). Filter by `card`, `sector`, `segment`, `reward`, `brand`, a text search `q` (Turkish letters optional), and `ending_within` days; `status=ended` lists what ended in the last week. Soonest to end first. Use when the user asks what campaigns, discounts, installment offers or points their card has, for a shop or brand, for a kind of spending (market, fuel, travel, clothing), or for a kind of person; link the `url` for the terms — the program's page is authoritative.","operationId":"listCampaigns","x-sbx-credits":1}},"/v1/deals/campaigns/{id}":{"get":{"summary":"Get a campaign","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deal"}}},"headers":{"ETag":{"schema":{"type":"string"}}},"description":"The campaign."},"304":{"description":"Not modified."},"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":"id","schema":{"type":"string"},"required":true,"description":"A campaign id, `<card>:<slug>`."},{"in":"header","name":"If-None-Match","schema":{"type":"string"},"required":false,"description":"An ETag from a previous answer; 304 while unchanged."}],"description":"One campaign by its id from /deals/campaigns, e.g. bonus:bauhaus-yapi-taksit-kampanyasi. Ended campaigns stay for 7 days, then 404.","operationId":"getCampaign","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"}}}}},"Deal":{"type":"object","required":["id","source","sourceType","card","cardTypes","title","url","sectors","sourceSectors","reward","rewards","segments","status","firstSeen","lastSeen"],"properties":{"id":{"type":"string","examples":["bonus:bauhaus-yapi-taksit-kampanyasi"],"description":"`<card>:<slug>`, stable for the campaign's life."},"url":{"type":"string","description":"The campaign page at the program's site — the authoritative terms."},"card":{"type":"object","required":["id","name","bank"],"properties":{"id":{"type":"string"},"bank":{"type":"string"},"name":{"type":"string"}}},"brand":{"type":["string","null"],"examples":["Bauhaus"],"description":"The merchant, when the title or the program names one."},"title":{"type":"string","examples":["Bauhaus'ta vade farksız 6 taksit!"],"description":"The campaign's headline, in Turkish, as the program writes it."},"reward":{"enum":["installment","discount","points","draw","other"],"type":"string","description":"The primary reward type."},"source":{"type":"string","examples":["bonus"],"description":"The card program id (/deals/cards)."},"status":{"enum":["active","ended"],"type":"string"},"endDate":{"type":["string","null"],"description":"YYYY-MM-DD, when known; a campaign past it is `ended`."},"endedAt":{"type":["string","null"],"description":"When it was marked ended (ISO 8601); null while active."},"percent":{"type":["number","null"],"description":"The percentage in the headline, e.g. 20 for \"%20 indirim\"."},"rewards":{"type":"array","items":{"type":"string"},"description":"Every reward type the campaign offers, primary first."},"sectors":{"type":"array","items":{"$ref":"#/components/schemas/DealSector"},"description":"Our sectors, the primary first (/deals/sectors)."},"summary":{"type":["string","null"],"description":"The program's short description, when it gives one."},"imageUrl":{"type":["string","null"]},"lastSeen":{"type":"string","description":"The last read that listed it (ISO 8601)."},"segments":{"type":"array","items":{"type":"string"},"description":"Audience segments (/deals/segments): student, traveler, driver, …"},"amountTry":{"type":["number","null"],"description":"The TRY amount in the headline (the total when several), e.g. 300 for \"300 TL chip-para\"; null when none."},"cardTypes":{"type":"array","items":{"type":"string"},"description":"The program's own sub-card slugs the campaign names (\"wings-black\", \"bonus-genc\"); empty when it does not say."},"firstSeen":{"type":"string","description":"When ServiceBox first saw the campaign (ISO 8601)."},"startDate":{"type":["string","null"],"description":"YYYY-MM-DD, when known."},"sourceType":{"enum":["card-program"],"type":"string"},"installments":{"type":["integer","null"],"description":"The number of installments in the headline."},"sourceSectors":{"type":"array","items":{"type":"string"},"description":"The program's own sector labels, untouched."}}},"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"}}}}},"DealCard":{"type":"object","required":["id","name","bank","url","campaigns","lastUpdated","attribution"],"properties":{"id":{"type":"string","examples":["bonus"],"description":"The card program id, used as `card` and in campaign ids."},"url":{"type":"string","description":"The program's own campaign page."},"bank":{"type":"string","examples":["Garanti BBVA"]},"name":{"type":"string","examples":["Bonus"]},"campaigns":{"type":"integer","description":"Active campaigns."},"attribution":{"type":"string"},"lastUpdated":{"type":["string","null"],"description":"When the program's page was last read completely (ISO 8601); null before the first read."}}},"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"}}},"Nutrient":{"type":"object","required":["key","name","nameTr","unit","group","inList"],"properties":{"key":{"type":"string","examples":["energyKcal"]},"name":{"type":"string"},"unit":{"enum":["kcal","kJ","g","mg","µg"],"type":"string"},"group":{"type":"string"},"inList":{"type":"boolean","description":"Whether lists carry it (one food carries every nutrient)."},"nameTr":{"type":"string"}}},"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."}}},"DealSector":{"type":"object","required":["id","name","nameTr"],"properties":{"id":{"type":"string","examples":["grocery"]},"name":{"type":"string","examples":["Grocery & food"]},"nameTr":{"type":"string","examples":["Market & gıda"]},"campaigns":{"type":"integer","description":"Active campaigns in this sector (a campaign can be in several sectors, so counts overlap)."}}},"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"]}}},"DealSegment":{"type":"object","required":["id","name","nameTr"],"properties":{"id":{"type":"string","examples":["student"]},"name":{"type":"string","examples":["Students & young"]},"nameTr":{"type":"string","examples":["Öğrenci & genç"]},"campaigns":{"type":"integer","description":"Active campaigns carrying this segment (counts overlap)."}}},"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."}}},"NutritionFood":{"type":"object","required":["id","name","nameTr","commonName","commonNameTr","category","per100g"],"properties":{"id":{"type":"integer","examples":[170457],"description":"USDA FoodData Central id."},"name":{"type":"string","examples":["Tomatoes, red, ripe, raw, year round average"],"description":"USDA's description (English)."},"nameTr":{"type":["string","null"],"examples":["Domates, kırmızı, olgun, çiğ, yıllık ortalama"],"description":"Turkish description."},"per100g":{"type":"object","examples":[{"fat":0.2,"salt":0.0125,"fiber":1.2,"sugars":2.63,"protein":0.88,"energyKcal":18,"carbohydrate":3.89}],"description":"Amounts per 100 g: energyKcal, protein, fat, carbohydrate, sugars, fiber and salt in lists; every nutrient of /nutrition/nutrients for one food. A nutrient that was not measured is absent.","additionalProperties":{"type":"number"}},"category":{"type":"object","required":["id","name","nameTr"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"nameTr":{"type":"string"}}},"commonName":{"type":["string","null"],"examples":["tomato"],"description":"Everyday English name."},"commonNameTr":{"type":["string","null"],"examples":["domates"],"description":"Everyday Turkish name."}}},"NutritionItem":{"type":"object","required":["query","grams","food","nutrients"],"properties":{"food":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"nameTr":{"type":["string","null"]}}},"grams":{"type":"number"},"query":{"type":"string"},"nutrients":{"type":"object","description":"Amounts in this item's grams.","additionalProperties":{"type":"number"}}}},"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."},"NutritionCategory":{"type":"object","required":["id","name","nameTr","foods"],"properties":{"id":{"type":"string","examples":["vegetables"]},"name":{"type":"string"},"foods":{"type":"integer"},"nameTr":{"type":"string"}}},"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."},"NutritionFoodDetail":{"allOf":[{"$ref":"#/components/schemas/NutritionFood"},{"type":"object","properties":{"note":{"type":"string"},"source":{"type":"string"},"usdaNdb":{"type":["string","null"]},"portions":{"type":"array","items":{"type":"object","required":["amount","unit","grams"],"properties":{"unit":{"type":"string","examples":["medium whole (2-3/5\" dia)"]},"grams":{"type":"number","examples":[123]},"amount":{"type":"number"},"unitTr":{"type":["string","null"],"examples":["orta boy, bütün (yaklaşık 6,5 cm çap)"]}}},"description":"Household measures and their weight."},"sourceUrl":{"type":"string"},"synonymsTr":{"type":"array","items":{"type":"string"}}}}]},"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"}}}}