{"openapi":"3.0.0","paths":{"/TomanApi/health":{"get":{"operationId":"TomanApiController_health","summary":"Health check for TomanApi module","parameters":[],"responses":{"200":{"description":""},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/Payment/token":{"get":{"operationId":"TomanApiController_accountInfo","summary":"Account information endpoint","parameters":[],"responses":{"200":{"description":""},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/Token/info":{"get":{"operationId":"TomanApiController_tokenInfo","summary":"Get subscription info, usage stats, and remaining limits by API key","parameters":[],"responses":{"200":{"description":"Subscription information with usage statistics","content":{"application/json":{"schema":{"example":{"subscription":{"app":"Toman","plan":"Premium","status":"ACTIVE","billingPeriod":"MONTHLY","price":"99.00","startDate":"2025-10-29","endDate":"2025-11-29","usage":{"dailyUsed":150,"dailyLimit":1000,"dailyRemaining":850,"monthlyUsed":4500,"monthlyLimit":30000,"monthlyRemaining":25500,"requestsPerSecond":10},"lastRequestAt":"2025-10-29T12:30:45.000Z"}}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRatesArchive":{"get":{"operationId":"TomanApiController_FullRatesArchivefindAll","summary":"Get all FullRatesArchive","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","description":"Search in name, title, description, url","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TmnRateArchive"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRatesArchive/from-to-dates":{"get":{"operationId":"TomanApiController_FullRatesArchivegetFromAndToDates","summary":"Get FullRatesArchive between two dates","parameters":[{"name":"fromDate","required":true,"in":"query","example":"2025-07-01","description":"Start date (inclusive)","schema":{"type":"string"}},{"name":"toDate","required":true,"in":"query","example":"2025-07-26","description":"End date (inclusive)","schema":{"type":"string"}}],"responses":{"200":{"description":"List of FullRatesArchive entities between fromDate and toDate","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TmnRateArchive"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRatesArchive/closest-date":{"get":{"operationId":"TomanApiController_FullRatesArchivegetClosestByDate","summary":"Get closest FullRatesArchive record to a given date and time","parameters":[{"name":"date","required":true,"in":"query","example":"2025-07-26T12:30:00","description":"Target date and time (ISO string)","schema":{"type":"string"}}],"responses":{"200":{"description":"Closest FullRatesArchive entity to the given date and time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TmnRateArchive"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRatesArchive{id}":{"get":{"operationId":"TomanApiController_FullRatesArchivefindOne","summary":"Get one FullRatesArchive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TmnRateArchive"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRates":{"get":{"operationId":"TomanApiController_FullRatesfindAll","summary":"Get all FullRates","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","description":"Search in name, title, description, url","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TmnRates"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRates{id}":{"get":{"operationId":"TomanApiController_FullRatesfindOne","summary":"Get one FullRates","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TmnRates"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FullRates/symbol/{symbol}":{"get":{"operationId":"TomanApiController_FullRatesfindBySymbol","summary":"Get FullRates by symbol","parameters":[{"name":"symbol","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TmnRates"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRateArchive":{"get":{"operationId":"TomanApiController_GlobalRateArchivefindAll","summary":"Get all GlobalRateArchives","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","description":"Search in name, title, description, url","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRateArchive"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRateArchive/from-to-dates":{"get":{"operationId":"TomanApiController_GlobalRateArchivegetFromAndToDates","summary":"Get RateArchives between two dates","parameters":[{"name":"fromDate","required":true,"in":"query","example":"2025-07-01","description":"Start date (inclusive)","schema":{"type":"string"}},{"name":"toDate","required":true,"in":"query","example":"2025-07-26","description":"End date (inclusive)","schema":{"type":"string"}}],"responses":{"200":{"description":"List of RateArchive entities between fromDate and toDate","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRateArchive"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRateArchive/closest-date":{"get":{"operationId":"TomanApiController_GlobalRateArchivegetClosestByDate","summary":"Get closest GlobalRateArchive record to a given date and time","parameters":[{"name":"date","required":true,"in":"query","example":"2025-07-26T12:30:00","description":"Target date and time (ISO string)","schema":{"type":"string"}}],"responses":{"200":{"description":"Closest GlobalRateArchive entity to the given date and time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalRateArchive"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRateArchive{id}":{"get":{"operationId":"TomanApiController_GlobalRateArchivefindOne","summary":"Get one GlobalRateArchive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalRateArchive"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates/public-rates":{"get":{"operationId":"TomanApiController_GlobalRatesfindAllPublic","summary":"Get all GlobalRates","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRates"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates":{"get":{"operationId":"TomanApiController_GlobalRatesfindAll","summary":"Get all GlobalRatess","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}},{"name":"search","required":false,"in":"query","description":"Search in name, title, description, url","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GlobalRates"}}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates/rates-usd":{"get":{"operationId":"TomanApiController_GlobalRatesgetAllRatesAsObject","summary":"Get all rates as object {symbol: [rate, inverseRate]}","parameters":[],"responses":{"200":{"description":"Rates as object","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates/rates-aed":{"get":{"operationId":"TomanApiController_GlobalRatesgetAllRatesAEDAsObject","summary":"Get all rates as object {symbol: [rate, inverseRate]}","parameters":[],"responses":{"200":{"description":"Rates as object","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates/rates-eur":{"get":{"operationId":"TomanApiController_GlobalRatesgetAllRatesEURAsObject","summary":"Get all rates as object {symbol: [rate, inverseRate]}","parameters":[],"responses":{"200":{"description":"Rates as object","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates/rates-try":{"get":{"operationId":"TomanApiController_GlobalRatesgetAllRatesTRYAsObject","summary":"Get all rates as object {symbol: [rate, inverseRate]}","parameters":[],"responses":{"200":{"description":"Rates as object","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates/rates-tmn":{"get":{"operationId":"TomanApiController_getAllRatesTMNAsObject","summary":"Get all rates as object {symbol: [rate, inverseRate]}","parameters":[],"responses":{"200":{"description":"Rates as object","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/GlobalRates{id}":{"get":{"operationId":"TomanApiController_GlobalRatesfindOne","summary":"Get one GlobalRates","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalRates"}}}},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/currencies":{"get":{"operationId":"TomanApiController_XeApigetCurrencies","summary":"Get currency list from XE","parameters":[{"name":"iso","required":false,"in":"query","description":"ISO currency code (optional)","schema":{"type":"string"}},{"name":"obsolete","required":false,"in":"query","description":"Include obsolete currencies?","schema":{"type":"boolean"}},{"name":"language","required":false,"in":"query","description":"Output language (optional)","schema":{"type":"string"}},{"name":"additionalInfo","required":false,"in":"query","description":"Additional info (optional)","schema":{"type":"string"}},{"name":"crypto","required":false,"in":"query","description":"Include cryptocurrencies?","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Currency list","content":{"application/json":{"schema":{"example":{"currencies":[{"iso":"USD","name":"US Dollar"}]}}}}},"400":{"description":"Bad request"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Server error"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/convert-from":{"get":{"operationId":"TomanApiController_XeApiconvertFrom","summary":"Convert from multiple currencies to a target currency","parameters":[{"name":"to","required":true,"in":"query","description":"Target ISO currency code","schema":{"type":"string"}},{"name":"from","required":false,"in":"query","description":"Comma-separated source currency list or empty","schema":{"type":"string"}},{"name":"amount","required":false,"in":"query","description":"Input amount","schema":{"type":"number"}},{"name":"obsolete","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"interval","required":false,"in":"query","description":"Rate interval (e.g., 1m, 1h, 1d)","schema":{"type":"string"}},{"name":"inverse","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"decimal_places","required":false,"in":"query","schema":{"type":"number"}},{"name":"margin","required":false,"in":"query","schema":{"type":"number"}},{"name":"crypto","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"skip_weekends","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Conversion result"},"400":{"description":"Bad request"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Server error"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/convert-to":{"get":{"operationId":"TomanApiController_XeApiconvertTo","summary":"Convert from one currency to multiple currencies","parameters":[{"name":"from","required":true,"in":"query","description":"Source ISO currency code or *","schema":{"type":"string"}},{"name":"to","required":false,"in":"query","description":"Target ISO currency code (optional)","schema":{"type":"string"}},{"name":"amount","required":false,"in":"query","schema":{"type":"number"}},{"name":"obsolete","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"interval","required":false,"in":"query","schema":{"type":"string"}},{"name":"inverse","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"decimal_places","required":false,"in":"query","schema":{"type":"number"}},{"name":"margin","required":false,"in":"query","schema":{"type":"number"}},{"name":"crypto","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"skip_weekends","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Conversion result"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/historic-rates":{"get":{"operationId":"TomanApiController_historicRates","summary":"Historic conversion rate","parameters":[{"name":"to","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":false,"in":"query","schema":{"type":"string"}},{"name":"amount","required":false,"in":"query","schema":{"type":"number"}},{"name":"date","required":false,"in":"query","description":"YYYY-MM-DD","schema":{"type":"string"}},{"name":"time","required":false,"in":"query","description":"HH:mm:ss","schema":{"type":"string"}},{"name":"obsolete","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"inverse","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"decimal_places","required":false,"in":"query","schema":{"type":"number"}},{"name":"margin","required":false,"in":"query","schema":{"type":"number"}},{"name":"crypto","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"use_lock_in_time","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Historic rate"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/historic-rates/period":{"get":{"operationId":"TomanApiController_XeApihistoricRatesPeriod","summary":"Historic rates over a time period","parameters":[{"name":"to","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":false,"in":"query","schema":{"type":"string"}},{"name":"amount","required":false,"in":"query","schema":{"type":"number"}},{"name":"start_timestamp","required":false,"in":"query","schema":{"type":"string"}},{"name":"end_timestamp","required":false,"in":"query","schema":{"type":"string"}},{"name":"interval","required":false,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"per_page","required":false,"in":"query","schema":{"type":"number"}},{"name":"obsolete","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"inverse","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"decimal_places","required":false,"in":"query","schema":{"type":"number"}},{"name":"margin","required":false,"in":"query","schema":{"type":"number"}},{"name":"crypto","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"List of rates"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/monthly-average":{"get":{"operationId":"TomanApiController_XeApimonthlyAverage","summary":"Monthly average rate","parameters":[{"name":"to","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":false,"in":"query","schema":{"type":"string"}},{"name":"year","required":false,"in":"query","schema":{"type":"number"}},{"name":"month","required":false,"in":"query","schema":{"type":"number"}},{"name":"obsolete","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"inverse","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"decimal_places","required":false,"in":"query","schema":{"type":"number"}},{"name":"crypto","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"amount","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Average result"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/XeApi/stats":{"get":{"operationId":"TomanApiController_XeApistats","summary":"Rate statistics over a period","parameters":[{"name":"to","required":true,"in":"query","schema":{"type":"string"}},{"name":"from","required":false,"in":"query","schema":{"type":"string"}},{"name":"start_date","required":false,"in":"query","schema":{"type":"string"}},{"name":"end_date","required":false,"in":"query","schema":{"type":"string"}},{"name":"obsolete","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"decimal_places","required":false,"in":"query","schema":{"type":"number"}},{"name":"daysInPeriod","required":false,"in":"query","schema":{"type":"number"}},{"name":"crypto","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Statistics result"},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/Home/currencies/fv3":{"get":{"operationId":"TomanApiController_FinanceApigetV3Rate","summary":"Get exchange rates (fv3) by Rate Group ID 0, 1, 2, 3, 4, 5, 6","parameters":[{"name":"rateGroupId","required":false,"in":"query","description":"Rate Group ID (default: 3) 0, 1, 2, 3, 4, 5, 6","schema":{"type":"string"}}],"responses":{"200":{"description":"fv3 rates object"},"400":{"description":"Backend URL not configured or invalid parameters"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/Home/currencies/app":{"get":{"operationId":"TomanApiController_FinanceApigetV3App","summary":"Get exchange rates for App (fv3app) by Rate Group ID 0, 1, 2, 3, 4, 5, 6","parameters":[{"name":"rateGroupId","required":false,"in":"query","description":"Rate Group ID (default: 3) 0, 1, 2, 3, 4, 5, 6","schema":{"type":"string"}}],"responses":{"200":{"description":"fv3app rates object"},"400":{"description":"Backend URL not configured or invalid parameters"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/Home/currencies":{"get":{"operationId":"TomanApiController_FinanceApigetCurrency","summary":"Get currencies by Rate Group ID 0, 1, 2, 3, 4, 5, 6","parameters":[{"name":"rateGroupId","required":false,"in":"query","description":"Rate Group ID (default: 3) 0, 1, 2, 3, 4, 5, 6","schema":{"type":"string"}}],"responses":{"200":{"description":"Array of currency items (may be empty)"},"400":{"description":"Backend URL not configured or invalid parameters"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/bin":{"get":{"operationId":"TomanApiController_financeApiServicegetBin","summary":"Lookup card BIN information (API Ninjas)","parameters":[{"name":"bin","required":true,"in":"query","description":"First 6-8 digits of the card number","example":"405316","schema":{"type":"string"}}],"responses":{"200":{"description":"BIN lookup results (array)","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"bin":{"type":"string","example":"405316"},"brand":{"type":"string","example":"Visa","description":"Premium only"},"type":{"type":"string","example":"Credit"},"category":{"type":"string","example":"Traditional"},"issuer":{"type":"string","example":"Jpmorgan Chase Bank N.A.","description":"Premium only"},"iso_code2":{"type":"string","example":"US"},"iso_code3":{"type":"string","example":"USA"},"country":{"type":"string","example":"United States"}}},"example":[{"bin":"405316","brand":"Visa","type":"Credit","category":"Traditional","issuer":"Jpmorgan Chase Bank N.A.","iso_code2":"US","iso_code3":"USA","country":"United States"}]}}}},"400":{"description":"Invalid BIN"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/iban":{"get":{"operationId":"TomanApiController_FinanceApigetIban","summary":"Lookup and validate an IBAN (API Ninjas)","parameters":[{"name":"iban","required":true,"in":"query","description":"International Bank Account Number (e.g., DE16200700000532013000)","example":"DE16200700000532013000","schema":{"type":"string"}}],"responses":{"200":{"description":"IBAN details","content":{"application/json":{"schema":{"type":"object","properties":{"iban":{"type":"string","example":"DE16200700000532013000"},"bank_name":{"type":"string","example":"Deutsche Bank","description":"Premium only"},"account_number":{"type":"string","example":"0532013000"},"bank_code":{"type":"string","example":"20070000"},"country":{"type":"string","example":"DE"},"checksum":{"type":"string","example":"16"},"valid":{"type":"boolean","example":true,"description":"Premium only"},"bban":{"type":"string","example":"200700000532013000"}}}}}},"400":{"description":"Invalid IBAN"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/mortgage-rates":{"get":{"operationId":"TomanApiController_FinanceApigetMortgageRates","summary":"Get mortgage rates from API Ninjas (optional date range)","parameters":[{"name":"date","required":false,"in":"query","description":"YYYY-MM-DD. Premium only.","schema":{"type":"string"}},{"name":"min_date","required":false,"in":"query","description":"YYYY-MM-DD. Must be used with max_date. Premium only.","schema":{"type":"string"}},{"name":"max_date","required":false,"in":"query","description":"YYYY-MM-DD. Must be used with min_date. Premium only.","schema":{"type":"string"}}],"responses":{"200":{"description":"Mortgage rate data returned from API Ninjas","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"week":{"type":"string","example":"current"},"data":{"type":"object","properties":{"frm_30":{"type":"string","example":"6.58"},"frm_15":{"type":"string","example":"5.69"},"week":{"type":"string","example":"2025-08-21"}}}}},"example":[{"week":"current","data":{"frm_30":"6.58","frm_15":"5.69","week":"2025-08-21"}}]}}}},"400":{"description":"Invalid parameters. min_date and max_date must be provided together."},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/inflation":{"get":{"operationId":"TomanApiController_getInflation","summary":"Get current inflation (CPI or HICP) from API Ninjas","parameters":[{"name":"type","required":false,"in":"query","description":"CPI or HICP. Defaults to CPI.","schema":{"enum":["CPI","HICP"],"type":"string"}},{"name":"country","required":false,"in":"query","description":"Country name (case-insensitive).","schema":{"type":"string"}}],"responses":{"200":{"description":"Inflation data","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","example":"Canada"},"type":{"type":"string","example":"CPI"},"period":{"type":"string","example":"Oct 2023"},"monthly_rate_pct":{"type":"number","example":0.06},"yearly_rate_pct":{"type":"number","example":3.12}}},"example":[{"country":"Canada","type":"CPI","period":"Oct 2023","monthly_rate_pct":0.06,"yearly_rate_pct":3.12}]}}}},"400":{"description":"Invalid parameters. type must be 'CPI' or 'HICP'."},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/inflation/countries":{"get":{"operationId":"TomanApiController_FinanceApigetInflationCountries","summary":"List countries with available inflation data","parameters":[],"responses":{"200":{"description":"Array of country names","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"example":["Canada","Germany","Japan"]}}}},"400":{"description":"Invalid parameters. type must be 'CPI' or 'HICP'."},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/vat":{"get":{"operationId":"TomanApiController_FinanceApigetVat","summary":"Get EU VAT rates for a country (API Ninjas)","parameters":[{"name":"country","required":true,"in":"query","schema":{"type":"string"}},{"name":"type","required":true,"in":"query","schema":{"type":"string"}},{"name":"min_date","required":true,"in":"query","schema":{"type":"string"}},{"name":"max_date","required":true,"in":"query","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/swift":{"get":{"operationId":"TomanApiController_FinanceApigetSwift","summary":"Find SWIFT codes for banks","parameters":[{"name":"swift","required":false,"in":"query","description":"8 or 11 character SWIFT/BIC code","schema":{"type":"string"}},{"name":"bank","required":false,"in":"query","description":"Bank name (partial match, premium only)","schema":{"type":"string"}},{"name":"city","required":false,"in":"query","description":"City name","schema":{"type":"string"}},{"name":"country","required":false,"in":"query","description":"ISO 3166 two-letter country code (e.g., US)","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","description":">= 0 (annual premium) for pagination","schema":{"type":"number"}}],"responses":{"200":{"description":"SWIFT search results","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string","example":"United States"},"country_code":{"type":"string","example":"US"},"swift_code":{"type":"string","example":"BOFAUS3N"},"bank_name":{"type":"string","example":"Bank name is for premium subscribers only."},"city":{"type":"string","example":"New York"},"region":{"type":"string","example":"Ny"}}}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/routingnumber":{"get":{"operationId":"TomanApiController_FinanceApigetRoutingNumber","summary":"Lookup US bank info by routing number","parameters":[{"name":"routing_number","required":true,"in":"query","description":"9-digit routing number","schema":{"type":"string"}}],"responses":{"200":{"description":"Bank info for routing number (array, up to 1 item)","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}},"400":{"description":"Invalid routing number"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/routingnumber/search":{"get":{"operationId":"TomanApiController_FinanceApigetRoutingNumberSearch","summary":"Search US banks and routing numbers (Premium)","parameters":[{"name":"bank_name","required":false,"in":"query","schema":{"type":"string"}},{"name":"city","required":false,"in":"query","schema":{"type":"string"}},{"name":"state","required":false,"in":"query","description":"Two-letter (e.g., CA, NY)","schema":{"type":"string"}},{"name":"zip_code","required":false,"in":"query","description":"5-digit ZIP code","schema":{"type":"string"}},{"name":"offset","required":false,"in":"query","description":">= 0 pagination (Premium)","schema":{"type":"number"}}],"responses":{"200":{"description":"Search results (array)","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}},"400":{"description":"Invalid parameters"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/mortgage-calculator":{"get":{"operationId":"TomanApiController_FinanceApimortgageCalculator","parameters":[{"name":"loan_amount","required":true,"in":"query","schema":{"type":"string"}},{"name":"home_value","required":true,"in":"query","schema":{"type":"string"}},{"name":"downpayment","required":true,"in":"query","schema":{"type":"string"}},{"name":"interest_rate","required":true,"in":"query","schema":{"type":"string"}},{"name":"duration_years","required":true,"in":"query","schema":{"type":"string"}},{"name":"monthly_hoa","required":true,"in":"query","schema":{"type":"string"}},{"name":"annual_property_tax","required":true,"in":"query","schema":{"type":"string"}},{"name":"annual_home_insurance","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/income-tax":{"get":{"operationId":"TomanApiController_FinanceApiincomeTax","parameters":[{"name":"country","required":true,"in":"query","schema":{"type":"string"}},{"name":"year","required":true,"in":"query","schema":{"type":"string"}},{"name":"federal_only","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"API key is required or invalid"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}},"/TomanApi/FinanceApi/time-series":{"get":{"operationId":"TomanApiController_FinanceApigetTimeSeries","summary":"Get simple time series candles from TwelveData","parameters":[{"name":"symbol","required":true,"in":"query","example":"BTC/USD","description":"Symbol pair, e.g., BTC/USD","schema":{"type":"string"}},{"name":"interval","required":true,"in":"query","example":"1h","description":"Interval, e.g., 1h","schema":{"type":"string"}},{"name":"range","required":true,"in":"query","example":"25","description":"Number of candles (outputsize), e.g., 25","schema":{"type":"string"}}],"responses":{"200":{"description":"TwelveData time_series JSON"},"400":{"description":"Invalid parameters or configuration"},"401":{"description":"Unauthorized"},"429":{"description":"Rate limit exceeded"}},"tags":["TomanApi"],"security":[{"X-API-Key":[]}]}}},"info":{"title":"Toman API Documentation","description":"Toman API endpoints","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"},"X-API-Key":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Paste your subscription API key"}},"schemas":{"TmnRateArchive":{"type":"object","properties":{"id":{"type":"number"},"tomanRates":{"type":"string"}},"required":["id","tomanRates"]},"TmnRates":{"type":"object","properties":{"master_title":{"type":"string"},"title":{"type":"string"},"symbol":{"type":"string"},"price":{"type":"number"},"current":{"type":"number"},"buyPrice":{"type":"number"},"sellPrice":{"type":"number"},"isRegister":{"type":"boolean"},"cashGroupId":{"type":"number"},"subCash":{"type":"boolean"},"exFee":{"type":"number"}},"required":["master_title","title","symbol","price","current","buyPrice","sellPrice","isRegister","cashGroupId","subCash","exFee"]},"GlobalRateArchive":{"type":"object","properties":{"id":{"type":"number"},"rates":{"type":"string"}},"required":["id","rates"]},"GlobalRates":{"type":"object","properties":{"symbol":{"type":"string"},"rate":{"type":"number"},"inverseRate":{"type":"number"},"createDate":{"format":"date-time","type":"string"}},"required":["symbol","rate","inverseRate","createDate"]}}},"security":[{"X-API-Key":[]}]}