@apifreaks/openapi-specs 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/index.cjs +133 -2
  2. package/dist/index.d.cts +140 -3
  3. package/dist/index.d.ts +140 -3
  4. package/dist/index.js +131 -2
  5. package/dist/specs/commodity/commodity-fluctuation.yaml +225 -0
  6. package/dist/specs/commodity/commodity-prices.yaml +236 -0
  7. package/dist/specs/commodity/commodity-symbols.yaml +159 -0
  8. package/dist/specs/commodity/commodity-time-series.yaml +238 -0
  9. package/dist/specs/commodity/historical-commodity-prices.yaml +208 -0
  10. package/dist/specs/currency/currency-converter.yaml +193 -0
  11. package/dist/specs/currency/currency-fluctuation.yaml +211 -0
  12. package/dist/specs/currency/currency-historical-data-limit.yaml +112 -0
  13. package/dist/specs/currency/currency-rate.yaml +173 -0
  14. package/dist/specs/currency/currency-supported.yaml +176 -0
  15. package/dist/specs/currency/currency-symbols.yaml +115 -0
  16. package/dist/specs/currency/currency-time-series.yaml +232 -0
  17. package/dist/specs/currency/geolocalized-currency-conversion.yaml +214 -0
  18. package/dist/specs/currency/historical-currency-converter.yaml +195 -0
  19. package/dist/specs/currency/historical-currency-rate.yaml +180 -0
  20. package/dist/specs/dns/bulk-dns-lookup.yaml +484 -0
  21. package/dist/specs/dns/dns-history-lookup.yaml +451 -0
  22. package/dist/specs/dns/dns-lookup.yaml +360 -0
  23. package/dist/specs/dns/reverse-dns-lookup.yaml +338 -0
  24. package/dist/specs/domain/bulk-domain-checker.yaml +198 -0
  25. package/dist/specs/domain/domain-search-with-suggestions.yaml +196 -0
  26. package/dist/specs/domain/domain-search.yaml +149 -0
  27. package/dist/specs/domain/subdomain-lookup.yaml +251 -0
  28. package/dist/specs/email-validation/bulk-email-validation.yaml +403 -0
  29. package/dist/specs/email-validation/email-checker.yaml +451 -0
  30. package/dist/specs/financial/bulk-vat-rates-country.yaml +250 -0
  31. package/dist/specs/financial/financial-apis-supported-countries.yaml +152 -0
  32. package/dist/specs/financial/iban-validation.yaml +270 -0
  33. package/dist/specs/financial/swift-code-finder.yaml +146 -0
  34. package/dist/specs/financial/swift-code-lookup.yaml +156 -0
  35. package/dist/specs/financial/vat-number-validation.yaml +205 -0
  36. package/dist/specs/financial/vat-rates-by-ip.yaml +200 -0
  37. package/dist/specs/financial/vat-rates-country.yaml +212 -0
  38. package/dist/specs/general/usage-credits.yaml +188 -0
  39. package/dist/specs/geocoding/forward-geocoding.yaml +292 -0
  40. package/dist/specs/geocoding/reverse-geocoding.yaml +237 -0
  41. package/dist/specs/geodb/administrative-units-details.yaml +180 -0
  42. package/dist/specs/geodb/administrative-units-levels.yaml +140 -0
  43. package/dist/specs/geodb/administrative-units.yaml +168 -0
  44. package/dist/specs/geodb/cities.yaml +209 -0
  45. package/dist/specs/geodb/countries-details.yaml +207 -0
  46. package/dist/specs/geodb/countries.yaml +199 -0
  47. package/dist/specs/geodb/flags-supported.yaml +119 -0
  48. package/dist/specs/geodb/flags.yaml +170 -0
  49. package/dist/specs/geodb/regions.yaml +76 -0
  50. package/dist/specs/geodb/subregions.yaml +158 -0
  51. package/dist/specs/ip-intelligence/bulk-ip-lookup.yaml +895 -0
  52. package/dist/specs/ip-intelligence/bulk-ip-threat-intelligence.yaml +310 -0
  53. package/dist/specs/ip-intelligence/ip-locator.yaml +708 -0
  54. package/dist/specs/ip-intelligence/ip-threat-intelligence.yaml +230 -0
  55. package/dist/specs/other/astronomy-data.yaml +632 -0
  56. package/dist/specs/pdf/delete-pdf-page.yaml +193 -0
  57. package/dist/specs/pdf/linearize-pdf.yaml +187 -0
  58. package/dist/specs/pdf/merge-pdf.yaml +193 -0
  59. package/dist/specs/pdf/pdf-compress.yaml +208 -0
  60. package/dist/specs/pdf/pdf-decrypt.yaml +202 -0
  61. package/dist/specs/pdf/pdf-encrypt.yaml +213 -0
  62. package/dist/specs/pdf/pdf-extract-pages.yaml +199 -0
  63. package/dist/specs/pdf/pdf-file-status.yaml +148 -0
  64. package/dist/specs/pdf/pdf-file.yaml +136 -0
  65. package/dist/specs/pdf/pdf-files.yaml +85 -0
  66. package/dist/specs/pdf/pdf-resource-download.yaml +117 -0
  67. package/dist/specs/pdf/pdf-resource-upload-binary.yaml +152 -0
  68. package/dist/specs/pdf/pdf-resource-upload.yaml +163 -0
  69. package/dist/specs/pdf/pdf-restrict.yaml +246 -0
  70. package/dist/specs/pdf/pdf-split-pages.yaml +208 -0
  71. package/dist/specs/pdf/pdf-task-status.yaml +187 -0
  72. package/dist/specs/pdf/pdf-to-image.yaml +844 -0
  73. package/dist/specs/pdf/pdf-unrestrict.yaml +221 -0
  74. package/dist/specs/pdf/rotate-pdf-pages.yaml +207 -0
  75. package/dist/specs/phone-validation/bulk-phone-number-validation.yaml +374 -0
  76. package/dist/specs/phone-validation/phone-number-validation.yaml +344 -0
  77. package/dist/specs/scraper/web-scraper.yaml +479 -0
  78. package/dist/specs/screenshot/bulk-screenshot.yaml +728 -0
  79. package/dist/specs/screenshot/website-screenshot.yaml +822 -0
  80. package/dist/specs/ssl/ssl-certificate-chain-lookup.yaml +593 -0
  81. package/dist/specs/ssl/ssl-certificate-lookup.yaml +478 -0
  82. package/dist/specs/timezone/timezone-converter.yaml +249 -0
  83. package/dist/specs/timezone/timezone-lookup.yaml +712 -0
  84. package/dist/specs/user-agent/bulk-user-agent-parser.yaml +340 -0
  85. package/dist/specs/user-agent/user-agent-parser.yaml +271 -0
  86. package/dist/specs/weather/air-quality.yaml +590 -0
  87. package/dist/specs/weather/bulk-live-weather.yaml +654 -0
  88. package/dist/specs/weather/flood-forecast.yaml +519 -0
  89. package/dist/specs/weather/historical-weather.yaml +842 -0
  90. package/dist/specs/weather/live-weather.yaml +633 -0
  91. package/dist/specs/weather/marine-weather.yaml +806 -0
  92. package/dist/specs/weather/time-series-weather.yaml +821 -0
  93. package/dist/specs/weather/weather-forecast.yaml +935 -0
  94. package/dist/specs/whois/asn-lookup.yaml +618 -0
  95. package/dist/specs/whois/bulk-whois-lookup.yaml +827 -0
  96. package/dist/specs/whois/domain-whois-history-lookup.yaml +445 -0
  97. package/dist/specs/whois/reverse-whois.yaml +566 -0
  98. package/dist/specs/whois/whois-domain-lookup.yaml +537 -0
  99. package/dist/specs/whois/whois-ip-lookup.yaml +1123 -0
  100. package/dist/specs/zip-code/bulk-zip-code-lookup.yaml +232 -0
  101. package/dist/specs/zip-code/zip-code-api.yaml +216 -0
  102. package/dist/specs/zip-code/zip-code-distance-match.yaml +239 -0
  103. package/dist/specs/zip-code/zip-code-distance.yaml +233 -0
  104. package/dist/specs/zip-code/zip-codes-by-city.yaml +201 -0
  105. package/dist/specs/zip-code/zip-codes-by-region.yaml +200 -0
  106. package/dist/specs/zip-code/zip-codes-radius-search.yaml +262 -0
  107. package/package.json +6 -2
  108. package/specs/pdf/merge-pdf.json +2 -2
@@ -0,0 +1,935 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Weather Forecast API - Advanced Weather Prediction Data
4
+ version: 1.0.0
5
+ description: Retrieve daily, hourly, or minutely weather forecasts up to 16 days ahead for a city or address, GPS coordinates, or IP address. Returns location details plus, for every requested day, an astronomy block (sunrise/sunset, moon phase, day length) and exactly one of `daily`, `hourly`, or `minutely` forecast data selected by the `precision` parameter. Use `forecastDays` for a rolling N-day forecast from today, or supply `startDate` and `endDate` together for an explicit date range capped at 16 days from today. Location precedence is `lat`/`long` first, then `location`, then `ip` — if none are given, the request falls back to the caller's own IP address. Latitude, longitude, and elevation are returned as strings rather than numbers, and elevation can be an empty string when unavailable for the resolved location.
6
+ contact:
7
+ name: APIFreaks Support
8
+ url: https://apifreaks.com/contact
9
+ email: support@apifreaks.com
10
+ servers:
11
+ - url: https://api.apifreaks.com/v1.0/weather
12
+ description: Weather Forecast API Server
13
+ paths:
14
+ /forecast:
15
+ get:
16
+ tags:
17
+ - Weather APIs
18
+ summary: Retrieve daily, hourly, or minutely weather forecasts for up to 16 days ahead
19
+ description: Returns forecast data for a location resolved from GPS coordinates, a place name/address, or an IP address, plus astronomy data for each requested day. Configure the date range with `forecastDays` or `startDate`/`endDate`, and choose forecast granularity with `precision`.
20
+ operationId: getWeatherForecast
21
+ parameters:
22
+ - name: format
23
+ in: query
24
+ required: false
25
+ description: 'Format of the response. Possible values: json.'
26
+ schema:
27
+ type: string
28
+ enum:
29
+ - json
30
+ default: json
31
+ - name: location
32
+ in: query
33
+ required: false
34
+ description: City name, place name, or full address to resolve to coordinates. Ignored when lat/long are also provided, since coordinates take priority.
35
+ schema:
36
+ type: string
37
+ - name: lat
38
+ in: query
39
+ required: false
40
+ description: Latitude of the location. Must be supplied together with long or the request fails with a 400. Takes priority over location and ip when combined with them.
41
+ schema:
42
+ type: number
43
+ - name: long
44
+ in: query
45
+ required: false
46
+ description: Longitude of the location. Must be supplied together with lat or the request fails with a 400.
47
+ schema:
48
+ type: number
49
+ - name: ip
50
+ in: query
51
+ required: false
52
+ description: IPv4 or IPv6 address to infer location from. Used only when lat/long and location are not provided; if the whole parameter is omitted, the requester's own IP is used instead. Private/reserved IPs do not error — they return placeholder location fields (e.g. country_name "ZZ").
53
+ schema:
54
+ type: string
55
+ - name: startDate
56
+ in: query
57
+ required: false
58
+ description: Start date for the forecast in YYYY-MM-DD format. Must be supplied together with endDate — passing only one returns a 400. Forecast dates must be today or later, and the range between startDate and endDate must not exceed 16 days from today.
59
+ schema:
60
+ type: string
61
+ format: date
62
+ - name: endDate
63
+ in: query
64
+ required: false
65
+ description: End date for the forecast in YYYY-MM-DD format. Must be supplied together with startDate — passing only one returns a 400. Forecast dates must be today or later, and the range between startDate and endDate must not exceed 16 days from today.
66
+ schema:
67
+ type: string
68
+ format: date
69
+ - name: forecastDays
70
+ in: query
71
+ required: false
72
+ description: Number of days to forecast starting today, from 1 to 16. Default is 7. Not used together with startDate/endDate.
73
+ schema:
74
+ type: integer
75
+ minimum: 1
76
+ maximum: 16
77
+ - name: precision
78
+ in: query
79
+ required: false
80
+ description: 'Forecast granularity. Possible values: daily (default), hourly, minutely. Only one of the corresponding daily/hourly/minutely blocks is returned per day — astronomy data is always included regardless of precision. An unsupported value returns a 400.'
81
+ schema:
82
+ type: string
83
+ enum:
84
+ - daily
85
+ - hourly
86
+ - minutely
87
+ default: daily
88
+ - name: timezone
89
+ in: query
90
+ required: false
91
+ description: IANA timezone identifier to convert forecast and astronomy times into (e.g. America/New_York). Defaults to the resolved location's local timezone. An invalid value returns a 400.
92
+ schema:
93
+ type: string
94
+ responses:
95
+ '200':
96
+ description: Successful response
97
+ content:
98
+ application/json:
99
+ schema:
100
+ $ref: '#/components/schemas/ForecastResponse'
101
+ examples:
102
+ dailyPrecision:
103
+ summary: Default daily forecast
104
+ value:
105
+ location:
106
+ location_string: Lahore
107
+ country_name: Pakistan
108
+ state_prov: Punjab
109
+ city: Lahore
110
+ locality: ''
111
+ latitude: '31.56568'
112
+ longitude: '74.31418'
113
+ elevation: ''
114
+ timezone: Asia/Karachi
115
+ timezone_abbreviation: GMT+5
116
+ forecast:
117
+ '2026-07-24':
118
+ daily:
119
+ timestamp: '2026-07-24'
120
+ weather_code: 96
121
+ temperature_2m_max: 32.8
122
+ temperature_2m_min: 25.2
123
+ apparent_temperature_max: 40
124
+ apparent_temperature_min: 30.4
125
+ temperature_2m_mean: 28.9
126
+ apparent_temperature_mean: 35.2
127
+ uv_index_max: 8.3
128
+ uv_index_clear_sky_max: 8.3
129
+ rain_sum: 2.2
130
+ showers_sum: 15.3
131
+ snowfall_sum: 0
132
+ precipitation_sum: 17.5
133
+ wind_speed_10m_max: 9.9
134
+ wind_gusts_10m_max: 24.1
135
+ wind_direction_10m_dominant: 79
136
+ shortwave_radiation_sum: 19.92
137
+ surface_pressure_mean: 975.8
138
+ visibility_mean: 5653.33
139
+ cloud_cover_mean: 83
140
+ dew_point_2m_mean: 25.4
141
+ dew_point_2m_max: 26.7
142
+ dew_point_2m_min: 24.1
143
+ et0_fao_evapotranspiration_sum: 4.38
144
+ precipitation_probability_mean: 56
145
+ relative_humidity_2m_mean: 82
146
+ relative_humidity_2m_max: 99
147
+ relative_humidity_2m_min: 63
148
+ pressure_msl_mean: 999.7
149
+ wind_gusts_10m_mean: 18
150
+ wind_speed_10m_mean: 6.5
151
+ wind_gusts_10m_min: 10.1
152
+ wind_speed_10m_min: 3.6
153
+ astronomy:
154
+ date: '2026-07-24'
155
+ mid_night: '00:09'
156
+ night_end: '03:39'
157
+ sunrise: '05:12'
158
+ sunset: '19:06'
159
+ night_begin: '20:38'
160
+ sun_status: '-'
161
+ solar_noon: '12:09'
162
+ day_length: '13:54'
163
+ moon_phase: WAXING_GIBBOUS
164
+ moonrise: '15:08'
165
+ moonset: '00:26'
166
+ moon_status: '-'
167
+ hourlyPrecision:
168
+ summary: precision=hourly response
169
+ value:
170
+ location:
171
+ location_string: Lahore
172
+ country_name: Pakistan
173
+ state_prov: Punjab
174
+ city: Lahore
175
+ locality: ''
176
+ latitude: '31.56568'
177
+ longitude: '74.31418'
178
+ elevation: ''
179
+ timezone: Asia/Karachi
180
+ timezone_abbreviation: GMT+5
181
+ forecast:
182
+ '2026-07-24':
183
+ hourly:
184
+ - timestamp: 2026-07-24T00:00
185
+ temperature_2m: 27.3
186
+ relative_humidity_2m: 84
187
+ dew_point_2m: 24.4
188
+ apparent_temperature: 32.4
189
+ precipitation_probability: 40
190
+ precipitation: 0
191
+ rain: 0
192
+ showers: 0
193
+ snowfall: 0
194
+ weather_code: 3
195
+ pressure_msl: 1000.9
196
+ surface_pressure: 976.9
197
+ cloud_cover: 98
198
+ visibility: 7740
199
+ et0_fao_evapotranspiration: 0.01
200
+ wind_speed_10m: 8.4
201
+ wind_direction_10m: 74
202
+ wind_gusts_10m: 16.2
203
+ uv_index: 0
204
+ uv_index_clear_sky: 0
205
+ direct_normal_irradiance: 0
206
+ global_tilted_irradiance: 0
207
+ direct_radiation: 0
208
+ shortwave_radiation: 0
209
+ diffuse_radiation: 0
210
+ astronomy:
211
+ date: '2026-07-24'
212
+ mid_night: '00:09'
213
+ night_end: '03:39'
214
+ sunrise: '05:12'
215
+ sunset: '19:06'
216
+ night_begin: '20:38'
217
+ sun_status: '-'
218
+ solar_noon: '12:09'
219
+ day_length: '13:54'
220
+ moon_phase: WAXING_GIBBOUS
221
+ moonrise: '15:08'
222
+ moonset: '00:26'
223
+ moon_status: '-'
224
+ '400':
225
+ description: Bad Request — invalid, missing, or conflicting parameters
226
+ content:
227
+ application/json:
228
+ schema:
229
+ $ref: '#/components/schemas/ErrorResponse'
230
+ examples:
231
+ InvalidCoordinateRange:
232
+ summary: Latitude/longitude out of range
233
+ value:
234
+ timestamp: '2026-07-24T11:34:06.131Z'
235
+ status: 400
236
+ message: Invalid latitude or longitude values. Latitude must be between -90 and 90, and longitude must be between -180 and 180
237
+ error: invalid-params
238
+ path: /v1.0/weather/forecast
239
+ IncompleteCoordinates:
240
+ summary: lat given without long
241
+ value:
242
+ error: Invalid Param Exception
243
+ message: please pass correct parameters
244
+ path: /v1.0/weather/forecast
245
+ status: 400
246
+ timestamp: '2026-07-24T11:34:06.623Z'
247
+ UnresolvableCoordinates:
248
+ summary: Valid but unresolvable coordinates (e.g. open ocean)
249
+ value:
250
+ timestamp: '2026-07-24T11:34:20.552Z'
251
+ status: 400
252
+ message: Please provide both lat and long parameters.
253
+ error: invalid-params
254
+ path: /v1.0/weather/forecast
255
+ LocationNotFound:
256
+ summary: location text could not be geocoded
257
+ value:
258
+ timestamp: '2026-07-24T11:34:07.198Z'
259
+ status: 400
260
+ message: We couldn't find the location (asdkjhaskjdhaksjdh). Try a city or state level location address only.
261
+ error: error
262
+ path: /v1.0/weather/forecast
263
+ InvalidIPAddress:
264
+ summary: Malformed ip value
265
+ value:
266
+ timestamp: '2026-07-24T11:34:07.725Z'
267
+ status: 400
268
+ message: Invalid IP address
269
+ error: invalid-params
270
+ path: /v1.0/weather/forecast
271
+ InvalidForecastDays:
272
+ summary: forecastDays outside 1-16
273
+ value:
274
+ timestamp: '2026-07-24T11:34:21.785Z'
275
+ status: 400
276
+ message: 'forecastDays must be within 1 and 16 (dates: 2026-07-24 to 2026-08-08)'
277
+ error: params-exception-error
278
+ path: /v1.0/weather/forecast
279
+ InvalidDateRange:
280
+ summary: Date range exceeds 16 days or is in the past
281
+ value:
282
+ timestamp: '2026-07-24T11:34:23.468Z'
283
+ status: 400
284
+ message: Forecast date range must be within 2026-07-24 to 2026-08-08
285
+ error: params-exception-error
286
+ path: /v1.0/weather/forecast
287
+ IncompleteDateRange:
288
+ summary: startDate given without endDate
289
+ value:
290
+ timestamp: '2026-07-24T11:35:04.757Z'
291
+ status: 400
292
+ message: startDate and endDate must both be present
293
+ error: params-exception-error
294
+ path: /v1.0/weather/forecast
295
+ InvalidPrecision:
296
+ summary: Unsupported precision value
297
+ value:
298
+ timestamp: '2026-07-24T11:34:22.909Z'
299
+ status: 400
300
+ message: Invalid precision
301
+ error: invalid-params
302
+ path: /v1.0/weather/forecast
303
+ InvalidTimezone:
304
+ summary: Unrecognized timezone identifier
305
+ value:
306
+ timestamp: '2026-07-24T11:34:24.537Z'
307
+ status: 400
308
+ message: Check whether your input value is correct; timezone = NotATimezone
309
+ error: error
310
+ path: /v1.0/weather/forecast
311
+ components:
312
+ securitySchemes:
313
+ ApiKeyAuthHeader:
314
+ type: apiKey
315
+ in: header
316
+ name: X-apiKey
317
+ description: Pass your API key via the X-apiKey request header.
318
+ ApiKeyAuthQuery:
319
+ type: apiKey
320
+ in: query
321
+ name: apiKey
322
+ description: Pass your API key via the apiKey query parameter.
323
+ schemas:
324
+ ForecastResponse:
325
+ type: object
326
+ description: Weather forecast response containing location and forecast data for the requested date range.
327
+ required:
328
+ - location
329
+ - forecast
330
+ properties:
331
+ location:
332
+ $ref: '#/components/schemas/WeatherLocation'
333
+ forecast:
334
+ $ref: '#/components/schemas/ForecastData'
335
+ LocationByCoordinates:
336
+ type: object
337
+ description: Location data when the target is specified by GPS coordinates (lat/long).
338
+ required:
339
+ - latitude
340
+ - longitude
341
+ - country_name
342
+ - state_prov
343
+ - city
344
+ - timezone
345
+ - timezone_abbreviation
346
+ properties:
347
+ latitude:
348
+ type: string
349
+ description: Geographic latitude coordinate in decimal degrees, ranging from -90 (South Pole) to +90 (North Pole). Returned as a string, not a number.
350
+ longitude:
351
+ type: string
352
+ description: Geographic longitude coordinate in decimal degrees, ranging from -180 (West) to +180 (East). Returned as a string, not a number.
353
+ country_name:
354
+ type: string
355
+ description: Full name of the country corresponding to the provided coordinates.
356
+ state_prov:
357
+ type: string
358
+ description: State, province, or primary administrative division name for the location.
359
+ city:
360
+ type: string
361
+ description: City or municipal area name associated with the coordinate location.
362
+ locality:
363
+ type: string
364
+ description: Specific locality, neighborhood, district, or village name within the broader area.
365
+ elevation:
366
+ type: string
367
+ description: Height above mean sea level in meters, returned as a string. May be an empty string when elevation data is unavailable.
368
+ timezone:
369
+ type: string
370
+ description: IANA timezone database identifier for the location (e.g., America/New_York, Europe/London).
371
+ timezone_abbreviation:
372
+ type: string
373
+ description: Abbreviated timezone representation based on current offset (e.g., EST, GMT, PST).
374
+ LocationByIP:
375
+ type: object
376
+ description: Location data when the target is inferred from an IP address. Private/reserved IPs resolve to placeholder "ZZ"/empty values instead of an error.
377
+ required:
378
+ - continent_code
379
+ - continent_name
380
+ - country_code2
381
+ - country_code3
382
+ - country_name
383
+ - country_name_official
384
+ - state_prov
385
+ - city
386
+ - latitude
387
+ - longitude
388
+ - timezone
389
+ - timezone_abbreviation
390
+ properties:
391
+ continent_code:
392
+ type: string
393
+ description: Two-letter continent code (e.g., NA for North America, EU for Europe, AS for Asia).
394
+ continent_name:
395
+ type: string
396
+ description: Full name of the continent where the IP address is registered.
397
+ country_code2:
398
+ type: string
399
+ description: ISO 3166-1 alpha-2 two-letter country code (e.g., US, GB, FR).
400
+ country_code3:
401
+ type: string
402
+ description: ISO 3166-1 alpha-3 three-letter country code (e.g., USA, GBR, FRA).
403
+ country_name:
404
+ type: string
405
+ description: Common name of the country associated with the IP address.
406
+ country_name_official:
407
+ type: string
408
+ description: Official long-form country name as recognized internationally (e.g., United States of America).
409
+ is_eu:
410
+ type: boolean
411
+ description: Boolean flag indicating whether the country is a member state of the European Union.
412
+ state_prov:
413
+ type: string
414
+ description: State, province, or primary administrative division associated with the IP location.
415
+ state_code:
416
+ type: string
417
+ description: ISO 3166-2 subdivision code for the state or province (e.g., CA for California).
418
+ district:
419
+ type: string
420
+ description: District, county, or secondary administrative division within the region.
421
+ city:
422
+ type: string
423
+ description: City or urban area name where the IP address is geographically registered.
424
+ zipcode:
425
+ type: string
426
+ description: Postal code or ZIP code for the approximate location of the IP address.
427
+ latitude:
428
+ type: string
429
+ description: Geographic latitude in decimal degrees for the IP geolocation, ranging from -90 to +90. Returned as a string, not a number.
430
+ longitude:
431
+ type: string
432
+ description: Geographic longitude in decimal degrees for the IP geolocation, ranging from -180 to +180. Returned as a string, not a number.
433
+ locality:
434
+ type: string
435
+ description: Specific locality, neighborhood, or small area designation within the city.
436
+ elevation:
437
+ type: string
438
+ description: Elevation above mean sea level in meters, returned as a string. May be an empty string when elevation data is unavailable.
439
+ timezone:
440
+ type: string
441
+ description: IANA timezone database identifier for the IP location (e.g., America/Chicago, Asia/Tokyo).
442
+ timezone_abbreviation:
443
+ type: string
444
+ description: Current timezone abbreviation based on local offset (e.g., CST, JST, UTC).
445
+ LocationByAddress:
446
+ type: object
447
+ description: Location data when the target is specified by a city name or address string.
448
+ required:
449
+ - location_string
450
+ - country_name
451
+ - state_prov
452
+ - city
453
+ - latitude
454
+ - longitude
455
+ - timezone
456
+ - timezone_abbreviation
457
+ properties:
458
+ location_string:
459
+ type: string
460
+ description: Original location query string as submitted, including full address or place name.
461
+ country_name:
462
+ type: string
463
+ description: Resolved country name derived from the geocoded location query.
464
+ state_prov:
465
+ type: string
466
+ description: State, province, or primary administrative division identified from the location.
467
+ city:
468
+ type: string
469
+ description: City or municipal area name extracted from the geocoded location.
470
+ locality:
471
+ type: string
472
+ description: Specific locality, neighborhood, suburb, or village within the geocoded area.
473
+ latitude:
474
+ type: string
475
+ description: Geocoded latitude coordinate in decimal degrees, ranging from -90 to 90. Returned as a string, not a number.
476
+ longitude:
477
+ type: string
478
+ description: Geocoded longitude coordinate in decimal degrees, ranging from -180 to 180. Returned as a string, not a number.
479
+ elevation:
480
+ type: string
481
+ description: Elevation above mean sea level in meters, returned as a string. May be an empty string when elevation data is unavailable.
482
+ timezone:
483
+ type: string
484
+ description: IANA timezone database identifier for the geocoded location (e.g., America/Los_Angeles).
485
+ timezone_abbreviation:
486
+ type: string
487
+ description: Current timezone abbreviation for the location based on local offset (e.g., PDT, CET).
488
+ ForecastDaily:
489
+ type: object
490
+ description: Daily forecast summary with temperature, precipitation, wind, UV, and radiation statistics. Present only when precision is daily (the default).
491
+ required:
492
+ - timestamp
493
+ - weather_code
494
+ - temperature_2m_max
495
+ - temperature_2m_min
496
+ - temperature_2m_mean
497
+ - apparent_temperature_max
498
+ - apparent_temperature_min
499
+ - apparent_temperature_mean
500
+ - uv_index_max
501
+ - uv_index_clear_sky_max
502
+ - rain_sum
503
+ - showers_sum
504
+ - snowfall_sum
505
+ - precipitation_sum
506
+ - precipitation_probability_mean
507
+ - wind_speed_10m_max
508
+ - wind_speed_10m_min
509
+ - wind_speed_10m_mean
510
+ - wind_gusts_10m_max
511
+ - wind_gusts_10m_min
512
+ - wind_gusts_10m_mean
513
+ - wind_direction_10m_dominant
514
+ - shortwave_radiation_sum
515
+ - surface_pressure_mean
516
+ - pressure_msl_mean
517
+ - visibility_mean
518
+ - cloud_cover_mean
519
+ - dew_point_2m_max
520
+ - dew_point_2m_min
521
+ - dew_point_2m_mean
522
+ - relative_humidity_2m_max
523
+ - relative_humidity_2m_min
524
+ - relative_humidity_2m_mean
525
+ - et0_fao_evapotranspiration_sum
526
+ properties:
527
+ timestamp:
528
+ type: string
529
+ format: date
530
+ description: Calendar date (YYYY-MM-DD) this daily summary covers. Returned as a plain date, not a full date-time.
531
+ weather_code:
532
+ type: integer
533
+ description: Weather condition code
534
+ temperature_2m_max:
535
+ type: number
536
+ description: Maximum air temperature at 2m (°C)
537
+ temperature_2m_min:
538
+ type: number
539
+ description: Minimum air temperature at 2m (°C)
540
+ temperature_2m_mean:
541
+ type: number
542
+ description: Mean air temperature at 2m (°C)
543
+ apparent_temperature_max:
544
+ type: number
545
+ description: Maximum feels-like temperature (°C)
546
+ apparent_temperature_min:
547
+ type: number
548
+ description: Minimum feels-like temperature (°C)
549
+ apparent_temperature_mean:
550
+ type: number
551
+ description: Mean feels-like temperature (°C)
552
+ uv_index_max:
553
+ type: number
554
+ description: Daily maximum UV index
555
+ uv_index_clear_sky_max:
556
+ type: number
557
+ description: UV index clear sky max
558
+ rain_sum:
559
+ type: number
560
+ description: Total rain (mm)
561
+ showers_sum:
562
+ type: number
563
+ description: Total showers (mm)
564
+ snowfall_sum:
565
+ type: number
566
+ description: Total snowfall (cm)
567
+ precipitation_sum:
568
+ type: number
569
+ description: Total precipitation (mm)
570
+ precipitation_probability_mean:
571
+ type: integer
572
+ description: Mean probability of precipitation (%)
573
+ wind_speed_10m_max:
574
+ type: number
575
+ description: Max wind speed at 10m (km/h)
576
+ wind_speed_10m_min:
577
+ type: number
578
+ description: Min wind speed at 10m (km/h)
579
+ wind_speed_10m_mean:
580
+ type: number
581
+ description: Mean wind speed at 10m (km/h)
582
+ wind_gusts_10m_max:
583
+ type: number
584
+ description: Max wind gusts at 10m (km/h)
585
+ wind_gusts_10m_min:
586
+ type: number
587
+ description: Min wind gusts at 10m (km/h)
588
+ wind_gusts_10m_mean:
589
+ type: number
590
+ description: Mean wind gusts at 10m (km/h)
591
+ wind_direction_10m_dominant:
592
+ type: integer
593
+ description: Dominant wind direction at 10m (°)
594
+ shortwave_radiation_sum:
595
+ type: number
596
+ description: Total shortwave radiation (MJ/m²)
597
+ surface_pressure_mean:
598
+ type: number
599
+ description: Mean surface pressure (hPa)
600
+ pressure_msl_mean:
601
+ type: number
602
+ description: Mean sea-level pressure (hPa)
603
+ visibility_mean:
604
+ type: number
605
+ description: Mean visibility distance (m)
606
+ cloud_cover_mean:
607
+ type: integer
608
+ description: Mean cloud cover (%)
609
+ dew_point_2m_max:
610
+ type: number
611
+ description: Max dew point at 2m (°C)
612
+ dew_point_2m_min:
613
+ type: number
614
+ description: Min dew point at 2m (°C)
615
+ dew_point_2m_mean:
616
+ type: number
617
+ description: Mean dew point at 2m (°C)
618
+ relative_humidity_2m_max:
619
+ type: integer
620
+ description: Max relative humidity (%)
621
+ relative_humidity_2m_min:
622
+ type: integer
623
+ description: Min relative humidity (%)
624
+ relative_humidity_2m_mean:
625
+ type: integer
626
+ description: Mean relative humidity (%)
627
+ et0_fao_evapotranspiration_sum:
628
+ type: number
629
+ description: ET₀ Reference Evapotranspiration (mm)
630
+ ForecastHourly:
631
+ type: object
632
+ description: Hourly forecast reading with temperature, precipitation, wind, and radiation data. Present only when precision is hourly.
633
+ required:
634
+ - timestamp
635
+ - temperature_2m
636
+ - relative_humidity_2m
637
+ - dew_point_2m
638
+ - apparent_temperature
639
+ - precipitation
640
+ - precipitation_probability
641
+ - rain
642
+ - showers
643
+ - snowfall
644
+ - weather_code
645
+ - pressure_msl
646
+ - surface_pressure
647
+ - cloud_cover
648
+ - visibility
649
+ - et0_fao_evapotranspiration
650
+ - wind_speed_10m
651
+ - wind_direction_10m
652
+ - wind_gusts_10m
653
+ - uv_index
654
+ - uv_index_clear_sky
655
+ - shortwave_radiation
656
+ - direct_radiation
657
+ - diffuse_radiation
658
+ - direct_normal_irradiance
659
+ - global_tilted_irradiance
660
+ properties:
661
+ timestamp:
662
+ type: string
663
+ description: Local date and hour this reading covers, e.g. 2026-07-24T00:00. Not a full RFC 3339 date-time — no seconds or UTC offset are included.
664
+ temperature_2m:
665
+ type: number
666
+ description: Air temperature at 2m (°C)
667
+ relative_humidity_2m:
668
+ type: integer
669
+ description: Relative humidity at 2m (%)
670
+ dew_point_2m:
671
+ type: number
672
+ description: Dew point at 2m (°C)
673
+ apparent_temperature:
674
+ type: number
675
+ description: Feels-like temperature (°C)
676
+ precipitation:
677
+ type: number
678
+ description: Total precipitation at this time (mm)
679
+ precipitation_probability:
680
+ type: integer
681
+ description: Probability of precipitation (%)
682
+ rain:
683
+ type: number
684
+ description: Rainfall (mm)
685
+ showers:
686
+ type: number
687
+ description: Showers (mm)
688
+ snowfall:
689
+ type: number
690
+ description: Snowfall (cm)
691
+ weather_code:
692
+ type: integer
693
+ description: Weather condition code
694
+ pressure_msl:
695
+ type: number
696
+ description: Sea-level pressure (hPa)
697
+ surface_pressure:
698
+ type: number
699
+ description: Surface pressure (hPa)
700
+ cloud_cover:
701
+ type: integer
702
+ description: Cloud cover (%)
703
+ visibility:
704
+ type: number
705
+ description: Visibility distance (m)
706
+ et0_fao_evapotranspiration:
707
+ type: number
708
+ description: Evapotranspiration (mm)
709
+ wind_speed_10m:
710
+ type: number
711
+ description: Wind speed at 10m (km/h)
712
+ wind_direction_10m:
713
+ type: integer
714
+ description: Wind direction at 10m (°)
715
+ wind_gusts_10m:
716
+ type: number
717
+ description: Wind gusts at 10m (km/h)
718
+ uv_index:
719
+ type: number
720
+ description: UV index
721
+ uv_index_clear_sky:
722
+ type: number
723
+ description: UV index under clear-sky conditions
724
+ shortwave_radiation:
725
+ type: number
726
+ description: Shortwave radiation (W/m²)
727
+ direct_radiation:
728
+ type: number
729
+ description: Direct solar radiation (W/m²)
730
+ diffuse_radiation:
731
+ type: number
732
+ description: Diffuse solar radiation (W/m²)
733
+ direct_normal_irradiance:
734
+ type: number
735
+ description: Direct normal irradiance (W/m²)
736
+ global_tilted_irradiance:
737
+ type: number
738
+ description: Global tilted irradiance (W/m²)
739
+ ForecastMinutely:
740
+ type: object
741
+ description: Minute-by-minute forecast reading with temperature, precipitation, wind, and radiation data. Present only when precision is minutely.
742
+ required:
743
+ - timestamp
744
+ - temperature_2m
745
+ - relative_humidity_2m
746
+ - dew_point_2m
747
+ - apparent_temperature
748
+ - precipitation
749
+ - rain
750
+ - snowfall
751
+ - weather_code
752
+ - wind_speed_10m
753
+ - wind_direction_10m
754
+ - wind_gusts_10m
755
+ - visibility
756
+ - shortwave_radiation
757
+ - direct_radiation
758
+ - diffuse_radiation
759
+ - direct_normal_irradiance
760
+ - global_tilted_irradiance
761
+ properties:
762
+ timestamp:
763
+ type: string
764
+ description: Local date and minute this reading covers, e.g. 2026-07-24T00:00. Not a full RFC 3339 date-time — no seconds or UTC offset are included.
765
+ temperature_2m:
766
+ type: number
767
+ description: Air temperature at 2m (°C)
768
+ relative_humidity_2m:
769
+ type: integer
770
+ description: Relative humidity at 2m (%)
771
+ dew_point_2m:
772
+ type: number
773
+ description: Dew point at 2m (°C)
774
+ apparent_temperature:
775
+ type: number
776
+ description: Feels-like temperature (°C)
777
+ precipitation:
778
+ type: number
779
+ description: Precipitation at this minute (mm)
780
+ rain:
781
+ type: number
782
+ description: Rainfall (mm)
783
+ snowfall:
784
+ type: number
785
+ description: Snowfall (cm)
786
+ weather_code:
787
+ type: integer
788
+ description: Weather condition code
789
+ wind_speed_10m:
790
+ type: number
791
+ description: Wind speed at 10m (km/h)
792
+ wind_direction_10m:
793
+ type: integer
794
+ description: Wind direction at 10m (°)
795
+ wind_gusts_10m:
796
+ type: number
797
+ description: Wind gusts at 10m (km/h)
798
+ visibility:
799
+ type: number
800
+ description: Visibility distance (m)
801
+ shortwave_radiation:
802
+ type: number
803
+ description: Shortwave radiation (W/m²)
804
+ direct_radiation:
805
+ type: number
806
+ description: Direct solar radiation (W/m²)
807
+ diffuse_radiation:
808
+ type: number
809
+ description: Diffuse solar radiation (W/m²)
810
+ direct_normal_irradiance:
811
+ type: number
812
+ description: Direct normal irradiance (W/m²)
813
+ global_tilted_irradiance:
814
+ type: number
815
+ description: Global tilted irradiance (W/m²)
816
+ Astronomy:
817
+ type: object
818
+ description: Astronomical data including sunrise, sunset, solar noon, day length, moon phase, and moon times. Always present for every requested day, regardless of precision. Time fields switch from HH:MM to "YYYY-MM-DD HH:MM" when the timezone parameter shifts the date relative to the location's local day.
819
+ required:
820
+ - date
821
+ - mid_night
822
+ - night_end
823
+ - sunrise
824
+ - solar_noon
825
+ - sunset
826
+ - night_begin
827
+ - day_length
828
+ - sun_status
829
+ - moon_phase
830
+ - moonrise
831
+ - moonset
832
+ - moon_status
833
+ properties:
834
+ date:
835
+ type: string
836
+ format: date
837
+ description: Calendar date in YYYY-MM-DD format for the astronomical data.
838
+ mid_night:
839
+ type: string
840
+ description: Time of true solar midnight in HH:MM format.
841
+ night_end:
842
+ type: string
843
+ description: Time when astronomical twilight ends and dawn begins in HH:MM format.
844
+ sunrise:
845
+ type: string
846
+ description: Time when the Sun becomes visible above the horizon in HH:MM format.
847
+ solar_noon:
848
+ type: string
849
+ description: Time when the Sun reaches its highest point in the sky in HH:MM format.
850
+ sunset:
851
+ type: string
852
+ description: Time when the Sun disappears below the horizon in HH:MM format.
853
+ night_begin:
854
+ type: string
855
+ description: Time when astronomical twilight begins and night starts in HH:MM format.
856
+ day_length:
857
+ type: string
858
+ description: Total duration of daylight in HH:MM format.
859
+ sun_status:
860
+ type: string
861
+ description: Current position of the Sun relative to the horizon (above_horizon, below_horizon, or -).
862
+ moon_phase:
863
+ type: string
864
+ description: Current lunar phase (NEW_MOON, WAXING_CRESCENT, FULL_MOON, WANING_GIBBOUS, etc.).
865
+ moonrise:
866
+ type: string
867
+ description: Time when the Moon becomes visible above the horizon in HH:MM format.
868
+ moonset:
869
+ type: string
870
+ description: Time when the Moon disappears below the horizon in HH:MM format.
871
+ moon_status:
872
+ type: string
873
+ description: Current visibility status of the Moon (visible, not_visible, or -).
874
+ ForecastDay:
875
+ type: object
876
+ description: Forecast data for a single day. Contains an astronomy block plus exactly one of daily/hourly/minutely, chosen by the precision parameter.
877
+ required:
878
+ - astronomy
879
+ properties:
880
+ daily:
881
+ $ref: '#/components/schemas/ForecastDaily'
882
+ description: Daily forecast summary. Present when precision is daily (the default).
883
+ hourly:
884
+ type: array
885
+ description: Hourly forecast readings for the day. Present when precision is hourly.
886
+ items:
887
+ $ref: '#/components/schemas/ForecastHourly'
888
+ minutely:
889
+ type: array
890
+ description: Minute-by-minute forecast readings for the day. Present when precision is minutely.
891
+ items:
892
+ $ref: '#/components/schemas/ForecastMinutely'
893
+ astronomy:
894
+ $ref: '#/components/schemas/Astronomy'
895
+ description: Astronomy data for the day. Always present regardless of precision.
896
+ ForecastData:
897
+ type: object
898
+ description: Forecast data keyed by calendar date (YYYY-MM-DD). Each key is a date string and the value is a ForecastDay object.
899
+ additionalProperties:
900
+ $ref: '#/components/schemas/ForecastDay'
901
+ WeatherLocation:
902
+ type: object
903
+ description: Location information. The shape of this object varies by lookup method.
904
+ oneOf:
905
+ - description: Location data when the target is specified by GPS coordinates (lat/long).
906
+ $ref: '#/components/schemas/LocationByCoordinates'
907
+ - description: Location data when the target is inferred from an IP address.
908
+ $ref: '#/components/schemas/LocationByIP'
909
+ - description: Location data when the target is specified by a city name or address string.
910
+ $ref: '#/components/schemas/LocationByAddress'
911
+ ErrorResponse:
912
+ type: object
913
+ description: Standard error envelope returned by the API on failed requests.
914
+ required:
915
+ - message
916
+ properties:
917
+ error:
918
+ type: string
919
+ description: Short error category or exception type.
920
+ message:
921
+ type: string
922
+ description: Human-readable error message describing the failure.
923
+ path:
924
+ type: string
925
+ description: API endpoint path that produced the error.
926
+ status:
927
+ type: integer
928
+ description: HTTP status code returned with the error.
929
+ timestamp:
930
+ type: string
931
+ format: date-time
932
+ description: Timestamp when the error occurred (ISO 8601).
933
+ security:
934
+ - ApiKeyAuthHeader: []
935
+ - ApiKeyAuthQuery: []