{"openapi":"3.1.0","info":{"title":"Open API","version":"1.0.0","description":"This API is free to use and without any guarantees. You can use it in your projects."},"servers":[{"url":"https://openapi.anisafifi.workers.dev","description":"Production server"}],"tags":[{"name":"Utility","description":"General-purpose helper routes."},{"name":"Astronomy","description":"Astronomy and satellite-tracking routes. Includes N2YO integration and room for future providers."},{"name":"Jokes","description":"Joke routes powered by JokeAPI (jokeapi.dev)."},{"name":"Network","description":"Public network utilities powered by networkcalc.com API."},{"name":"NASA","description":"NASA public data routes proxied from api.nasa.gov."},{"name":"Math","description":"Math expression evaluation routes powered by api.mathjs.org."},{"name":"Random User","description":"Random test user generation routes powered by randomuser.me."},{"name":"Truth or Dare","description":"Truth or dare prompt generation powered by api.it-bulls.com."},{"name":"Weather","description":"Weather and geocoding routes."},{"name":"Crypto","description":"Crypto market data proxy routes with header-based API key auth."},{"name":"Currency","description":"Fiat exchange rate routes powered by open.er-api.com."},{"name":"Temp Mail","description":"Temp Mail routes powered by Boomlify (free-safe params)."},{"name":"URL Shortener","description":"URL shortening routes powered by URLfy."},{"name":"World Time","description":"Current time and timezone lookup routes powered by time.now."},{"name":"Quran Editions","description":"Edition discovery routes proxied to alquran.cloud."},{"name":"Quran Content","description":"Quran content routes such as juz, surah, ayah, page and sajda."},{"name":"Quran Search","description":"Quran text search routes."},{"name":"Quran Meta","description":"Quran metadata routes."},{"name":"Prayer Timings","description":"Daily prayer times by coordinates, address, or city."},{"name":"Prayer Calendar","description":"Monthly, yearly, and date-range prayer time calendars."},{"name":"Prayer Methods","description":"Supported prayer times calculation methods."},{"name":"Qibla","description":"Qibla angle and compass image routes based on coordinates."},{"name":"Islamic Calendar","description":"Hijri/Gregorian calendar conversions, date conversions, holidays, and metadata."}],"components":{"schemas":{},"parameters":{}},"paths":{"/ip":{"get":{"summary":"Get client geolocation details","tags":["Utility"],"operationId":"get_GetIpEndpoint","responses":{"200":{"description":"Geolocation payload","content":{"application/json":{"schema":{}}}}}}},"/favicon/{domain}":{"get":{"summary":"Fetch website favicon","tags":["Utility"],"operationId":"get_GetFaviconEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Domain without protocol, for example example.com"},"required":true,"description":"Domain without protocol, for example example.com","name":"domain","in":"path"}],"responses":{"200":{"description":"Icon file (image/x-icon)"},"404":{"description":"Favicon not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Favicon fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/trace-redirect":{"get":{"summary":"Trace a redirect chain","tags":["Utility"],"operationId":"get_TraceRedirectEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"url","in":"query"}],"responses":{"200":{"description":"Redirect steps","content":{"application/json":{"schema":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"step":{"type":"number"},"status":{"type":"number"},"url":{"type":"string"},"redirectedTo":{"type":["string","null"]},"timeMs":{"type":"number"}},"required":["step","status","url","redirectedTo","timeMs"]}}},"required":["steps"]}}}},"500":{"description":"Redirect tracing failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error","details"]}}}}}}},"/url-shortener":{"get":{"summary":"Create a short URL from query params","tags":["URL Shortener"],"operationId":"get_ShortenUrlByQueryEndpoint","parameters":[{"schema":{"type":"string","format":"uri","description":"Absolute URL to shorten, e.g. https://example.com"},"required":true,"description":"Absolute URL to shorten, e.g. https://example.com","name":"url","in":"query"}],"responses":{"201":{"description":"Short URL created","content":{"application/json":{"schema":{"type":"object","properties":{"shortUrl":{"type":"string"},"cid":{"type":"number"}},"required":["shortUrl","cid"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/tle/{id}":{"get":{"summary":"N2YO: Get TLE by NORAD id","tags":["Astronomy"],"operationId":"get_N2yoTleEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Satellite NORAD id."},"required":true,"description":"Satellite NORAD id.","name":"id","in":"path"}],"responses":{"200":{"description":"TLE payload","content":{"application/json":{"schema":{}}}},"500":{"description":"N2YO upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/positions/{id}/{observer_lat}/{observer_lng}/{observer_alt}/{seconds}":{"get":{"summary":"N2YO: Get satellite positions","tags":["Astronomy"],"operationId":"get_N2yoPositionsEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Satellite NORAD id."},"required":true,"description":"Satellite NORAD id.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer latitude in decimal degrees."},"required":true,"description":"Observer latitude in decimal degrees.","name":"observer_lat","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer longitude in decimal degrees."},"required":true,"description":"Observer longitude in decimal degrees.","name":"observer_lng","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer altitude in meters."},"required":true,"description":"Observer altitude in meters.","name":"observer_alt","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Number of future seconds to return positions for (max 300)."},"required":true,"description":"Number of future seconds to return positions for (max 300).","name":"seconds","in":"path"}],"responses":{"200":{"description":"Satellite positions payload","content":{"application/json":{"schema":{}}}},"500":{"description":"N2YO upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/visualpasses/{id}/{observer_lat}/{observer_lng}/{observer_alt}/{days}/{min_visibility}":{"get":{"summary":"N2YO: Get visual passes","tags":["Astronomy"],"operationId":"get_N2yoVisualPassesEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Satellite NORAD id."},"required":true,"description":"Satellite NORAD id.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer latitude in decimal degrees."},"required":true,"description":"Observer latitude in decimal degrees.","name":"observer_lat","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer longitude in decimal degrees."},"required":true,"description":"Observer longitude in decimal degrees.","name":"observer_lng","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer altitude in meters."},"required":true,"description":"Observer altitude in meters.","name":"observer_alt","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Days of prediction (max 10)."},"required":true,"description":"Days of prediction (max 10).","name":"days","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Minimum visible duration in seconds."},"required":true,"description":"Minimum visible duration in seconds.","name":"min_visibility","in":"path"}],"responses":{"200":{"description":"Visual passes payload","content":{"application/json":{"schema":{}}}},"500":{"description":"N2YO upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/radiopasses/{id}/{observer_lat}/{observer_lng}/{observer_alt}/{days}/{min_elevation}":{"get":{"summary":"N2YO: Get radio passes","tags":["Astronomy"],"operationId":"get_N2yoRadioPassesEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Satellite NORAD id."},"required":true,"description":"Satellite NORAD id.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer latitude in decimal degrees."},"required":true,"description":"Observer latitude in decimal degrees.","name":"observer_lat","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer longitude in decimal degrees."},"required":true,"description":"Observer longitude in decimal degrees.","name":"observer_lng","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer altitude in meters."},"required":true,"description":"Observer altitude in meters.","name":"observer_alt","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Days of prediction (max 10)."},"required":true,"description":"Days of prediction (max 10).","name":"days","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Minimum highest elevation in degrees."},"required":true,"description":"Minimum highest elevation in degrees.","name":"min_elevation","in":"path"}],"responses":{"200":{"description":"Radio passes payload","content":{"application/json":{"schema":{}}}},"500":{"description":"N2YO upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/above/{observer_lat}/{observer_lng}/{observer_alt}/{search_radius}/{category_id}":{"get":{"summary":"N2YO: Get satellites above an observer","tags":["Astronomy"],"operationId":"get_N2yoAboveEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Observer latitude in decimal degrees."},"required":true,"description":"Observer latitude in decimal degrees.","name":"observer_lat","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer longitude in decimal degrees."},"required":true,"description":"Observer longitude in decimal degrees.","name":"observer_lng","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Observer altitude in meters."},"required":true,"description":"Observer altitude in meters.","name":"observer_alt","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Search radius in degrees (0-90)."},"required":true,"description":"Search radius in degrees (0-90).","name":"search_radius","in":"path"},{"schema":{"type":"string","minLength":1,"description":"N2YO category id. Use 0 for all categories."},"required":true,"description":"N2YO category id. Use 0 for all categories.","name":"category_id","in":"path"}],"responses":{"200":{"description":"Satellites above payload","content":{"application/json":{"schema":{}}}},"500":{"description":"N2YO upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/sun/ip":{"get":{"summary":"Sunrise-Sunset: Get sun events by auto-detected requester IP","tags":["Astronomy"],"operationId":"get_SunriseSunsetByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Date value such as today or YYYY-MM-DD."},"required":false,"description":"Date value such as today or YYYY-MM-DD.","name":"date","in":"query"},{"schema":{"type":"string","description":"JSONP callback name."},"required":false,"description":"JSONP callback name.","name":"callback","in":"query"},{"schema":{"type":"string","enum":["0","1"],"description":"Return ISO 8601 values when 0, human-friendly format when 1."},"required":false,"description":"Return ISO 8601 values when 0, human-friendly format when 1.","name":"formatted","in":"query"},{"schema":{"type":"string","description":"Timezone id such as UTC or Asia/Dhaka."},"required":false,"description":"Timezone id such as UTC or Asia/Dhaka.","name":"tzid","in":"query"}],"responses":{"200":{"description":"Sunrise-Sunset API response","content":{"application/json":{"schema":{}}}},"500":{"description":"IP geolocation or Sunrise-Sunset upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/sun":{"get":{"summary":"Sunrise-Sunset: Get sun events by query params","tags":["Astronomy"],"operationId":"get_SunriseSunsetByQueryEndpoint","parameters":[{"schema":{"type":"string","description":"Date value such as today or YYYY-MM-DD."},"required":false,"description":"Date value such as today or YYYY-MM-DD.","name":"date","in":"query"},{"schema":{"type":"string","description":"JSONP callback name."},"required":false,"description":"JSONP callback name.","name":"callback","in":"query"},{"schema":{"type":"string","enum":["0","1"],"description":"Return ISO 8601 values when 0, human-friendly format when 1."},"required":false,"description":"Return ISO 8601 values when 0, human-friendly format when 1.","name":"formatted","in":"query"},{"schema":{"type":"string","description":"Timezone id such as UTC or Asia/Dhaka."},"required":false,"description":"Timezone id such as UTC or Asia/Dhaka.","name":"tzid","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Latitude in decimal degrees."},"required":true,"description":"Latitude in decimal degrees.","name":"lat","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Longitude in decimal degrees."},"required":true,"description":"Longitude in decimal degrees.","name":"lng","in":"query"}],"responses":{"200":{"description":"Sunrise-Sunset API response","content":{"application/json":{"schema":{}}}},"500":{"description":"Sunrise-Sunset upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/astronomy/sun/{lat}/{lng}":{"get":{"summary":"Sunrise-Sunset: Get sun events by path params","tags":["Astronomy"],"operationId":"get_SunriseSunsetByPathEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Latitude in decimal degrees."},"required":true,"description":"Latitude in decimal degrees.","name":"lat","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Longitude in decimal degrees."},"required":true,"description":"Longitude in decimal degrees.","name":"lng","in":"path"},{"schema":{"type":"string","description":"Date value such as today or YYYY-MM-DD."},"required":false,"description":"Date value such as today or YYYY-MM-DD.","name":"date","in":"query"},{"schema":{"type":"string","description":"JSONP callback name."},"required":false,"description":"JSONP callback name.","name":"callback","in":"query"},{"schema":{"type":"string","enum":["0","1"],"description":"Return ISO 8601 values when 0, human-friendly format when 1."},"required":false,"description":"Return ISO 8601 values when 0, human-friendly format when 1.","name":"formatted","in":"query"},{"schema":{"type":"string","description":"Timezone id such as UTC or Asia/Dhaka."},"required":false,"description":"Timezone id such as UTC or Asia/Dhaka.","name":"tzid","in":"query"}],"responses":{"200":{"description":"Sunrise-Sunset API response","content":{"application/json":{"schema":{}}}},"500":{"description":"Sunrise-Sunset upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/apod":{"get":{"summary":"NASA APOD: Astronomy Picture of the Day","tags":["NASA"],"operationId":"get_nasa_apod","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"date","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"start_date","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"count","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"thumbs","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"concept_tags","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"hd","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/planetary/earth/assets":{"get":{"summary":"NASA Earth: Assets by latitude and longitude","tags":["NASA"],"operationId":"get_nasa_planetary_earth_assets","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"date","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"dim","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/planetary/earth/imagery":{"get":{"summary":"NASA Earth: Imagery by latitude and longitude","tags":["NASA"],"operationId":"get_nasa_planetary_earth_imagery","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"date","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"dim","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"cloud_score","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/epic/natural/images":{"get":{"summary":"NASA EPIC: Natural imagery latest","tags":["NASA"],"operationId":"get_nasa_epic_natural_images","responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/epic/natural/date/{date}":{"get":{"summary":"NASA EPIC: Natural imagery by date","tags":["NASA"],"operationId":"get_nasa_epic_natural_date_date","parameters":[{"schema":{"type":"string","minLength":1,"description":"Date in YYYY-MM-DD format."},"required":true,"description":"Date in YYYY-MM-DD format.","name":"date","in":"path"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/epic/enhanced/images":{"get":{"summary":"NASA EPIC: Enhanced imagery latest","tags":["NASA"],"operationId":"get_nasa_epic_enhanced_images","responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/epic/enhanced/date/{date}":{"get":{"summary":"NASA EPIC: Enhanced imagery by date","tags":["NASA"],"operationId":"get_nasa_epic_enhanced_date_date","parameters":[{"schema":{"type":"string","minLength":1,"description":"Date in YYYY-MM-DD format."},"required":true,"description":"Date in YYYY-MM-DD format.","name":"date","in":"path"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/mars-photos/api/v1/manifests/{rover_name}":{"get":{"summary":"NASA Mars Photos: Rover manifest","tags":["NASA"],"operationId":"get_nasa_mars-photos_api_v1_manifests_rover_name","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"rover_name","in":"path"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/mars-photos/api/v1/rovers/{rover_name}/photos":{"get":{"summary":"NASA Mars Photos: Rover photos","tags":["NASA"],"operationId":"get_nasa_mars-photos_api_v1_rovers_rover_name_photos","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"rover_name","in":"path"},{"schema":{"type":"string","minLength":1},"required":false,"name":"sol","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"earth_date","in":"query"},{"schema":{"type":"string"},"required":false,"name":"camera","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/neo/rest/v1/feed":{"get":{"summary":"NASA NeoWs: Feed","tags":["NASA"],"operationId":"get_nasa_neo_rest_v1_feed","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"start_date","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"end_date","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"detailed","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/neo/rest/v1/neo/{asteroid_id}":{"get":{"summary":"NASA NeoWs: Lookup by asteroid id","tags":["NASA"],"operationId":"get_nasa_neo_rest_v1_neo_asteroid_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"asteroid_id","in":"path"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/neo/rest/v1/neo/browse":{"get":{"summary":"NASA NeoWs: Browse","tags":["NASA"],"operationId":"get_nasa_neo_rest_v1_neo_browse","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"size","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/cme":{"get":{"summary":"NASA DONKI: Coronal Mass Ejection","tags":["NASA"],"operationId":"get_nasa_donki_cme","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/gst":{"get":{"summary":"NASA DONKI: Geomagnetic Storm","tags":["NASA"],"operationId":"get_nasa_donki_gst","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/ips":{"get":{"summary":"NASA DONKI: Interplanetary Shock","tags":["NASA"],"operationId":"get_nasa_donki_ips","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/flr":{"get":{"summary":"NASA DONKI: Solar Flare","tags":["NASA"],"operationId":"get_nasa_donki_flr","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/sep":{"get":{"summary":"NASA DONKI: Solar Energetic Particle","tags":["NASA"],"operationId":"get_nasa_donki_sep","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/mpc":{"get":{"summary":"NASA DONKI: Magnetopause Crossing","tags":["NASA"],"operationId":"get_nasa_donki_mpc","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/rbe":{"get":{"summary":"NASA DONKI: Radiation Belt Enhancement","tags":["NASA"],"operationId":"get_nasa_donki_rbe","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/hss":{"get":{"summary":"NASA DONKI: High Speed Stream","tags":["NASA"],"operationId":"get_nasa_donki_hss","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/nasa/donki/wsa-enlil-simulations":{"get":{"summary":"NASA DONKI: WSA Enlil Simulations","tags":["NASA"],"operationId":"get_nasa_donki_wsa-enlil-simulations","parameters":[{"schema":{"type":"string","minLength":1},"required":false,"name":"startDate","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"endDate","in":"query"}],"responses":{"200":{"description":"NASA API response","content":{"application/json":{"schema":{}}}},"500":{"description":"NASA upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/joke/joke/{categories}":{"get":{"summary":"JokeAPI: Get one or multiple jokes by category","tags":["Jokes"],"operationId":"get_joke_joke_categories","parameters":[{"schema":{"type":"string","minLength":1,"description":"One or more categories, e.g. Any or Programming,Dark."},"required":true,"description":"One or more categories, e.g. Any or Programming,Dark.","name":"categories","in":"path"},{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string","description":"Comma, plus, or minus separated flags."},"required":false,"description":"Comma, plus, or minus separated flags.","name":"blacklistFlags","in":"query"},{"schema":{"type":"string","description":"Language code, e.g. en, de, es."},"required":false,"description":"Language code, e.g. en, de, es.","name":"lang","in":"query"},{"schema":{"type":"string","description":"Single id or id range, e.g. 5 or 0-100."},"required":false,"description":"Single id or id range, e.g. 5 or 0-100.","name":"idRange","in":"query"},{"schema":{"type":"string","description":"Case-insensitive search text."},"required":false,"description":"Case-insensitive search text.","name":"contains","in":"query"},{"schema":{"type":"string","enum":["single","twopart"]},"required":false,"name":"type","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":10},"required":false,"name":"amount","in":"query"},{"schema":{"type":"string","description":"Enable safe mode by adding this value-less parameter."},"required":false,"description":"Enable safe mode by adding this value-less parameter.","name":"safe-mode","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/joke/info":{"get":{"summary":"JokeAPI: API and dataset info","tags":["Jokes"],"operationId":"get_joke_info","parameters":[{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string"},"required":false,"name":"lang","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/joke/categories":{"get":{"summary":"JokeAPI: Supported categories","tags":["Jokes"],"operationId":"get_joke_categories","parameters":[{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string"},"required":false,"name":"lang","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/joke/langcode/{language}":{"get":{"summary":"JokeAPI: Resolve language name to language code","tags":["Jokes"],"operationId":"get_joke_langcode_language","parameters":[{"schema":{"type":"string","minLength":1,"description":"Approximate language name for fuzzy lookup."},"required":true,"description":"Approximate language name for fuzzy lookup.","name":"language","in":"path"},{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string"},"required":false,"name":"lang","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/joke/languages":{"get":{"summary":"JokeAPI: Supported languages","tags":["Jokes"],"operationId":"get_joke_languages","parameters":[{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string"},"required":false,"name":"lang","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/joke/flags":{"get":{"summary":"JokeAPI: Supported blacklist flags","tags":["Jokes"],"operationId":"get_joke_flags","parameters":[{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string"},"required":false,"name":"lang","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/joke/formats":{"get":{"summary":"JokeAPI: Supported response formats","tags":["Jokes"],"operationId":"get_joke_formats","parameters":[{"schema":{"type":"string","enum":["json","xml","yaml","txt"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string"},"required":false,"name":"lang","in":"query"}],"responses":{"200":{"description":"JokeAPI response payload","content":{"application/json":{"schema":{}}}},"500":{"description":"JokeAPI upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/network/binary/{number}":{"get":{"summary":"NetworkCalc Binary Converter: convert number bases","tags":["Network"],"operationId":"get_NetworkCalcBinaryEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Input number in base-2/8/10/16 format."},"required":true,"description":"Input number in base-2/8/10/16 format.","name":"number","in":"path"},{"schema":{"type":"string","enum":["2","8","10","16"]},"required":false,"name":"from","in":"query"},{"schema":{"type":"string","enum":["2","8","10","16"]},"required":false,"name":"to","in":"query"}],"responses":{"200":{"description":"Binary conversion response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/dns/lookup/{hostname}":{"get":{"summary":"NetworkCalc DNS Tools: lookup DNS records","tags":["Network"],"operationId":"get_NetworkCalcDnsLookupEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Hostname, domain, or IP address."},"required":true,"description":"Hostname, domain, or IP address.","name":"hostname","in":"path"}],"responses":{"200":{"description":"DNS lookup response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/dns/whois/{hostname}":{"get":{"summary":"NetworkCalc DNS Tools: lookup WHOIS","tags":["Network"],"operationId":"get_NetworkCalcWhoisEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Hostname, domain, or IP address."},"required":true,"description":"Hostname, domain, or IP address.","name":"hostname","in":"path"}],"responses":{"200":{"description":"WHOIS response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/encoder/{value}":{"get":{"summary":"NetworkCalc Encoder: encode/decode values","tags":["Network"],"operationId":"get_NetworkCalcEncoderEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Value to encode or decode."},"required":true,"description":"Value to encode or decode.","name":"value","in":"path"},{"schema":{"type":"string","enum":["url","base64","base64url"]},"required":true,"name":"encoding","in":"query"},{"schema":{"type":"string","enum":["1","true"]},"required":false,"name":"decode","in":"query"}],"responses":{"200":{"description":"Encoder response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/security/certificate/{hostname}":{"get":{"summary":"NetworkCalc Security Tools: lookup TLS/SSL certificate","tags":["Network"],"operationId":"get_NetworkCalcCertificateEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Hostname, domain, or IP address."},"required":true,"description":"Hostname, domain, or IP address.","name":"hostname","in":"path"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":65535},"required":false,"name":"port","in":"query"}],"responses":{"200":{"description":"Certificate response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/ip/{address}":{"get":{"summary":"NetworkCalc Subnet Calculator: calculate by IPv4 address","tags":["Network"],"operationId":"get_NetworkCalcSubnetAddressEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"IPv4 dotted-decimal address."},"required":true,"description":"IPv4 dotted-decimal address.","name":"address","in":"path"},{"schema":{"type":"string","enum":["0","1","false","true"]},"required":false,"name":"binary","in":"query"},{"schema":{"type":"string","description":"Comma-separated field list."},"required":false,"description":"Comma-separated field list.","name":"fields","in":"query"}],"responses":{"200":{"description":"Subnet calculation response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/ip/{address}/{bits}":{"get":{"summary":"NetworkCalc Subnet Calculator: calculate by IPv4/CIDR","tags":["Network"],"operationId":"get_NetworkCalcSubnetCidrEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"IPv4 dotted-decimal address."},"required":true,"description":"IPv4 dotted-decimal address.","name":"address","in":"path"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":32,"description":"CIDR mask bits."},"required":false,"description":"CIDR mask bits.","name":"bits","in":"path"},{"schema":{"type":"string","enum":["0","1","false","true"]},"required":false,"name":"binary","in":"query"},{"schema":{"type":"string","description":"Comma-separated field list."},"required":false,"description":"Comma-separated field list.","name":"fields","in":"query"}],"responses":{"200":{"description":"Subnet calculation response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/dns/spf":{"post":{"summary":"NetworkCalc DNS Tools: validate SPF text","tags":["Network"],"operationId":"post_NetworkCalcSpfValidateEndpoint","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"spf":{"type":"string","minLength":1}},"required":["spf"],"additionalProperties":false}}}},"responses":{"200":{"description":"SPF validation response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/network/dns/spf/{hostname}":{"post":{"summary":"NetworkCalc DNS Tools: lookup SPF by hostname","tags":["Network"],"operationId":"post_NetworkCalcSpfByHostnameEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Hostname, domain, or IP address."},"required":true,"description":"Hostname, domain, or IP address.","name":"hostname","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"spf":{"type":"string","minLength":1,"description":"SPF string to validate; if present, hostname is ignored by upstream."}},"additionalProperties":false}}}},"responses":{"200":{"description":"SPF lookup/validation response","content":{"application/json":{"schema":{}}}},"500":{"description":"NetworkCalc upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}}}}}}}}},"/weather/city/search":{"get":{"summary":"Search cities for weather lookups","tags":["Weather"],"operationId":"get_SearchWeatherCitiesEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"count","in":"query"},{"schema":{"type":"string"},"required":false,"name":"language","in":"query"},{"schema":{"type":"string","enum":["json"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string","minLength":1,"description":"City search string."},"required":true,"description":"City search string.","name":"q","in":"query"}],"responses":{"200":{"description":"City search results","content":{"application/json":{"schema":{}}}},"500":{"description":"City search failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/batch":{"get":{"summary":"Get weather and air quality for multiple coordinates","tags":["Weather"],"operationId":"get_GetWeatherBatchEndpoint","parameters":[{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"},{"schema":{"type":"string","description":"Air quality current variables, comma-separated."},"required":false,"description":"Air quality current variables, comma-separated.","name":"air_current","in":"query"},{"schema":{"type":"string","description":"Air quality hourly variables, comma-separated."},"required":false,"description":"Air quality hourly variables, comma-separated.","name":"air_hourly","in":"query"},{"schema":{"type":"string","description":"Air quality domain(s), comma-separated."},"required":false,"description":"Air quality domain(s), comma-separated.","name":"air_domains","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"air_forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"air_past_days","in":"query"},{"schema":{"type":"string","description":"Air quality start date (YYYY-MM-DD)."},"required":false,"description":"Air quality start date (YYYY-MM-DD).","name":"air_start_date","in":"query"},{"schema":{"type":"string","description":"Air quality end date (YYYY-MM-DD)."},"required":false,"description":"Air quality end date (YYYY-MM-DD).","name":"air_end_date","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Semicolon-separated coordinate pairs in lat,lon format. Example: 52.52,13.41;48.85,2.35"},"required":true,"description":"Semicolon-separated coordinate pairs in lat,lon format. Example: 52.52,13.41;48.85,2.35","name":"locations","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":20},"required":false,"name":"max_points","in":"query"}],"responses":{"200":{"description":"Batch weather response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"coordinates":{"type":"object","properties":{"lat":{"type":"string"},"lon":{"type":"string"}},"required":["lat","lon"]},"weather":{},"air_quality":{},"error":{"type":"string"},"status":{"type":"number"}},"required":["coordinates"]}}},"required":["count","results"]}}}},"400":{"description":"Invalid locations query","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/ip":{"get":{"summary":"Get weather and air quality data by client IP","tags":["Weather"],"operationId":"get_GetWeatherByIpEndpoint","parameters":[{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"},{"schema":{"type":"string","description":"Air quality current variables, comma-separated."},"required":false,"description":"Air quality current variables, comma-separated.","name":"air_current","in":"query"},{"schema":{"type":"string","description":"Air quality hourly variables, comma-separated."},"required":false,"description":"Air quality hourly variables, comma-separated.","name":"air_hourly","in":"query"},{"schema":{"type":"string","description":"Air quality domain(s), comma-separated."},"required":false,"description":"Air quality domain(s), comma-separated.","name":"air_domains","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"air_forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"air_past_days","in":"query"},{"schema":{"type":"string","description":"Air quality start date (YYYY-MM-DD)."},"required":false,"description":"Air quality start date (YYYY-MM-DD).","name":"air_start_date","in":"query"},{"schema":{"type":"string","description":"Air quality end date (YYYY-MM-DD)."},"required":false,"description":"Air quality end date (YYYY-MM-DD).","name":"air_end_date","in":"query"}],"responses":{"200":{"description":"Combined weather and air quality response resolved from client IP","content":{"application/json":{"schema":{"type":"object","properties":{"location":{},"coordinates":{"type":"object","properties":{"lat":{"type":"string"},"lon":{"type":"string"}},"required":["lat","lon"]},"weather":{},"air_quality":{}},"required":["coordinates"]}}}},"500":{"description":"Data fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/current/{lat}/{lon}":{"get":{"summary":"Get current weather by coordinates","tags":["Weather"],"operationId":"get_GetWeatherCurrentEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"}],"responses":{"200":{"description":"Current weather payload","content":{"application/json":{"schema":{"type":"object","properties":{"weather":{}}}}}},"500":{"description":"Weather fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/hourly/{lat}/{lon}":{"get":{"summary":"Get hourly weather by coordinates","tags":["Weather"],"operationId":"get_GetWeatherHourlyEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"}],"responses":{"200":{"description":"Hourly weather payload","content":{"application/json":{"schema":{"type":"object","properties":{"weather":{}}}}}},"500":{"description":"Weather fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/daily/{lat}/{lon}":{"get":{"summary":"Get daily weather forecast by coordinates","tags":["Weather"],"operationId":"get_GetWeatherDailyEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"}],"responses":{"200":{"description":"Daily weather payload","content":{"application/json":{"schema":{"type":"object","properties":{"weather":{}}}}}},"500":{"description":"Weather fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/history/{lat}/{lon}":{"get":{"summary":"Get historical weather by coordinates","tags":["Weather"],"operationId":"get_GetWeatherHistoryEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"}],"responses":{"200":{"description":"Historical weather payload","content":{"application/json":{"schema":{"type":"object","properties":{"weather":{}}}}}},"500":{"description":"Weather fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/city/{city}":{"get":{"summary":"Get weather and air quality data by city name","tags":["Weather"],"operationId":"get_GetWeatherByCityEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"city","in":"path"},{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"},{"schema":{"type":"string","description":"Air quality current variables, comma-separated."},"required":false,"description":"Air quality current variables, comma-separated.","name":"air_current","in":"query"},{"schema":{"type":"string","description":"Air quality hourly variables, comma-separated."},"required":false,"description":"Air quality hourly variables, comma-separated.","name":"air_hourly","in":"query"},{"schema":{"type":"string","description":"Air quality domain(s), comma-separated."},"required":false,"description":"Air quality domain(s), comma-separated.","name":"air_domains","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"air_forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"air_past_days","in":"query"},{"schema":{"type":"string","description":"Air quality start date (YYYY-MM-DD)."},"required":false,"description":"Air quality start date (YYYY-MM-DD).","name":"air_start_date","in":"query"},{"schema":{"type":"string","description":"Air quality end date (YYYY-MM-DD)."},"required":false,"description":"Air quality end date (YYYY-MM-DD).","name":"air_end_date","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"geo_count","in":"query"},{"schema":{"type":"string"},"required":false,"name":"geo_language","in":"query"},{"schema":{"type":"string","enum":["json"]},"required":false,"name":"geo_format","in":"query"}],"responses":{"200":{"description":"Combined weather and air quality response with resolved coordinates","content":{"application/json":{"schema":{"type":"object","properties":{"location":{"type":"object","properties":{"name":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"country":{"type":["string","null"]}},"required":["name","latitude","longitude","country"]},"weather":{},"air_quality":{}},"required":["location"]}}}},"404":{"description":"City not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Data fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/weather/{lat}/{lon}":{"get":{"summary":"Get weather and air quality data by coordinates","tags":["Weather"],"operationId":"get_GetWeatherEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"string","enum":["celsius","fahrenheit"],"description":"Alias for temperature_unit."},"required":false,"description":"Alias for temperature_unit.","name":"unit","in":"query"},{"schema":{"type":"string","enum":["celsius","fahrenheit"]},"required":false,"name":"temperature_unit","in":"query"},{"schema":{"type":"string","enum":["kmh","ms","mph","kn"]},"required":false,"name":"wind_speed_unit","in":"query"},{"schema":{"type":"string","enum":["mm","inch"]},"required":false,"name":"precipitation_unit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Weather current variables, comma-separated."},"required":false,"description":"Weather current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Weather hourly variables, comma-separated."},"required":false,"description":"Weather hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Weather daily variables, comma-separated."},"required":false,"description":"Weather daily variables, comma-separated.","name":"daily","in":"query"},{"schema":{"type":"string","description":"Weather 15-minute variables, comma-separated."},"required":false,"description":"Weather 15-minute variables, comma-separated.","name":"minutely_15","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":384},"required":false,"name":"forecast_hours","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":168},"required":false,"name":"past_hours","in":"query"},{"schema":{"type":"string","description":"Weather start date (YYYY-MM-DD)."},"required":false,"description":"Weather start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Weather end date (YYYY-MM-DD)."},"required":false,"description":"Weather end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","description":"Weather start hour (ISO 8601)."},"required":false,"description":"Weather start hour (ISO 8601).","name":"start_hour","in":"query"},{"schema":{"type":"string","description":"Weather end hour (ISO 8601)."},"required":false,"description":"Weather end hour (ISO 8601).","name":"end_hour","in":"query"},{"schema":{"type":"string","description":"Weather start time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather start time for 15-minute data (ISO 8601).","name":"start_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather end time for 15-minute data (ISO 8601)."},"required":false,"description":"Weather end time for 15-minute data (ISO 8601).","name":"end_minutely_15","in":"query"},{"schema":{"type":"string","description":"Weather model selection, comma-separated."},"required":false,"description":"Weather model selection, comma-separated.","name":"models","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"},{"schema":{"type":["number","null"]},"required":false,"name":"elevation","in":"query"},{"schema":{"type":"string","description":"Air quality current variables, comma-separated."},"required":false,"description":"Air quality current variables, comma-separated.","name":"air_current","in":"query"},{"schema":{"type":"string","description":"Air quality hourly variables, comma-separated."},"required":false,"description":"Air quality hourly variables, comma-separated.","name":"air_hourly","in":"query"},{"schema":{"type":"string","description":"Air quality domain(s), comma-separated."},"required":false,"description":"Air quality domain(s), comma-separated.","name":"air_domains","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"air_forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"air_past_days","in":"query"},{"schema":{"type":"string","description":"Air quality start date (YYYY-MM-DD)."},"required":false,"description":"Air quality start date (YYYY-MM-DD).","name":"air_start_date","in":"query"},{"schema":{"type":"string","description":"Air quality end date (YYYY-MM-DD)."},"required":false,"description":"Air quality end date (YYYY-MM-DD).","name":"air_end_date","in":"query"}],"responses":{"200":{"description":"Combined weather and air quality response","content":{"application/json":{"schema":{"type":"object","properties":{"weather":{},"air_quality":{}}}}}},"500":{"description":"Data fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/air-quality/{lat}/{lon}":{"get":{"summary":"Get air quality by coordinates","tags":["Weather"],"operationId":"get_GetAirQualityEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"string"},"required":false,"name":"timezone","in":"query"},{"schema":{"type":"string","enum":["iso8601","unixtime"]},"required":false,"name":"timeformat","in":"query"},{"schema":{"type":"string","description":"Air quality current variables, comma-separated."},"required":false,"description":"Air quality current variables, comma-separated.","name":"current","in":"query"},{"schema":{"type":"string","description":"Air quality hourly variables, comma-separated."},"required":false,"description":"Air quality hourly variables, comma-separated.","name":"hourly","in":"query"},{"schema":{"type":"string","description":"Air quality domain(s), comma-separated."},"required":false,"description":"Air quality domain(s), comma-separated.","name":"domains","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":16},"required":false,"name":"forecast_days","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":92},"required":false,"name":"past_days","in":"query"},{"schema":{"type":"string","description":"Air quality start date (YYYY-MM-DD)."},"required":false,"description":"Air quality start date (YYYY-MM-DD).","name":"start_date","in":"query"},{"schema":{"type":"string","description":"Air quality end date (YYYY-MM-DD)."},"required":false,"description":"Air quality end date (YYYY-MM-DD).","name":"end_date","in":"query"},{"schema":{"type":"string","enum":["land","sea","nearest"]},"required":false,"name":"cell_selection","in":"query"}],"responses":{"200":{"description":"Air quality payload","content":{"application/json":{"schema":{"type":"object","properties":{"air_quality":{}}}}}},"500":{"description":"Air quality fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/geocode/reverse/{lat}/{lon}":{"get":{"summary":"Reverse geocode coordinates","tags":["Weather"],"operationId":"get_ReverseGeocodeEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"lat","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"lon","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"count","in":"query"},{"schema":{"type":"string"},"required":false,"name":"language","in":"query"},{"schema":{"type":"string","enum":["json"]},"required":false,"name":"format","in":"query"}],"responses":{"200":{"description":"Reverse geocoding result","content":{"application/json":{"schema":{}}}},"500":{"description":"Reverse geocoding fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/geocode/{city}":{"get":{"summary":"Geocode a city name","tags":["Weather"],"operationId":"get_GeocodeCityEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"city","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"count","in":"query"},{"schema":{"type":"string"},"required":false,"name":"language","in":"query"},{"schema":{"type":"string","enum":["json"]},"required":false,"name":"format","in":"query"}],"responses":{"200":{"description":"Geocoding result","content":{"application/json":{"schema":{}}}},"500":{"description":"Geocoding fetch failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/ping":{"get":{"summary":"Check the API server status","tags":["Crypto"],"operationId":"get_crypto_ping","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/simple/price":{"get":{"summary":"Query prices of one or more coins by IDs","tags":["Crypto"],"operationId":"get_crypto_simple_price","parameters":[{"schema":{"type":"string"},"required":false,"name":"ids","in":"query"},{"schema":{"type":"string"},"required":false,"name":"names","in":"query"},{"schema":{"type":"string"},"required":false,"name":"symbols","in":"query"},{"schema":{"type":"string"},"required":false,"name":"vs_currencies","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_market_cap","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_24hr_vol","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_24hr_change","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_last_updated_at","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/simple/token_price/{id}":{"get":{"summary":"Query token prices by asset platform ID","tags":["Crypto"],"operationId":"get_crypto_simple_token_price_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"contract_addresses","in":"query"},{"schema":{"type":"string"},"required":false,"name":"vs_currencies","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_market_cap","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_24hr_vol","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_24hr_change","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_last_updated_at","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/simple/supported_vs_currencies":{"get":{"summary":"List supported vs currencies","tags":["Crypto"],"operationId":"get_crypto_simple_supported_vs_currencies","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/list":{"get":{"summary":"List supported coins with id, name and symbol","tags":["Crypto"],"operationId":"get_crypto_coins_list","parameters":[{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_platform","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/markets":{"get":{"summary":"List supported coins with market data","tags":["Crypto"],"operationId":"get_crypto_coins_markets","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"vs_currency","in":"query"},{"schema":{"type":"string"},"required":false,"name":"ids","in":"query"},{"schema":{"type":"string"},"required":false,"name":"category","in":"query"},{"schema":{"type":"string"},"required":false,"name":"order","in":"query"},{"schema":{"type":"string"},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"sparkline","in":"query"},{"schema":{"type":"string"},"required":false,"name":"price_change_percentage","in":"query"},{"schema":{"type":"string"},"required":false,"name":"locale","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/categories/list":{"get":{"summary":"List all coin categories","tags":["Crypto"],"operationId":"get_crypto_coins_categories_list","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/categories":{"get":{"summary":"List coin categories with market data","tags":["Crypto"],"operationId":"get_crypto_coins_categories","parameters":[{"schema":{"type":"string"},"required":false,"name":"vs_currency","in":"query"},{"schema":{"type":"string"},"required":false,"name":"order","in":"query"},{"schema":{"type":"string"},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"sparkline","in":"query"},{"schema":{"type":"string"},"required":false,"name":"locale","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{id}/tickers":{"get":{"summary":"Get coin tickers by coin ID","tags":["Crypto"],"operationId":"get_crypto_coins_id_tickers","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"exchange_ids","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_exchange_logo","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"order","in":"query"},{"schema":{"type":"string"},"required":false,"name":"depth","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{id}/history":{"get":{"summary":"Get historical data by coin ID and date","tags":["Crypto"],"operationId":"get_crypto_coins_id_history","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"date","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"localization","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{id}/market_chart/range":{"get":{"summary":"Get historical market chart range by coin ID","tags":["Crypto"],"operationId":"get_crypto_coins_id_market_chart_range","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"vs_currency","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"from","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"interval","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{id}/market_chart":{"get":{"summary":"Get historical market chart by coin ID","tags":["Crypto"],"operationId":"get_crypto_coins_id_market_chart","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"vs_currency","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"days","in":"query"},{"schema":{"type":"string"},"required":false,"name":"interval","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{id}/ohlc":{"get":{"summary":"Get OHLC chart by coin ID","tags":["Crypto"],"operationId":"get_crypto_coins_id_ohlc","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"vs_currency","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"days","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{asset_platform_id}/contract/{contract_address}/market_chart/range":{"get":{"summary":"Get market chart range by asset platform and contract","tags":["Crypto"],"operationId":"get_crypto_coins_asset_platform_id_contract_contract_address_market_chart_range","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"asset_platform_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"contract_address","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"vs_currency","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"from","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"interval","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{asset_platform_id}/contract/{contract_address}/market_chart":{"get":{"summary":"Get market chart by asset platform and contract","tags":["Crypto"],"operationId":"get_crypto_coins_asset_platform_id_contract_contract_address_market_chart","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"asset_platform_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"contract_address","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"vs_currency","in":"query"},{"schema":{"type":"string","minLength":1},"required":true,"name":"days","in":"query"},{"schema":{"type":"string"},"required":false,"name":"interval","in":"query"},{"schema":{"type":"string"},"required":false,"name":"precision","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{asset_platform_id}/contract/{contract_address}":{"get":{"summary":"Get coin metadata by asset platform and contract","tags":["Crypto"],"operationId":"get_crypto_coins_asset_platform_id_contract_contract_address","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"asset_platform_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"contract_address","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"localization","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"tickers","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"market_data","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"community_data","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"developer_data","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"sparkline","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/coins/{id}":{"get":{"summary":"Get coin metadata by coin ID","tags":["Crypto"],"operationId":"get_crypto_coins_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"localization","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"tickers","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"market_data","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"community_data","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"developer_data","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"sparkline","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/nfts/list":{"get":{"summary":"List supported NFT collections","tags":["Crypto"],"operationId":"get_crypto_nfts_list","parameters":[{"schema":{"type":"string"},"required":false,"name":"order","in":"query"},{"schema":{"type":"string"},"required":false,"name":"asset_platform_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/nfts/{asset_platform_id}/contract/{contract_address}":{"get":{"summary":"Get NFT collection data by contract and asset platform","tags":["Crypto"],"operationId":"get_crypto_nfts_asset_platform_id_contract_contract_address","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"asset_platform_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"contract_address","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"localization","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/nfts/{id}":{"get":{"summary":"Get NFT collection data by ID","tags":["Crypto"],"operationId":"get_crypto_nfts_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"localization","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/exchanges/list":{"get":{"summary":"List exchanges with ID and name","tags":["Crypto"],"operationId":"get_crypto_exchanges_list","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/exchanges/{id}/tickers":{"get":{"summary":"Get exchange tickers by exchange ID","tags":["Crypto"],"operationId":"get_crypto_exchanges_id_tickers","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"coin_ids","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_exchange_logo","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"depth","in":"query"},{"schema":{"type":"string"},"required":false,"name":"order","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/exchanges/{id}/volume_chart":{"get":{"summary":"Get exchange volume chart by exchange ID","tags":["Crypto"],"operationId":"get_crypto_exchanges_id_volume_chart","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"days","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/exchanges/{id}":{"get":{"summary":"Get exchange details by exchange ID","tags":["Crypto"],"operationId":"get_crypto_exchanges_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/exchanges":{"get":{"summary":"List supported exchanges with market data","tags":["Crypto"],"operationId":"get_crypto_exchanges","parameters":[{"schema":{"type":"string"},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/derivatives/exchanges/list":{"get":{"summary":"List derivatives exchanges with ID and name","tags":["Crypto"],"operationId":"get_crypto_derivatives_exchanges_list","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/derivatives/exchanges/{id}":{"get":{"summary":"Get derivatives exchange data by exchange ID","tags":["Crypto"],"operationId":"get_crypto_derivatives_exchanges_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_tickers","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/derivatives/exchanges":{"get":{"summary":"List derivatives exchanges with related data","tags":["Crypto"],"operationId":"get_crypto_derivatives_exchanges","parameters":[{"schema":{"type":"string"},"required":false,"name":"order","in":"query"},{"schema":{"type":"string"},"required":false,"name":"per_page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/derivatives":{"get":{"summary":"List derivatives tickers","tags":["Crypto"],"operationId":"get_crypto_derivatives","parameters":[{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_tickers","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/entities/list":{"get":{"summary":"List supported public treasury entities","tags":["Crypto"],"operationId":"get_crypto_entities_list","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/{entity}/public_treasury/{coin_id}":{"get":{"summary":"Get public treasury holdings by entity type and coin ID","tags":["Crypto"],"operationId":"get_crypto_entity_public_treasury_coin_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"entity","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"coin_id","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/companies/public_treasury/{coin_id}":{"get":{"summary":"Get public companies holdings by coin ID","tags":["Crypto"],"operationId":"get_crypto_companies_public_treasury_coin_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"coin_id","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/governments/public_treasury/{coin_id}":{"get":{"summary":"Get governments holdings by coin ID","tags":["Crypto"],"operationId":"get_crypto_governments_public_treasury_coin_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"coin_id","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/public_treasury/{entity_id}/{coin_id}/holding_chart":{"get":{"summary":"Get public treasury holding chart by entity ID and coin ID","tags":["Crypto"],"operationId":"get_crypto_public_treasury_entity_id_coin_id_holding_chart","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"entity_id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"coin_id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"days","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/public_treasury/{entity_id}/transaction_history":{"get":{"summary":"Get public treasury transaction history by entity ID","tags":["Crypto"],"operationId":"get_crypto_public_treasury_entity_id_transaction_history","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"entity_id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string"},"required":false,"name":"per_page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/public_treasury/{entity_id}":{"get":{"summary":"Get public treasury holdings by entity ID","tags":["Crypto"],"operationId":"get_crypto_public_treasury_entity_id","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"entity_id","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/asset_platforms":{"get":{"summary":"List supported asset platforms","tags":["Crypto"],"operationId":"get_crypto_asset_platforms","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/token_lists/{asset_platform_id}/all.json":{"get":{"summary":"Get token list for an asset platform","tags":["Crypto"],"operationId":"get_crypto_token_lists_asset_platform_id_all.json","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"asset_platform_id","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/exchange_rates":{"get":{"summary":"Get BTC exchange rates with other currencies","tags":["Crypto"],"operationId":"get_crypto_exchange_rates","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/search/trending":{"get":{"summary":"Get trending searches for coins, NFTs and categories","tags":["Crypto"],"operationId":"get_crypto_search_trending","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/search":{"get":{"summary":"Search coins, categories and exchanges","tags":["Crypto"],"operationId":"get_crypto_search","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"query","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/global/decentralized_finance_defi":{"get":{"summary":"Get global decentralized finance data","tags":["Crypto"],"operationId":"get_crypto_global_decentralized_finance_defi","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/global":{"get":{"summary":"Get global cryptocurrency market data","tags":["Crypto"],"operationId":"get_crypto_global","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/simple/networks/{network}/token_price/{addresses}":{"get":{"summary":"Get onchain token price by network and contract addresses","tags":["Crypto"],"operationId":"get_crypto_onchain_simple_networks_network_token_price_addresses","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"addresses","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"mcap_fdv_fallback","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/trending_pools":{"get":{"summary":"List trending pools across all networks","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_trending_pools","parameters":[{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/new_pools":{"get":{"summary":"List latest pools across all networks","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_new_pools","parameters":[{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/dexes/{dex}/pools":{"get":{"summary":"List top pools for a network and DEX","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_dexes_dex_pools","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"dex","in":"path"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/dexes":{"get":{"summary":"List supported DEXes on a network","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_dexes","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/pools/multi/{addresses}":{"get":{"summary":"Get multiple pools by network and addresses","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_pools_multi_addresses","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"addresses","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/pools/{pool_address}/info":{"get":{"summary":"Get pool metadata by network and pool address","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_pools_pool_address_info","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"pool_address","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/pools/{pool_address}/ohlcv/{timeframe}":{"get":{"summary":"Get pool OHLCV chart by network, pool and timeframe","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_pools_pool_address_ohlcv_timeframe","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"pool_address","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"timeframe","in":"path"},{"schema":{"type":"string"},"required":false,"name":"aggregate","in":"query"},{"schema":{"type":"string"},"required":false,"name":"before_timestamp","in":"query"},{"schema":{"type":"string"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"currency","in":"query"},{"schema":{"type":"string"},"required":false,"name":"token","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/pools/{pool_address}/trades":{"get":{"summary":"Get recent pool trades by network and pool address","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_pools_pool_address_trades","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"pool_address","in":"path"},{"schema":{"type":"string"},"required":false,"name":"trade_volume_in_usd_greater_than","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/pools/{pool_address}":{"get":{"summary":"Get pool data by network and pool address","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_pools_pool_address","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"pool_address","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/trending_pools":{"get":{"summary":"List trending pools for a network","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_trending_pools","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/new_pools":{"get":{"summary":"List latest pools for a network","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_new_pools","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/tokens/multi/{addresses}":{"get":{"summary":"Get multiple token data by network and addresses","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_tokens_multi_addresses","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"addresses","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/tokens/{token_address}/info":{"get":{"summary":"Get token metadata by network and token address","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_tokens_token_address_info","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"token_address","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/tokens/{token_address}/pools":{"get":{"summary":"List top pools for a token on a network","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_tokens_token_address_pools","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"token_address","in":"path"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/tokens/{token_address}":{"get":{"summary":"Get token data by network and token address","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_tokens_token_address","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"token_address","in":"path"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks/{network}/pools":{"get":{"summary":"List top pools for a network","tags":["Crypto"],"operationId":"get_crypto_onchain_networks_network_pools","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"network","in":"path"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/networks":{"get":{"summary":"List supported onchain networks","tags":["Crypto"],"operationId":"get_crypto_onchain_networks","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/search/pools":{"get":{"summary":"Search onchain pools","tags":["Crypto"],"operationId":"get_crypto_onchain_search_pools","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"query","in":"query"},{"schema":{"type":"string"},"required":false,"name":"network","in":"query"},{"schema":{"type":"string"},"required":false,"name":"page","in":"query"}],"responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/crypto/onchain/tokens/info_recently_updated":{"get":{"summary":"List most recently updated token metadata","tags":["Crypto"],"operationId":"get_crypto_onchain_tokens_info_recently_updated","responses":{"200":{"description":"Crypto response payload","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream crypto API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/currency/lates/{base}":{"get":{"summary":"Get latest exchange rates","tags":["Currency"],"operationId":"get_GetLatestRatesEndpoint","parameters":[{"schema":{"type":"string","minLength":3,"maxLength":3,"description":"Base currency code, e.g. USD."},"required":true,"description":"Base currency code, e.g. USD.","name":"base","in":"path"}],"responses":{"200":{"description":"Latest exchange rates payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream currency API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/currency/pair/{base}/{target}":{"get":{"summary":"Get a currency pair rate and optional converted amount","tags":["Currency"],"operationId":"get_GetPairRateEndpoint","parameters":[{"schema":{"type":"string","minLength":3,"maxLength":3,"description":"Base currency code, e.g. USD."},"required":true,"description":"Base currency code, e.g. USD.","name":"base","in":"path"},{"schema":{"type":"string","minLength":3,"maxLength":3,"description":"Target currency code, e.g. EUR."},"required":true,"description":"Target currency code, e.g. EUR.","name":"target","in":"path"},{"schema":{"type":"number","exclusiveMinimum":0,"description":"Optional amount to convert using the current pair rate."},"required":false,"description":"Optional amount to convert using the current pair rate.","name":"amount","in":"query"}],"responses":{"200":{"description":"Currency pair payload","content":{"application/json":{"schema":{}}}},"404":{"description":"Target currency not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream currency API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/math":{"get":{"summary":"Evaluate a math expression using query params","tags":["Math"],"operationId":"get_EvaluateMathExpressionByQueryEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Math.js expression, e.g. 2*(7-3)"},"required":true,"description":"Math.js expression, e.g. 2*(7-3)","name":"expr","in":"query"},{"schema":{"type":"string","description":"Optional number of significant digits"},"required":false,"description":"Optional number of significant digits","name":"precision","in":"query"}],"responses":{"200":{"description":"Expression evaluation result as plain text"},"400":{"description":"Invalid expression"},"500":{"description":"Upstream Math.js API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/math/{expr}":{"get":{"summary":"Evaluate a math expression using a path param","tags":["Math"],"operationId":"get_EvaluateMathExpressionByPathEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Math.js expression in path segment, e.g. 2%2F3"},"required":true,"description":"Math.js expression in path segment, e.g. 2%2F3","name":"expr","in":"path"},{"schema":{"type":"string","description":"Optional number of significant digits"},"required":false,"description":"Optional number of significant digits","name":"precision","in":"query"}],"responses":{"200":{"description":"Expression evaluation result as plain text"},"400":{"description":"Invalid expression"},"500":{"description":"Upstream Math.js API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/random-user/{results}":{"get":{"summary":"Generate a specific number of random users from the latest API","tags":["Random User"],"operationId":"get_RandomUserWithResultsEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":5000,"description":"Number of users to generate."},"required":true,"description":"Number of users to generate.","name":"results","in":"path"},{"schema":{"type":"string","description":"User gender filter, typically male or female."},"required":false,"description":"User gender filter, typically male or female.","name":"gender","in":"query"},{"schema":{"type":"string","description":"Password rule string such as upper,lower,1-16."},"required":false,"description":"Password rule string such as upper,lower,1-16.","name":"password","in":"query"},{"schema":{"type":"string","description":"Stable seed for repeatable results."},"required":false,"description":"Stable seed for repeatable results.","name":"seed","in":"query"},{"schema":{"type":"string","enum":["json","pretty","prettyjson","csv","yaml","xml"],"description":"Response format."},"required":false,"description":"Response format.","name":"format","in":"query"},{"schema":{"type":"string","description":"Comma-separated nationality codes, e.g. us,dk,fr."},"required":false,"description":"Comma-separated nationality codes, e.g. us,dk,fr.","name":"nat","in":"query"},{"schema":{"type":"integer","minimum":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","description":"Comma-separated included fields."},"required":false,"description":"Comma-separated included fields.","name":"inc","in":"query"},{"schema":{"type":"string","description":"Comma-separated excluded fields."},"required":false,"description":"Comma-separated excluded fields.","name":"exc","in":"query"},{"schema":{"anyOf":[{"type":"string","enum":[""]},{"type":"string"}],"description":"Download the output using the format extension."},"required":false,"description":"Download the output using the format extension.","name":"dl","in":"query"},{"schema":{"anyOf":[{"type":"string","enum":[""]},{"type":"string"}],"description":"Remove the info block from JSON output."},"required":false,"description":"Remove the info block from JSON output.","name":"noinfo","in":"query"},{"schema":{"type":"string","description":"JSONP callback name for JSON responses."},"required":false,"description":"JSONP callback name for JSON responses.","name":"callback","in":"query"}],"responses":{"200":{"description":"Random User API response in the requested format"},"400":{"description":"Invalid Random User request"},"500":{"description":"Upstream Random User API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/random-user":{"get":{"summary":"Generate random users from the latest Random User API","tags":["Random User"],"operationId":"get_RandomUserLatestEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":5000},"required":false,"name":"results","in":"query"},{"schema":{"type":"string","description":"User gender filter, typically male or female."},"required":false,"description":"User gender filter, typically male or female.","name":"gender","in":"query"},{"schema":{"type":"string","description":"Password rule string such as upper,lower,1-16."},"required":false,"description":"Password rule string such as upper,lower,1-16.","name":"password","in":"query"},{"schema":{"type":"string","description":"Stable seed for repeatable results."},"required":false,"description":"Stable seed for repeatable results.","name":"seed","in":"query"},{"schema":{"type":"string","enum":["json","pretty","prettyjson","csv","yaml","xml"],"description":"Response format."},"required":false,"description":"Response format.","name":"format","in":"query"},{"schema":{"type":"string","description":"Comma-separated nationality codes, e.g. us,dk,fr."},"required":false,"description":"Comma-separated nationality codes, e.g. us,dk,fr.","name":"nat","in":"query"},{"schema":{"type":"integer","minimum":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","description":"Comma-separated included fields."},"required":false,"description":"Comma-separated included fields.","name":"inc","in":"query"},{"schema":{"type":"string","description":"Comma-separated excluded fields."},"required":false,"description":"Comma-separated excluded fields.","name":"exc","in":"query"},{"schema":{"anyOf":[{"type":"string","enum":[""]},{"type":"string"}],"description":"Download the output using the format extension."},"required":false,"description":"Download the output using the format extension.","name":"dl","in":"query"},{"schema":{"anyOf":[{"type":"string","enum":[""]},{"type":"string"}],"description":"Remove the info block from JSON output."},"required":false,"description":"Remove the info block from JSON output.","name":"noinfo","in":"query"},{"schema":{"type":"string","description":"JSONP callback name for JSON responses."},"required":false,"description":"JSONP callback name for JSON responses.","name":"callback","in":"query"}],"responses":{"200":{"description":"Random User API response in the requested format"},"400":{"description":"Invalid Random User request"},"500":{"description":"Upstream Random User API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/tempmail/emails":{"get":{"summary":"List all active temporary emails","tags":["Temp Mail"],"operationId":"get_TempMailListEmailsEndpoint","parameters":[{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_expired","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"permanent_only","in":"query"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"include_permanent","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"List of active temporary emails","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"402":{"description":"Insufficient credits for permanent inbox options","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream Temp Mail API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/tempmail/emails/{id}":{"get":{"summary":"Get details of a specific email","tags":["Temp Mail"],"operationId":"get_TempMailGetEmailByIdEndpoint","parameters":[{"schema":{"type":"string","format":"uuid","description":"Email ID (UUID)."},"required":true,"description":"Email ID (UUID).","name":"id","in":"path"}],"responses":{"200":{"description":"Email details","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Email not found or expired","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream Temp Mail API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/tempmail/emails/{id}/messages":{"get":{"summary":"Get messages for a specific email","tags":["Temp Mail"],"operationId":"get_TempMailGetEmailMessagesEndpoint","parameters":[{"schema":{"type":"string","format":"uuid","description":"Email ID (UUID)."},"required":true,"description":"Email ID (UUID).","name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"},{"schema":{"type":["integer","null"],"minimum":0},"required":false,"name":"offset","in":"query"}],"responses":{"200":{"description":"List of messages for the email","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid limit or offset","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Email not found or expired","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream Temp Mail API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/truth-or-dare":{"get":{"summary":"Get a truth or dare prompt","tags":["Truth or Dare"],"operationId":"get_GetTruthOrDareEndpoint","parameters":[{"schema":{"type":"string","description":"Game type, for example party."},"required":false,"description":"Game type, for example party.","name":"game","in":"query"},{"schema":{"type":"string","description":"Prompt mode, for example dare or truth."},"required":false,"description":"Prompt mode, for example dare or truth.","name":"mode","in":"query"},{"schema":{"type":"string","description":"Content stage, for example chill."},"required":false,"description":"Content stage, for example chill.","name":"stage","in":"query"},{"schema":{"type":"string","description":"Free-form notes to guide safer or contextual content."},"required":false,"description":"Free-form notes to guide safer or contextual content.","name":"notes","in":"query"},{"schema":{"type":"string","description":"Language name, for example Bangla."},"required":false,"description":"Language name, for example Bangla.","name":"lang","in":"query"}],"responses":{"200":{"description":"Truth or Dare API response"},"400":{"description":"Invalid Truth or Dare request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream Truth or Dare API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/time/timezones":{"get":{"summary":"List all available IANA timezones","tags":["World Time"],"operationId":"get_ListTimezonesEndpoint","responses":{"200":{"description":"List of valid timezone strings","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream world time API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/time/timezone/{area}/{location}":{"get":{"summary":"Get current time by timezone path params","tags":["World Time"],"operationId":"get_GetTimezoneByPathEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Timezone area, e.g. Europe."},"required":true,"description":"Timezone area, e.g. Europe.","name":"area","in":"path"},{"schema":{"type":"string","minLength":1,"description":"Timezone location, e.g. London."},"required":true,"description":"Timezone location, e.g. London.","name":"location","in":"path"}],"responses":{"200":{"description":"Current time object for the requested timezone","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream world time API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/time/timezone":{"get":{"summary":"Get current time by timezone query params","tags":["World Time"],"operationId":"get_GetTimezoneByQueryEndpoint","parameters":[{"schema":{"type":"string","description":"Full IANA timezone, e.g. Europe/London."},"required":false,"description":"Full IANA timezone, e.g. Europe/London.","name":"tz","in":"query"},{"schema":{"type":"string","description":"Timezone area, e.g. Europe."},"required":false,"description":"Timezone area, e.g. Europe.","name":"area","in":"query"},{"schema":{"type":"string","description":"Timezone location, e.g. London."},"required":false,"description":"Timezone location, e.g. London.","name":"location","in":"query"}],"responses":{"200":{"description":"Current time object for the requested timezone","content":{"application/json":{"schema":{}}}},"400":{"description":"Missing timezone query parameters","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream world time API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/time/ip/{ip}":{"get":{"summary":"Get current time for a specific IP (path param)","tags":["World Time"],"operationId":"get_GetTimeByIpPathEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"IPv4 or IPv6 address, e.g. 8.8.8.8."},"required":true,"description":"IPv4 or IPv6 address, e.g. 8.8.8.8.","name":"ip","in":"path"}],"responses":{"200":{"description":"Current time object for the provided IP","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream world time API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/time/ip":{"get":{"summary":"Get current time by requester IP or query IP","tags":["World Time"],"operationId":"get_GetTimeByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Optional IP lookup. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IP lookup. If omitted, requester IP is auto-detected.","name":"ip","in":"query"}],"responses":{"200":{"description":"Current time object for auto-detected or provided IP","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream world time API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition":{"get":{"summary":"List available Quran text and audio editions","tags":["Quran Editions"],"operationId":"get_ListEditionsEndpoint","parameters":[{"schema":{"type":"string","enum":["text","audio"]},"required":false,"name":"format","in":"query"},{"schema":{"type":"string","minLength":2,"maxLength":2},"required":false,"name":"language","in":"query"},{"schema":{"type":"string"},"required":false,"name":"type","in":"query"}],"responses":{"200":{"description":"Edition list","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition/language":{"get":{"summary":"List languages that have Quran editions","tags":["Quran Editions"],"operationId":"get_ListEditionLanguagesEndpoint","responses":{"200":{"description":"Language list","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition/language/{language}":{"get":{"summary":"List Quran editions for a specific language","tags":["Quran Editions"],"operationId":"get_ListLanguageEditionsEndpoint","parameters":[{"schema":{"type":"string","minLength":2,"maxLength":2},"required":true,"name":"language","in":"path"}],"responses":{"200":{"description":"Edition list for the requested language","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition/type":{"get":{"summary":"List available Quran edition types","tags":["Quran Editions"],"operationId":"get_ListEditionTypesEndpoint","responses":{"200":{"description":"Edition type list","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition/type/{type}":{"get":{"summary":"List Quran editions for a specific type","tags":["Quran Editions"],"operationId":"get_ListTypeEditionsEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"type","in":"path"}],"responses":{"200":{"description":"Edition list for the requested type","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition/format":{"get":{"summary":"List available Quran edition formats","tags":["Quran Editions"],"operationId":"get_ListEditionFormatsEndpoint","responses":{"200":{"description":"Edition format list","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/edition/format/{format}":{"get":{"summary":"List Quran editions for a specific format","tags":["Quran Editions"],"operationId":"get_ListFormatEditionsEndpoint","parameters":[{"schema":{"type":"string","enum":["text","audio"]},"required":true,"name":"format","in":"path"}],"responses":{"200":{"description":"Edition list for the requested format","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/quran":{"get":{"summary":"Get a complete Quran edition","tags":["Quran Content"],"operationId":"get_GetQuranEndpoint","parameters":[{"schema":{"type":"string","description":"Edition identifier. Defaults to quran-uthmani."},"required":false,"description":"Edition identifier. Defaults to quran-uthmani.","name":"edition","in":"query"}],"responses":{"200":{"description":"Complete Quran edition payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/juz/{juz}":{"get":{"summary":"Get a Juz of the Quran","tags":["Quran Content"],"operationId":"get_GetJuzEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":30},"required":true,"name":"juz","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Juz payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/surah/{surah}":{"get":{"summary":"Get a Surah of the Quran","tags":["Quran Content"],"operationId":"get_GetSurahEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":114},"required":true,"name":"surah","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Surah payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/ayah/{reference}":{"get":{"summary":"Get an Ayah of the Quran","tags":["Quran Content"],"operationId":"get_GetAyahEndpoint","parameters":[{"schema":{"type":"string","minLength":1,"description":"Ayah reference such as 1:1 or an ayah number."},"required":true,"description":"Ayah reference such as 1:1 or an ayah number.","name":"reference","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Ayah payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/search/{keyword}":{"get":{"summary":"Search the text of the Quran","tags":["Quran Search"],"description":"Maps to the upstream search endpoint using a keyword path parameter and a surah query parameter. When surah is omitted, the worker forwards 'all' to the upstream API.","operationId":"get_SearchQuranEndpoint","parameters":[{"schema":{"type":"string","minLength":1},"required":true,"name":"keyword","in":"path"},{"schema":{"type":"string","description":"Surah number or 'all'. Defaults to 'all'."},"required":false,"description":"Surah number or 'all'. Defaults to 'all'.","name":"surah","in":"query"}],"responses":{"200":{"description":"Search results payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/manzil/{manzil}":{"get":{"summary":"Get a Manzil of the Quran","tags":["Quran Content"],"operationId":"get_GetManzilEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":7},"required":true,"name":"manzil","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Manzil payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/ruku/{surah}/{ruku}":{"get":{"summary":"Get a specific Ruku within a Surah","tags":["Quran Content"],"description":"This uses the upstream /ruku/{surah}/{ruku} form, which currently works without an edition segment.","operationId":"get_GetRukuBySurahEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":114},"required":true,"name":"surah","in":"path"},{"schema":{"type":"integer","minimum":1},"required":true,"name":"ruku","in":"path"}],"responses":{"200":{"description":"Surah-specific Ruku payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/ruku/{ruku}":{"get":{"summary":"Get a Ruku of the Quran","tags":["Quran Content"],"operationId":"get_GetRukuEndpoint","parameters":[{"schema":{"type":"integer","minimum":1},"required":true,"name":"ruku","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Ruku payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/page/{page}":{"get":{"summary":"Get a Page of the Quran","tags":["Quran Content"],"operationId":"get_GetPageEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":604},"required":true,"name":"page","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Page payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/hizb-quarter/{quarter}":{"get":{"summary":"Get a Hizb Quarter of the Quran","tags":["Quran Content"],"operationId":"get_GetHizbQuarterEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":240},"required":true,"name":"quarter","in":"path"},{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Hizb quarter payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/sajda":{"get":{"summary":"Get all Sajda verses in the Quran","tags":["Quran Content"],"operationId":"get_GetSajdaEndpoint","parameters":[{"schema":{"type":"string"},"required":false,"name":"edition","in":"query"}],"responses":{"200":{"description":"Sajda payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/quran/meta":{"get":{"summary":"Get Quran meta data about Surahs, Pages, Hizbs and Juzs","tags":["Quran Meta"],"operationId":"get_GetMetaEndpoint","responses":{"200":{"description":"Meta payload","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Quran API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings/ip/today":{"get":{"summary":"Prayer times for today (auto-detected IP)","tags":["Prayer Timings"],"operationId":"get_GetTimingsTodayByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for today's date and detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings/today":{"get":{"summary":"Prayer times for today (coordinates)","tags":["Prayer Timings"],"operationId":"get_GetTimingsTodayEndpoint","parameters":[{"schema":{"type":"string","description":"Latitude of the location, e.g. 51.5194682."},"required":true,"description":"Latitude of the location, e.g. 51.5194682.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location, e.g. -0.1360365."},"required":true,"description":"Longitude of the location, e.g. -0.1360365.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for today's date and coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings-by-address/today":{"get":{"summary":"Prayer times for today (address)","tags":["Prayer Timings"],"operationId":"get_GetTimingsTodayByAddressEndpoint","parameters":[{"schema":{"type":"string","description":"Address of the location, e.g. 'Trafalgar Square, London, UK'."},"required":true,"description":"Address of the location, e.g. 'Trafalgar Square, London, UK'.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for today's date and address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings-by-city/today":{"get":{"summary":"Prayer times for today (city)","tags":["Prayer Timings"],"operationId":"get_GetTimingsTodayByCityEndpoint","parameters":[{"schema":{"type":"string","description":"Name of the city, e.g. London."},"required":true,"description":"Name of the city, e.g. London.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code, e.g. GB."},"required":true,"description":"Country name or 2-character ISO 3166 code, e.g. GB.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for today's date and city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings/ip/{date}":{"get":{"summary":"Prayer times for a specific date (auto-detected IP)","tags":["Prayer Timings"],"operationId":"get_GetTimingsByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for the given date and detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings/{date}":{"get":{"summary":"Prayer times for a specific date (coordinates)","tags":["Prayer Timings"],"operationId":"get_GetTimingsEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Latitude of the location, e.g. 51.5194682."},"required":true,"description":"Latitude of the location, e.g. 51.5194682.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location, e.g. -0.1360365."},"required":true,"description":"Longitude of the location, e.g. -0.1360365.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for the given date and coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings-by-address/{date}":{"get":{"summary":"Prayer times for a specific date (address)","tags":["Prayer Timings"],"operationId":"get_GetTimingsByAddressEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Address of the location, e.g. 'Trafalgar Square, London, UK'."},"required":true,"description":"Address of the location, e.g. 'Trafalgar Square, London, UK'.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for the given date and address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/timings-by-city/{date}":{"get":{"summary":"Prayer times for a specific date (city)","tags":["Prayer Timings"],"operationId":"get_GetTimingsByCityEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Name of the city, e.g. London."},"required":true,"description":"Name of the city, e.g. London.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code, e.g. GB."},"required":true,"description":"Country name or 2-character ISO 3166 code, e.g. GB.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for the given date and city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/next-prayer/ip/today":{"get":{"summary":"Next prayer time for today (auto-detected IP)","tags":["Prayer Timings"],"operationId":"get_GetNextPrayerTodayByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Next prayer time for today's date and detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/next-prayer/today":{"get":{"summary":"Next prayer time for today (coordinates)","tags":["Prayer Timings"],"operationId":"get_GetNextPrayerTodayEndpoint","parameters":[{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Next prayer time for today's date and coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/next-prayer-by-address/today":{"get":{"summary":"Next prayer time for today (address)","tags":["Prayer Timings"],"operationId":"get_GetNextPrayerTodayByAddressEndpoint","parameters":[{"schema":{"type":"string","description":"Address of the location, e.g. 'Trafalgar Square, London, UK'."},"required":true,"description":"Address of the location, e.g. 'Trafalgar Square, London, UK'.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Next prayer time for today's date and address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/next-prayer/ip/{date}":{"get":{"summary":"Next prayer time for a specific date (auto-detected IP)","tags":["Prayer Timings"],"operationId":"get_GetNextPrayerByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Next prayer time for the given date and detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/next-prayer/{date}":{"get":{"summary":"Next prayer time for a specific date (coordinates)","tags":["Prayer Timings"],"operationId":"get_GetNextPrayerEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Next prayer time for the given date and coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/next-prayer-by-address/{date}":{"get":{"summary":"Next prayer time for a specific date (address)","tags":["Prayer Timings"],"operationId":"get_GetNextPrayerByAddressEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","description":"Address of the location, e.g. 'Trafalgar Square, London, UK'."},"required":true,"description":"Address of the location, e.g. 'Trafalgar Square, London, UK'.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Next prayer time for the given date and address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar/ip/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Gregorian month (auto-detected IP)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarMonthByIpEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Gregorian month number (1-12)."},"required":true,"description":"Gregorian month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the month at detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Gregorian month (coordinates)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarMonthEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Gregorian month number (1-12)."},"required":true,"description":"Gregorian month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the month.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar/ip/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Hijri month (auto-detected IP)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarMonthByIpEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Hijri month number (1-12)."},"required":true,"description":"Hijri month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the Hijri month at detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Hijri month (coordinates)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarMonthEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Hijri month number (1-12)."},"required":true,"description":"Hijri month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the Hijri month.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar-by-address/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Gregorian month (address)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarMonthByAddressEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Gregorian month number (1-12)."},"required":true,"description":"Gregorian month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Address of the location."},"required":true,"description":"Address of the location.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the month at the given address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar-by-address/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Hijri month (address)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarMonthByAddressEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Hijri month number (1-12)."},"required":true,"description":"Hijri month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Address of the location."},"required":true,"description":"Address of the location.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the Hijri month at the given address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar-by-city/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Gregorian month (city)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarMonthByCityEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Gregorian month number (1-12)."},"required":true,"description":"Gregorian month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Name of the city."},"required":true,"description":"Name of the city.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code."},"required":true,"description":"Country name or 2-character ISO 3166 code.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the month for the given city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar-by-city/{year}/{month}":{"get":{"summary":"Prayer times calendar for a Hijri month (city)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarMonthByCityEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Hijri month number (1-12)."},"required":true,"description":"Hijri month number (1-12).","name":"month","in":"path"},{"schema":{"type":"string","description":"Name of the city."},"required":true,"description":"Name of the city.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code."},"required":true,"description":"Country name or 2-character ISO 3166 code.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day of the Hijri month for the given city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar/ip/{year}":{"get":{"summary":"Prayer times calendar for a Gregorian year (auto-detected IP)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarYearByIpEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Gregorian year at detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar/{year}":{"get":{"summary":"Prayer times calendar for a Gregorian year (coordinates)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarYearEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Gregorian year.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar/ip/{year}":{"get":{"summary":"Prayer times calendar for a Hijri year (auto-detected IP)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarYearByIpEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Hijri year at detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar/{year}":{"get":{"summary":"Prayer times calendar for a Hijri year (coordinates)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarYearEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Hijri year.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar-by-address/{year}":{"get":{"summary":"Prayer times calendar for a Gregorian year (address)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarYearByAddressEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"string","description":"Address of the location."},"required":true,"description":"Address of the location.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Gregorian year at the given address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar-by-address/{year}":{"get":{"summary":"Prayer times calendar for a Hijri year (address)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarYearByAddressEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"string","description":"Address of the location."},"required":true,"description":"Address of the location.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Hijri year at the given address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar-by-city/{year}":{"get":{"summary":"Prayer times calendar for a Gregorian year (city)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarYearByCityEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"string","description":"Name of the city."},"required":true,"description":"Name of the city.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code."},"required":true,"description":"Country name or 2-character ISO 3166 code.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Gregorian year for the given city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/hijri-calendar-by-city/{year}":{"get":{"summary":"Prayer times calendar for a Hijri year (city)","tags":["Prayer Calendar"],"operationId":"get_GetHijriCalendarYearByCityEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"string","description":"Name of the city."},"required":true,"description":"Name of the city.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code."},"required":true,"description":"Country name or 2-character ISO 3166 code.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for all days of the Hijri year for the given city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar/ip/from/{start}/to/{end}":{"get":{"summary":"Prayer times calendar between two Gregorian dates (auto-detected IP)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarRangeByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"start","in":"path"},{"schema":{"type":"string","description":"End date in DD-MM-YYYY format (max 11 months after start), e.g. 01-02-2025."},"required":true,"description":"End date in DD-MM-YYYY format (max 11 months after start), e.g. 01-02-2025.","name":"end","in":"path"},{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day in the given date range at detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar/from/{start}/to/{end}":{"get":{"summary":"Prayer times calendar between two Gregorian dates (coordinates)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarRangeEndpoint","parameters":[{"schema":{"type":"string","description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"start","in":"path"},{"schema":{"type":"string","description":"End date in DD-MM-YYYY format (max 11 months after start), e.g. 01-02-2025."},"required":true,"description":"End date in DD-MM-YYYY format (max 11 months after start), e.g. 01-02-2025.","name":"end","in":"path"},{"schema":{"type":"string","description":"Latitude of the location."},"required":true,"description":"Latitude of the location.","name":"latitude","in":"query"},{"schema":{"type":"string","description":"Longitude of the location."},"required":true,"description":"Longitude of the location.","name":"longitude","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day in the given date range.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar-by-address/from/{start}/to/{end}":{"get":{"summary":"Prayer times calendar between two Gregorian dates (address)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarRangeByAddressEndpoint","parameters":[{"schema":{"type":"string","description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"start","in":"path"},{"schema":{"type":"string","description":"End date in DD-MM-YYYY format (max 11 months after start)."},"required":true,"description":"End date in DD-MM-YYYY format (max 11 months after start).","name":"end","in":"path"},{"schema":{"type":"string","description":"Address of the location."},"required":true,"description":"Address of the location.","name":"address","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day in the given date range at the given address.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/calendar-by-city/from/{start}/to/{end}":{"get":{"summary":"Prayer times calendar between two Gregorian dates (city)","tags":["Prayer Calendar"],"operationId":"get_GetCalendarRangeByCityEndpoint","parameters":[{"schema":{"type":"string","description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Start date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"start","in":"path"},{"schema":{"type":"string","description":"End date in DD-MM-YYYY format (max 11 months after start)."},"required":true,"description":"End date in DD-MM-YYYY format (max 11 months after start).","name":"end","in":"path"},{"schema":{"type":"string","description":"Name of the city."},"required":true,"description":"Name of the city.","name":"city","in":"query"},{"schema":{"type":"string","description":"Country name or 2-character ISO 3166 code."},"required":true,"description":"Country name or 2-character ISO 3166 code.","name":"country","in":"query"},{"schema":{"type":"string","description":"Name of the state or region."},"required":false,"description":"Name of the state or region.","name":"state","in":"query"},{"schema":{"type":"string","description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted."},"required":false,"description":"7x API key from https://7x.ax to geocode the address/city. Coords are masked in response if omitted.","name":"x7xapikey","in":"query"},{"schema":{"type":["integer","null"],"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom."},"required":false,"description":"Calculation method (0-23 or 99). 0=Jafari, 1=Karachi, 2=ISNA, 3=MWL, 4=Makkah, 5=Egypt, 7=Tehran, 8=Gulf, 9=Kuwait, 10=Qatar, 11=Singapore, 12=France, 13=Turkey, 14=Russia, 15=Moonsighting, 16=Dubai, 17=JAKIM, 18=Tunisia, 19=Algeria, 20=Indonesia, 21=Morocco, 22=Lisbon, 23=Jordan, 99=Custom.","name":"method","in":"query"},{"schema":{"type":"string","enum":["general","ahmer","abyad"],"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide)."},"required":false,"description":"Shafaq to use when method=15 (Moonsighting Committee Worldwide).","name":"shafaq","in":"query"},{"schema":{"type":"string","description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight."},"required":false,"description":"Comma-separated offsets in minutes: Imsak,Fajr,Sunrise,Dhuhr,Asr,Maghrib,Sunset,Isha,Midnight.","name":"tune","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Shafi (default), 1=Hanafi."},"required":false,"description":"0=Shafi (default), 1=Hanafi.","name":"school","in":"query"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":1,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr)."},"required":false,"description":"0=Standard (Sunset to Sunrise), 1=Jafari (Sunset to Fajr).","name":"midnightMode","in":"query"},{"schema":{"type":"string","description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted."},"required":false,"description":"Valid timezone name (e.g. Europe/London). Derived from coordinates if omitted.","name":"timezonestring","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":3,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based."},"required":false,"description":"Adjustment for high latitudes. 1=Middle of Night, 2=One Seventh, 3=Angle Based.","name":"latitudeAdjustmentMethod","in":"query"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA.","name":"calendarMethod","in":"query"},{"schema":{"type":["boolean","null"],"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00)."},"required":false,"description":"Return prayer times in ISO 8601 format (e.g. 2020-07-01T02:56:00+01:00).","name":"iso8601","in":"query"}],"responses":{"200":{"description":"Prayer times for each day in the given date range for the given city.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/prayer/methods":{"get":{"summary":"List all supported prayer times calculation methods","tags":["Prayer Methods"],"operationId":"get_GetPrayerMethodsEndpoint","responses":{"200":{"description":"All supported calculation methods with their parameters.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/calendar/gregorian/{month}/{year}":{"get":{"summary":"Hijri calendar for a Gregorian month","tags":["Islamic Calendar"],"operationId":"get_GToHCalendarEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Gregorian month number (1-12), e.g. 1 for January."},"required":true,"description":"Gregorian month number (1-12), e.g. 1 for January.","name":"month","in":"path"},{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"Hijri dates for each day of the given Gregorian month.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/calendar/hijri/{month}/{year}":{"get":{"summary":"Gregorian calendar for a Hijri month","tags":["Islamic Calendar"],"operationId":"get_HToGCalendarEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Hijri month number (1-12), e.g. 1 for Muharram, 7 for Rajab."},"required":true,"description":"Hijri month number (1-12), e.g. 1 for Muharram, 7 for Rajab.","name":"month","in":"path"},{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"Gregorian dates for each day of the given Hijri month.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/convert/today":{"get":{"summary":"Today's Hijri date","tags":["Islamic Calendar"],"operationId":"get_TodayHijriEndpoint","parameters":[{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"Hijri equivalent of today's Gregorian date.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/convert/to-hijri/{date}":{"get":{"summary":"Convert a Gregorian date to a Hijri date","tags":["Islamic Calendar"],"operationId":"get_GToHEndpoint","parameters":[{"schema":{"type":"string","description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025."},"required":true,"description":"Gregorian date in DD-MM-YYYY format, e.g. 01-01-2025.","name":"date","in":"path"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"Hijri equivalent of the given Gregorian date.","content":{"application/json":{"schema":{}}}},"404":{"description":"Date not found or out of range.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/convert/to-gregorian/{date}":{"get":{"summary":"Convert a Hijri date to a Gregorian date","tags":["Islamic Calendar"],"operationId":"get_HToGEndpoint","parameters":[{"schema":{"type":"string","description":"Hijri date in DD-MM-YYYY format, e.g. 01-07-1446."},"required":true,"description":"Hijri date in DD-MM-YYYY format, e.g. 01-07-1446.","name":"date","in":"path"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"Gregorian equivalent of the given Hijri date.","content":{"application/json":{"schema":{}}}},"404":{"description":"Date not found or out of range.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/holiday/next":{"get":{"summary":"Next upcoming Hijri / Islamic holiday","tags":["Islamic Calendar"],"operationId":"get_NextHijriHolidayEndpoint","parameters":[{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"The next upcoming holiday in the Hijri calendar.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/holiday/day/{day}/{month}":{"get":{"summary":"Holiday for a specific Hijri day and month","tags":["Islamic Calendar"],"operationId":"get_HijriHolidaysByDayEndpoint","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":30,"description":"Day in a Hijri month (1-30)."},"required":true,"description":"Day in a Hijri month (1-30).","name":"day","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":12,"description":"Hijri month number (1-12), e.g. 1 for Muharram."},"required":true,"description":"Hijri month number (1-12), e.g. 1 for Muharram.","name":"month","in":"path"}],"responses":{"200":{"description":"Holiday name(s) for the specified Hijri day.","content":{"application/json":{"schema":{}}}},"404":{"description":"No holiday found for the given day and month.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/holiday/year/{year}":{"get":{"summary":"All Hijri holidays for a specific Hijri year","tags":["Islamic Calendar"],"operationId":"get_HijriHolidaysByYearEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Hijri year, e.g. 1446."},"required":false,"description":"Hijri year, e.g. 1446.","name":"year","in":"path"},{"schema":{"type":"string","enum":["HJCoSA","UAQ","DIYANET","MATHEMATICAL"],"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı."},"required":false,"description":"Calendar calculation method. Defaults to HJCoSA. HJCoSA=High Judicial Council of Saudi Arabia, UAQ=Umm al-Qura, DIYANET=Diyanet İşleri Başkanlığı.","name":"calendarMethod","in":"query"},{"schema":{"type":["integer","null"],"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2)."},"required":false,"description":"Only used when calendarMethod is MATHEMATICAL. Number of days to adjust the converted date (e.g. 1, 2, -1, -2).","name":"adjustment","in":"query"}],"responses":{"200":{"description":"List of all holidays in the given Hijri year.","content":{"application/json":{"schema":{}}}},"404":{"description":"Year not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/special-days":{"get":{"summary":"List all special days in the Hijri calendar","tags":["Islamic Calendar"],"operationId":"get_SpecialDaysEndpoint","responses":{"200":{"description":"All special days (month, day, name) in the Hijri calendar.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/current-year":{"get":{"summary":"Current Islamic / Hijri year","tags":["Islamic Calendar"],"operationId":"get_CurrentIslamicYearEndpoint","responses":{"200":{"description":"The current Hijri year as an integer.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/current-month":{"get":{"summary":"Current Islamic / Hijri month","tags":["Islamic Calendar"],"operationId":"get_CurrentIslamicMonthEndpoint","responses":{"200":{"description":"The current Hijri month number as an integer.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/year-from-gregorian/{year}":{"get":{"summary":"Islamic year equivalent for a Gregorian year (Ramadan-based)","tags":["Islamic Calendar"],"operationId":"get_IslamicYearFromGregorianEndpoint","parameters":[{"schema":{"type":["integer","null"],"description":"Gregorian year, e.g. 2025."},"required":false,"description":"Gregorian year, e.g. 2025.","name":"year","in":"path"}],"responses":{"200":{"description":"The Islamic (Hijri) year that contains Ramadan of the given Gregorian year.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/months":{"get":{"summary":"List all Islamic / Hijri months","tags":["Islamic Calendar"],"operationId":"get_IslamicMonthsEndpoint","responses":{"200":{"description":"All 12 Islamic months with their Arabic and English names.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/hijri/methods":{"get":{"summary":"List all supported Hijri / Islamic calendar calculation methods","tags":["Islamic Calendar"],"operationId":"get_IslamicCalendarMethodsEndpoint","responses":{"200":{"description":"Supported methods with their IDs, names, descriptions, and validity ranges.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/qibla/ip/compass":{"get":{"summary":"Get Qibla compass image using auto-detected requester IP","tags":["Qibla"],"operationId":"get_GetQiblaCompassByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"}],"responses":{"200":{"description":"PNG compass image with Qibla direction for detected coordinates.","content":{"image/png":{"schema":{}}}},"500":{"description":"Geolocation or upstream Qibla API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/qibla/ip":{"get":{"summary":"Get Qibla direction angle using auto-detected requester IP","tags":["Qibla"],"operationId":"get_GetQiblaByIpEndpoint","parameters":[{"schema":{"type":"string","description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected."},"required":false,"description":"Optional IPv4/IPv6 value. If omitted, requester IP is auto-detected.","name":"ip","in":"query"}],"responses":{"200":{"description":"Qibla direction in degrees for the detected coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Geolocation or upstream Qibla API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/qibla/{latitude}/{longitude}":{"get":{"summary":"Get Qibla direction angle using coordinates","tags":["Qibla"],"operationId":"get_GetQiblaDirectionEndpoint","parameters":[{"schema":{"type":["number","null"],"description":"Latitude coordinates, e.g. 19.071017570421."},"required":false,"description":"Latitude coordinates, e.g. 19.071017570421.","name":"latitude","in":"path"},{"schema":{"type":["number","null"],"description":"Longitude coordinates, e.g. 72.838622286762."},"required":false,"description":"Longitude coordinates, e.g. 72.838622286762.","name":"longitude","in":"path"}],"responses":{"200":{"description":"Qibla direction in degrees for the requested coordinates.","content":{"application/json":{"schema":{}}}},"500":{"description":"Upstream Qibla API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/qibla/{latitude}/{longitude}/compass":{"get":{"summary":"Get Qibla compass image using coordinates","tags":["Qibla"],"operationId":"get_GetQiblaCompassEndpoint","parameters":[{"schema":{"type":["number","null"],"description":"Latitude coordinates, e.g. 19.071017570421."},"required":false,"description":"Latitude coordinates, e.g. 19.071017570421.","name":"latitude","in":"path"},{"schema":{"type":["number","null"],"description":"Longitude coordinates, e.g. 72.838622286762."},"required":false,"description":"Longitude coordinates, e.g. 72.838622286762.","name":"longitude","in":"path"}],"responses":{"200":{"description":"PNG compass image with Qibla direction.","content":{"image/png":{"schema":{}}}},"500":{"description":"Upstream Qibla API error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}}},"webhooks":{}}