{"info":{"title":"ServiceBox — Public Procurement Statistics API","version":"1.0.0","description":"Türkiye's public procurement in aggregate, from EKAP's public tender and direct-procurement records: competition (single-bid share, discounts), direct procurement, local-supplier share and market concentration per year since 2019 for the whole country and per province, sector, tender procedure and authority type; tender volume per province and sector; supply flows between provinces; and each province's and sector's top-10 authorities and contractors. Updated weekly. Amounts are nominal TRY. Aggregates only: no individual tenders, no tax numbers. 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: İhaleGlobal Araştırma Enstitüsü, ihaleglobal.com/arastirma, licensed under CC BY 4.0; aggregated from the Public Procurement Authority's EKAP records. Sector classification and aggregates are İhaleGlobal's; English names, province codes and response shapes are ServiceBox's. Statistical summaries for decision support, not official records."},"paths":{"/v1/public-procurement/sectors":{"get":{"summary":"List sectors","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProcurementSubject"}},"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":"The 43 sectors tenders are classified into, with ids and English names. Free.","operationId":"listProcurementSectors","x-sbx-credits":0}},"/v1/public-procurement/datasets":{"get":{"summary":"Source datasets and release","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"licence":{"type":"string"},"version":{"type":["string","null"]},"loadedAt":{"type":["string","null"]},"attribution":{"type":"string"},"sourceUpdatedAt":{"type":["string","null"]}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/ProcurementDataset"}},"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 datasets."},"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 weekly release served, when it was loaded, and each source dataset with its row count and the citation its publisher asks for. Free.","operationId":"listProcurementDatasets","x-sbx-credits":0}},"/v1/public-procurement/supply-flows":{"get":{"summary":"Supply flows between provinces","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"version":{"type":["string","null"]},"currency":{"type":"string"},"buyerProvince":{"type":["object","null"]},"supplierProvince":{"type":["object","null"]}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/SupplyFlow"}},"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 flows."},"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":"buyerProvince","schema":{"type":"string"},"required":false,"description":"The buying authorities' province: plate code or name."},{"in":"query","name":"supplierProvince","schema":{"type":"string"},"required":false,"description":"The suppliers' province: plate code or name."},{"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":"Contracts (count and value, nominal TRY) from authorities in one province to suppliers based in another or the same province. Largest first.","operationId":"listSupplyFlows","x-sbx-credits":1}},"/v1/public-procurement/authority-types":{"get":{"summary":"List authority types","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProcurementSubject"}},"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 authority types."},"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 kinds of buying authority (ministries, municipalities, universities, state-owned enterprises…). Free.","operationId":"listAuthorityTypes","x-sbx-credits":0}},"/v1/public-procurement/top-authorities":{"get":{"summary":"Top-10 buying authorities","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"method":{"type":"string"},"sector":{"type":["object","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"province":{"type":["object","null"]}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/TopAuthority"}},"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 ranking."},"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":"province","schema":{"type":"string"},"required":false,"description":"A province's plate code or name. Give this or `sector`."},{"in":"query","name":"sector","schema":{"type":"string"},"required":false,"description":"A sector id or name. Give this or `province`."},{"in":"query","name":"method","schema":{"enum":["tender","direct"],"type":"string","default":"tender"},"required":false,"description":"`tender` (default) or, for a province, `direct` (direct procurement)."},{"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 ten public authorities that awarded the most in one province (tenders or direct procurement) or one sector (tenders), by value.","operationId":"listTopAuthorities","x-sbx-credits":1}},"/v1/public-procurement/top-contractors":{"get":{"summary":"Top-10 contractors","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"method":{"type":"string"},"sector":{"type":["object","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"province":{"type":["object","null"]}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/TopContractor"}},"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 ranking."},"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":"province","schema":{"type":"string"},"required":false,"description":"A province's plate code or name. Give this or `sector`."},{"in":"query","name":"sector","schema":{"type":"string"},"required":false,"description":"A sector id or name. Give this or `province`."},{"in":"query","name":"method","schema":{"enum":["tender","direct","headquartered"],"type":"string","default":"tender"},"required":false,"description":"`tender` (default); for a province also `direct` or `headquartered`."},{"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 ten contractors that won the most in one province or sector (tenders), in one province by direct procurement (`direct`), or the ten firms based in a province with the most public-contract revenue anywhere (`headquartered`). Legal names as recorded in EKAP; no tax numbers.","operationId":"listTopContractors","x-sbx-credits":1}},"/v1/public-procurement/province-sectors":{"get":{"summary":"Volume by province and sector","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"sort":{"type":"string"},"sector":{"type":["object","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"province":{"type":["object","null"]}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/ProvinceSector"}},"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 cells."},"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":"province","schema":{"type":"string"},"required":false,"description":"A province's plate code or name."},{"in":"query","name":"sector","schema":{"type":"string"},"required":false,"description":"A sector id from /public-procurement/sectors, or its Turkish or English name."},{"in":"query","name":"sort","schema":{"enum":["amount","tenders"],"type":"string","default":"amount"},"required":false,"description":"`amount` (default) or `tenders`, both descending."},{"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":"Tender volume (count and value, nominal TRY) for each province and sector, with the value won by suppliers from the same province and from elsewhere. Largest first.","operationId":"listProvinceSectors","x-sbx-credits":1}},"/v1/public-procurement/competition-indices":{"get":{"summary":"Competition","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"period":{"type":["string","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"dimension":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/CompetitionIndex"}},"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 index rows."},"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":"dimension","schema":{"enum":["overall","province","sector","procedure","authority-type"],"type":"string","default":"overall"},"required":false,"description":"What to break down by. Default: `overall` (the whole country)."},{"in":"query","name":"subject","schema":{"type":"string"},"required":false,"description":"One subject of the dimension: a province's plate code or name (34, İstanbul), a sector id or name, an authority-type id, or a procedure id. Default: every subject."},{"in":"query","name":"period","schema":{"type":"string"},"required":false,"description":"A year (2019–) or `all` (every year pooled). Default: every year and `all`."},{"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":"Tender competition per year: the number of tenders, the share won with a single bid (overall and for single-lot tenders), average lots and the average discount against the estimated cost — for the whole country or per province, sector, tender procedure or authority type. Robust for 2019–2024; the source's 2025–2026 result details are partial.","operationId":"listCompetitionIndices","x-sbx-credits":1}},"/v1/public-procurement/localization-indices":{"get":{"summary":"Local suppliers","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"period":{"type":["string","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"dimension":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/LocalizationIndex"}},"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 index rows."},"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":"dimension","schema":{"enum":["overall","province","sector"],"type":"string","default":"overall"},"required":false,"description":"What to break down by. Default: `overall` (the whole country)."},{"in":"query","name":"subject","schema":{"type":"string"},"required":false,"description":"One subject of the dimension: a province's plate code or name (34, İstanbul), a sector id or name, an authority-type id, or a procedure id. Default: every subject."},{"in":"query","name":"period","schema":{"type":"string"},"required":false,"description":"A year (2019–) or `all` (every year pooled). Default: every year and `all`."},{"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 share of contracts, by count and by value, won by suppliers from the buying authority's own province, per year — for the whole country or per province or sector.","operationId":"listLocalizationIndices","x-sbx-credits":1}},"/v1/public-procurement/concentration-indices":{"get":{"summary":"Market concentration","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"period":{"type":["string","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"dimension":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/ConcentrationIndex"}},"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 index rows."},"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":"dimension","schema":{"enum":["overall","province","sector"],"type":"string","default":"overall"},"required":false,"description":"What to break down by. Default: `overall` (the whole country)."},{"in":"query","name":"subject","schema":{"type":"string"},"required":false,"description":"One subject of the dimension: a province's plate code or name (34, İstanbul), a sector id or name, an authority-type id, or a procedure id. Default: every subject."},{"in":"query","name":"period","schema":{"type":"string"},"required":false,"description":"A year (2019–) or `all` (every year pooled). Default: every year and `all`."},{"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":"How concentrated contract winners are, per year: contract and firm counts, the largest 1, 4 and 10 contractors' share of value and the Herfindahl–Hirschman index — for the whole country or per province or sector.","operationId":"listConcentrationIndices","x-sbx-credits":1}},"/v1/public-procurement/direct-procurement-indices":{"get":{"summary":"Direct procurement","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["items","next_cursor","total","meta"],"properties":{"meta":{"type":"object","properties":{"period":{"type":["string","null"]},"version":{"type":["string","null"]},"currency":{"type":"string"},"dimension":{"type":"string"}}},"items":{"type":"array","items":{"$ref":"#/components/schemas/DirectProcurementIndex"}},"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 index rows."},"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":"dimension","schema":{"enum":["overall","province","sector","authority-type"],"type":"string","default":"overall"},"required":false,"description":"What to break down by. Default: `overall` (the whole country)."},{"in":"query","name":"subject","schema":{"type":"string"},"required":false,"description":"One subject of the dimension: a province's plate code or name (34, İstanbul), a sector id or name, an authority-type id, or a procedure id. Default: every subject."},{"in":"query","name":"period","schema":{"type":"string"},"required":false,"description":"A year (2019–) or `all` (every year pooled). Default: every year and `all`."},{"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":"Direct procurement (doğrudan temin) per year: purchase count and the amount distribution (median, mean, total, 95th and 99th percentile, largest and its share), nominal TRY — for the whole country or per province, sector or authority type. 2025 is the reference year; earlier years are incomplete in the source.","operationId":"listDirectProcurementIndices","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"}}}}},"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"}}},"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)."},"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"}}}},"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"]}}},"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"]}}},"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"}}}}