@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,842 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Historical Weather APIs & Time-Series Analytics
4
+ version: 1.0.0
5
+ description: Retrieve historical weather conditions for a single past date, with records available from 1940 through the present. Returns daily aggregate figures (temperature max/min/mean, precipitation, wind speed and gusts, cloud cover, humidity, pressure, dew point) by default, or 24 hourly readings for that date when `precision=hourly` is passed, plus sunrise/sunset/moon-phase astronomy data on every response. Accepts a location as a city name or address, GPS coordinates via `lat`/`long`, or an IP address; when none of these is supplied the API geolocates the requesting client's IP address instead. `latitude`, `longitude`, and `elevation` in the location object are always returned as strings, never numbers. This endpoint accepts only a single `date` per request --- use the Time-Series Weather API for continuous multi-date ranges.
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: Historical Weather API Server
13
+ paths:
14
+ /historical:
15
+ get:
16
+ tags:
17
+ - Weather APIs
18
+ summary: Retrieve historical weather conditions for a specific past date and location, coordinates, or IP address
19
+ description: Return daily aggregate or hourly weather readings plus astronomy data for a single past date going back to 1940, resolved by city/address, GPS coordinates, or IP address.
20
+ operationId: getHistoricalData
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: date
32
+ in: query
33
+ required: true
34
+ description: Specific date for which to fetch weather data in YYYY-MM-DD format. Historical dates must be past dates only. Current or future dates are not allowed for historical data. Data available from 1940 onwards.
35
+ schema:
36
+ type: string
37
+ format: date
38
+ - name: location
39
+ in: query
40
+ required: false
41
+ description: City name, place name, or full address to look up historical weather for. Ignored when lat/long is provided.
42
+ schema:
43
+ type: string
44
+ - name: lat
45
+ in: query
46
+ required: false
47
+ description: Latitude of the location. Takes precedence over location and ip when more than one location parameter is supplied.
48
+ schema:
49
+ type: number
50
+ - name: long
51
+ in: query
52
+ required: false
53
+ description: Longitude of the location. Must be provided together with lat.
54
+ schema:
55
+ type: number
56
+ - name: ip
57
+ in: query
58
+ required: false
59
+ description: IPv4 or IPv6 address for location inference. Ignored when location or lat/long is provided; if none of location, lat/long, or ip is supplied, the requesting client's IP address is used instead.
60
+ schema:
61
+ type: string
62
+ - name: precision
63
+ in: query
64
+ required: false
65
+ description: 'Precision of the returned historical data. Possible values: daily (aggregated daily figures), hourly (24 hourly readings for the date). Default: daily.'
66
+ schema:
67
+ type: string
68
+ enum:
69
+ - daily
70
+ - hourly
71
+ default: daily
72
+ - name: timezone
73
+ in: query
74
+ required: false
75
+ description: IANA timezone to render the astronomy time fields in, instead of the resolved location's own timezone. When set, sunrise/sunset/moonrise-type fields include the date (YYYY-MM-DD HH:MM) instead of only HH:MM.
76
+ schema:
77
+ type: string
78
+ responses:
79
+ '200':
80
+ description: Successful response
81
+ content:
82
+ application/json:
83
+ schema:
84
+ $ref: '#/components/schemas/HistoricalResponse'
85
+ examples:
86
+ dailyPrecision:
87
+ summary: precision=daily response (default)
88
+ value:
89
+ location:
90
+ location_string: Lahore
91
+ country_name: Pakistan
92
+ state_prov: Punjab
93
+ city: Lahore
94
+ locality: ''
95
+ latitude: '31.56568'
96
+ longitude: '74.31418'
97
+ elevation: ''
98
+ timezone: Asia/Karachi
99
+ timezone_abbreviation: GMT+5
100
+ historical:
101
+ daily:
102
+ timestamp: '1940-10-10'
103
+ weather_code: 0
104
+ temperature_2m_mean: 28.1
105
+ temperature_2m_max: 37.9
106
+ temperature_2m_min: 20.3
107
+ apparent_temperature_mean: 25
108
+ apparent_temperature_max: 36.5
109
+ apparent_temperature_min: 16.8
110
+ precipitation_sum: 0
111
+ rain_sum: 0
112
+ snowfall_sum: 0
113
+ wind_speed_10m_max: 12.8
114
+ wind_gusts_10m_max: 25.6
115
+ wind_speed_10m_mean: 8.7
116
+ wind_speed_10m_min: 3.9
117
+ wind_gusts_10m_min: 9
118
+ wind_gusts_10m_mean: 16.4
119
+ wind_direction_10m_dominant: 80
120
+ shortwave_radiation_sum: 20.09
121
+ et0_fao_evapotranspiration_sum: 6.29
122
+ cloud_cover_mean: 0
123
+ dew_point_2m_mean: 0.1
124
+ dew_point_2m_max: 5.5
125
+ dew_point_2m_min: -3
126
+ relative_humidity_2m_mean: 18
127
+ relative_humidity_2m_max: 26
128
+ relative_humidity_2m_min: 8
129
+ pressure_msl_mean: 1010.2
130
+ surface_pressure_mean: 986.1
131
+ astronomy:
132
+ date: '1940-10-10'
133
+ mid_night: '00:20'
134
+ night_end: '05:11'
135
+ sunrise: '06:30'
136
+ sunset: '18:08'
137
+ night_begin: '19:27'
138
+ sun_status: '-'
139
+ solar_noon: '12:19'
140
+ day_length: '11:38'
141
+ moon_phase: WAXING_GIBBOUS
142
+ moonrise: '14:40'
143
+ moonset: '01:07'
144
+ moon_status: '-'
145
+ hourlyPrecision:
146
+ summary: precision=hourly response
147
+ value:
148
+ location:
149
+ location_string: Lahore
150
+ country_name: Pakistan
151
+ state_prov: Punjab
152
+ city: Lahore
153
+ locality: ''
154
+ latitude: '31.56568'
155
+ longitude: '74.31418'
156
+ elevation: ''
157
+ timezone: Asia/Karachi
158
+ timezone_abbreviation: GMT+5
159
+ historical:
160
+ hourly:
161
+ - timestamp: 2020-05-15T00:00
162
+ temperature_2m: 22.7
163
+ relative_humidity_2m: 79
164
+ dew_point_2m: 18.9
165
+ apparent_temperature: 25
166
+ precipitation: 0
167
+ rain: 0
168
+ snowfall: 0
169
+ weather_code: 1
170
+ pressure_msl: 1007.9
171
+ surface_pressure: 983.4
172
+ cloud_cover: 30
173
+ et0_fao_evapotranspiration: 0.01
174
+ wind_speed_10m: 6.2
175
+ wind_direction_10m: 280
176
+ wind_gusts_10m: 9.4
177
+ albedo: null
178
+ shortwave_radiation: 0
179
+ direct_radiation: 0
180
+ diffuse_radiation: 0
181
+ direct_normal_irradiance: 0
182
+ global_tilted_irradiance: 0
183
+ astronomy:
184
+ date: '2020-05-15'
185
+ mid_night: '23:59'
186
+ night_end: '03:33'
187
+ sunrise: '05:04'
188
+ sunset: '18:54'
189
+ night_begin: '20:25'
190
+ sun_status: '-'
191
+ solar_noon: '11:59'
192
+ day_length: '13:49'
193
+ moon_phase: LAST_QUARTER
194
+ moonrise: '01:15'
195
+ moonset: '12:19'
196
+ moon_status: '-'
197
+ '400':
198
+ description: Bad Request --- Missing/invalid date, missing/incomplete lat+long pair, coordinates out of range, invalid IP address, invalid precision, or invalid timezone
199
+ content:
200
+ application/json:
201
+ schema:
202
+ $ref: '#/components/schemas/ErrorResponse'
203
+ examples:
204
+ MissingRequiredParams:
205
+ summary: Missing date, or lat given without long
206
+ value:
207
+ error: Invalid Param Exception
208
+ message: please pass correct parameters
209
+ path: /v1.0/weather/historical
210
+ status: 400
211
+ timestamp: '2026-07-24T11:34:39.124Z'
212
+ InvalidDateFormat:
213
+ summary: Date not in YYYY-MM-DD format
214
+ value:
215
+ timestamp: '2026-07-24T11:35:11.805Z'
216
+ status: 400
217
+ message: date must be in yyyy-mm-dd format
218
+ error: invalid-params
219
+ path: /v1.0/weather/historical
220
+ FutureOrCurrentDate:
221
+ summary: Date is today or in the future
222
+ value:
223
+ timestamp: '2026-07-24T11:34:39.625Z'
224
+ status: 400
225
+ message: date cannot be current or future date
226
+ error: params-exception-error
227
+ path: /v1.0/weather/historical
228
+ DateBeforeMinimum:
229
+ summary: Date earlier than 1940-01-01
230
+ value:
231
+ timestamp: '2026-07-24T11:34:41.411Z'
232
+ status: 400
233
+ message: Parameter 'startDate' is out of allowed range from 1940-01-01 to 2026-07-24
234
+ error: error
235
+ path: /v1.0/weather/historical
236
+ InvalidCoordinates:
237
+ summary: Latitude or longitude out of range
238
+ value:
239
+ timestamp: '2026-07-24T11:34:54.240Z'
240
+ status: 400
241
+ message: Invalid latitude or longitude values. Latitude must be between -90 and 90, and longitude must be between -180 and 180
242
+ error: invalid-params
243
+ path: /v1.0/weather/historical
244
+ InvalidIPAddress:
245
+ summary: Malformed IP address
246
+ value:
247
+ timestamp: '2026-07-24T11:34:55.197Z'
248
+ status: 400
249
+ message: Invalid IP address
250
+ error: invalid-params
251
+ path: /v1.0/weather/historical
252
+ InvalidPrecision:
253
+ summary: precision value outside daily/hourly
254
+ value:
255
+ timestamp: '2026-07-24T11:34:55.671Z'
256
+ status: 400
257
+ message: Invalid precision
258
+ error: invalid-params
259
+ path: /v1.0/weather/historical
260
+ InvalidTimezone:
261
+ summary: Unrecognized timezone identifier
262
+ value:
263
+ timestamp: '2026-07-24T11:35:12.335Z'
264
+ status: 400
265
+ message: Check whether your input value is correct; timezone = NotATimezone
266
+ error: error
267
+ path: /v1.0/weather/historical
268
+ '404':
269
+ description: Not Found --- Location could not be resolved
270
+ content:
271
+ application/json:
272
+ schema:
273
+ $ref: '#/components/schemas/ErrorResponse'
274
+ examples:
275
+ LocationNotFound:
276
+ summary: Location not found
277
+ value:
278
+ timestamp: '2026-07-24T11:34:53.747Z'
279
+ status: 404
280
+ message: Location not found
281
+ error: error
282
+ path: /v1.0/weather/historical
283
+ components:
284
+ securitySchemes:
285
+ ApiKeyAuthHeader:
286
+ type: apiKey
287
+ in: header
288
+ name: X-apiKey
289
+ description: Pass your API key via the X-apiKey request header.
290
+ ApiKeyAuthQuery:
291
+ type: apiKey
292
+ in: query
293
+ name: apiKey
294
+ description: Pass your API key via the apiKey query parameter.
295
+ schemas:
296
+ HistoricalResponse:
297
+ type: object
298
+ description: Historical weather response containing location data and historical weather data for the requested date.
299
+ required:
300
+ - location
301
+ - historical
302
+ properties:
303
+ location:
304
+ $ref: '#/components/schemas/WeatherLocation'
305
+ historical:
306
+ $ref: '#/components/schemas/HistoricalData'
307
+ WeatherLocation:
308
+ type: object
309
+ description: Location information. The shape of this object varies by lookup method.
310
+ oneOf:
311
+ - description: Location data when the target is specified by GPS coordinates (lat/long).
312
+ $ref: '#/components/schemas/LocationByCoordinates'
313
+ - description: Location data when the target is inferred from an IP address.
314
+ $ref: '#/components/schemas/LocationByIP'
315
+ - description: Location data when the target is specified by a city name or address string.
316
+ $ref: '#/components/schemas/LocationByAddress'
317
+ LocationByCoordinates:
318
+ type: object
319
+ description: Location data when the target is specified by GPS coordinates (lat/long). country_name, state_prov, and city are omitted when the coordinates do not resolve to any political boundary (e.g. open ocean).
320
+ required:
321
+ - latitude
322
+ - longitude
323
+ - timezone
324
+ - timezone_abbreviation
325
+ properties:
326
+ latitude:
327
+ type: string
328
+ description: Geographic latitude coordinate in decimal degrees, ranging from -90 (South Pole) to +90 (North Pole). Returned as a string, not a number.
329
+ longitude:
330
+ type: string
331
+ description: Geographic longitude coordinate in decimal degrees, ranging from -180 (West) to +180 (East). Returned as a string, not a number.
332
+ country_name:
333
+ type: string
334
+ description: Full name of the country corresponding to the provided coordinates.
335
+ state_prov:
336
+ type: string
337
+ description: State, province, or primary administrative division name for the location.
338
+ city:
339
+ type: string
340
+ description: City or municipal area name associated with the coordinate location.
341
+ locality:
342
+ type: string
343
+ description: Specific locality, neighborhood, district, or village name within the broader area.
344
+ elevation:
345
+ type: string
346
+ description: Height above mean sea level in meters for the specified coordinates. Returned as a string, not a number; can be an empty string when unavailable.
347
+ timezone:
348
+ type: string
349
+ description: IANA timezone database identifier for the location (e.g., America/New_York, Europe/London).
350
+ timezone_abbreviation:
351
+ type: string
352
+ description: Abbreviated timezone representation based on current offset (e.g., EST, GMT, PST).
353
+ LocationByIP:
354
+ type: object
355
+ description: Location data when the target is inferred from an IP address.
356
+ required:
357
+ - continent_code
358
+ - continent_name
359
+ - country_code2
360
+ - country_code3
361
+ - country_name
362
+ - country_name_official
363
+ - state_prov
364
+ - city
365
+ - latitude
366
+ - longitude
367
+ - timezone
368
+ - timezone_abbreviation
369
+ properties:
370
+ continent_code:
371
+ type: string
372
+ description: Two-letter continent code (e.g., NA for North America, EU for Europe, AS for Asia).
373
+ continent_name:
374
+ type: string
375
+ description: Full name of the continent where the IP address is registered.
376
+ country_code2:
377
+ type: string
378
+ description: ISO 3166-1 alpha-2 two-letter country code (e.g., US, GB, FR).
379
+ country_code3:
380
+ type: string
381
+ description: ISO 3166-1 alpha-3 three-letter country code (e.g., USA, GBR, FRA).
382
+ country_name:
383
+ type: string
384
+ description: Common name of the country associated with the IP address.
385
+ country_name_official:
386
+ type: string
387
+ description: Official long-form country name as recognized internationally (e.g., United States of America).
388
+ is_eu:
389
+ type: boolean
390
+ description: Boolean flag indicating whether the country is a member state of the European Union.
391
+ state_prov:
392
+ type: string
393
+ description: State, province, or primary administrative division associated with the IP location.
394
+ state_code:
395
+ type: string
396
+ description: ISO 3166-2 subdivision code for the state or province (e.g., CA for California).
397
+ district:
398
+ type: string
399
+ description: District, county, or secondary administrative division within the region.
400
+ city:
401
+ type: string
402
+ description: City or urban area name where the IP address is geographically registered.
403
+ zipcode:
404
+ type: string
405
+ description: Postal code or ZIP code for the approximate location of the IP address.
406
+ latitude:
407
+ type: string
408
+ description: Geographic latitude in decimal degrees for the IP geolocation, ranging from -90 to +90. Returned as a string, not a number.
409
+ longitude:
410
+ type: string
411
+ description: Geographic longitude in decimal degrees for the IP geolocation, ranging from -180 to +180. Returned as a string, not a number.
412
+ locality:
413
+ type: string
414
+ description: Specific locality, neighborhood, or small area designation within the city.
415
+ elevation:
416
+ type: string
417
+ description: Elevation above mean sea level in meters for the IP geolocation. Returned as a string, not a number; can be an empty string when unavailable.
418
+ timezone:
419
+ type: string
420
+ description: IANA timezone database identifier for the IP location (e.g., America/Chicago, Asia/Tokyo).
421
+ timezone_abbreviation:
422
+ type: string
423
+ description: Current timezone abbreviation based on local offset (e.g., CST, JST, UTC).
424
+ LocationByAddress:
425
+ type: object
426
+ description: Location data when the target is specified by a city name or address string.
427
+ required:
428
+ - location_string
429
+ - country_name
430
+ - state_prov
431
+ - city
432
+ - latitude
433
+ - longitude
434
+ - timezone
435
+ - timezone_abbreviation
436
+ properties:
437
+ location_string:
438
+ type: string
439
+ description: Original location query string as submitted, including full address or place name.
440
+ country_name:
441
+ type: string
442
+ description: Resolved country name derived from the geocoded location query.
443
+ state_prov:
444
+ type: string
445
+ description: State, province, or primary administrative division identified from the location.
446
+ city:
447
+ type: string
448
+ description: City or municipal area name extracted from the geocoded location.
449
+ locality:
450
+ type: string
451
+ description: Specific locality, neighborhood, suburb, or village within the geocoded area.
452
+ latitude:
453
+ type: string
454
+ description: Geocoded latitude coordinate in decimal degrees, ranging from -90 to +90. Returned as a string, not a number.
455
+ longitude:
456
+ type: string
457
+ description: Geocoded longitude coordinate in decimal degrees, ranging from -180 to +180. Returned as a string, not a number.
458
+ elevation:
459
+ type: string
460
+ description: Elevation above mean sea level in meters at the geocoded coordinates. Returned as a string, not a number; can be an empty string when unavailable.
461
+ timezone:
462
+ type: string
463
+ description: IANA timezone database identifier for the geocoded location (e.g., America/Los_Angeles).
464
+ timezone_abbreviation:
465
+ type: string
466
+ description: Current timezone abbreviation for the location based on local offset (e.g., PDT, CET).
467
+ HistoricalData:
468
+ type: object
469
+ description: Historical weather data for the requested date, containing an astronomy block plus one of daily or hourly readings depending on the precision parameter. It is not keyed by date --- each request covers exactly one date.
470
+ required:
471
+ - astronomy
472
+ properties:
473
+ daily:
474
+ $ref: '#/components/schemas/HistoricalDaily'
475
+ description: Daily aggregate weather data for the requested day. Present when precision is daily (the default).
476
+ hourly:
477
+ type: array
478
+ description: Hourly weather readings for the requested day, one entry per hour (24 entries). Present when precision is hourly.
479
+ items:
480
+ $ref: '#/components/schemas/HistoricalHourly'
481
+ astronomy:
482
+ $ref: '#/components/schemas/Astronomy'
483
+ description: Astronomical data for the requested day. Always present regardless of precision.
484
+ HistoricalDaily:
485
+ type: object
486
+ description: Daily historical weather summary with temperature, precipitation, wind, and radiation statistics.
487
+ required:
488
+ - timestamp
489
+ - weather_code
490
+ - temperature_2m_mean
491
+ - temperature_2m_max
492
+ - temperature_2m_min
493
+ - apparent_temperature_mean
494
+ - apparent_temperature_max
495
+ - apparent_temperature_min
496
+ - precipitation_sum
497
+ - rain_sum
498
+ - snowfall_sum
499
+ - wind_speed_10m_max
500
+ - wind_gusts_10m_max
501
+ - wind_speed_10m_mean
502
+ - wind_speed_10m_min
503
+ - wind_gusts_10m_min
504
+ - wind_gusts_10m_mean
505
+ - wind_direction_10m_dominant
506
+ - shortwave_radiation_sum
507
+ - et0_fao_evapotranspiration_sum
508
+ - cloud_cover_mean
509
+ - dew_point_2m_mean
510
+ - dew_point_2m_max
511
+ - dew_point_2m_min
512
+ - relative_humidity_2m_mean
513
+ - relative_humidity_2m_max
514
+ - relative_humidity_2m_min
515
+ - pressure_msl_mean
516
+ - surface_pressure_mean
517
+ properties:
518
+ timestamp:
519
+ type: string
520
+ format: date
521
+ description: The requested date in YYYY-MM-DD format.
522
+ weather_code:
523
+ type: integer
524
+ enum:
525
+ - 0
526
+ - 1
527
+ - 2
528
+ - 3
529
+ - 45
530
+ - 48
531
+ - 51
532
+ - 53
533
+ - 55
534
+ - 56
535
+ - 57
536
+ - 61
537
+ - 63
538
+ - 65
539
+ - 66
540
+ - 67
541
+ - 71
542
+ - 73
543
+ - 75
544
+ - 77
545
+ - 80
546
+ - 81
547
+ - 82
548
+ - 85
549
+ - 86
550
+ - 95
551
+ - 96
552
+ - 99
553
+ description: 'WMO weather condition code representing the day''s dominant conditions. Supported codes: 0 clear sky; 1, 2, 3 varying cloud cover; 45, 48 fog; 51, 53, 55 drizzle; 56, 57 freezing drizzle; 61, 63, 65 rain; 66, 67 freezing rain; 71, 73, 75 snowfall; 77 snow grains; 80, 81, 82 rain showers; 85, 86 snow showers; 95 thunderstorm; 96, 99 thunderstorm with hail.'
554
+ temperature_2m_mean:
555
+ type: number
556
+ description: Daily mean air temperature at 2 meters (°C).
557
+ temperature_2m_max:
558
+ type: number
559
+ description: Daily maximum air temperature at 2 meters (°C).
560
+ temperature_2m_min:
561
+ type: number
562
+ description: Daily minimum air temperature at 2 meters (°C).
563
+ apparent_temperature_mean:
564
+ type: number
565
+ description: Daily mean perceived temperature (°C).
566
+ apparent_temperature_max:
567
+ type: number
568
+ description: Daily maximum perceived temperature (°C).
569
+ apparent_temperature_min:
570
+ type: number
571
+ description: Daily minimum perceived temperature (°C).
572
+ precipitation_sum:
573
+ type: number
574
+ description: Total precipitation (mm).
575
+ rain_sum:
576
+ type: number
577
+ description: Total rainfall (mm).
578
+ snowfall_sum:
579
+ type: number
580
+ description: Total snowfall (cm).
581
+ wind_speed_10m_max:
582
+ type: number
583
+ description: Maximum wind speed at 10 meters (km/h).
584
+ wind_gusts_10m_max:
585
+ type: number
586
+ description: Maximum wind gusts at 10 meters (km/h).
587
+ wind_speed_10m_mean:
588
+ type: number
589
+ description: Daily mean wind speed at 10 meters (km/h).
590
+ wind_speed_10m_min:
591
+ type: number
592
+ description: Minimum wind speed at 10 meters (km/h).
593
+ wind_gusts_10m_min:
594
+ type: number
595
+ description: Minimum wind gusts at 10 meters (km/h).
596
+ wind_gusts_10m_mean:
597
+ type: number
598
+ description: Daily mean wind gusts at 10 meters (km/h).
599
+ wind_direction_10m_dominant:
600
+ type: integer
601
+ description: Dominant wind direction at 10 meters (°).
602
+ shortwave_radiation_sum:
603
+ type: number
604
+ description: Daily sum of shortwave solar radiation (MJ/m²).
605
+ et0_fao_evapotranspiration_sum:
606
+ type: number
607
+ description: Daily sum of reference evapotranspiration (mm).
608
+ cloud_cover_mean:
609
+ type: number
610
+ description: Daily mean cloud cover percentage (%).
611
+ dew_point_2m_mean:
612
+ type: number
613
+ description: Daily mean dew point temperature at 2 meters (°C).
614
+ dew_point_2m_max:
615
+ type: number
616
+ description: Daily maximum dew point temperature at 2 meters (°C).
617
+ dew_point_2m_min:
618
+ type: number
619
+ description: Daily minimum dew point temperature at 2 meters (°C).
620
+ relative_humidity_2m_mean:
621
+ type: number
622
+ description: Daily mean relative humidity at 2 meters (%).
623
+ relative_humidity_2m_max:
624
+ type: integer
625
+ description: Daily maximum relative humidity at 2 meters (%).
626
+ relative_humidity_2m_min:
627
+ type: integer
628
+ description: Daily minimum relative humidity at 2 meters (%).
629
+ pressure_msl_mean:
630
+ type: number
631
+ description: Daily mean atmospheric pressure at mean sea level (hPa).
632
+ surface_pressure_mean:
633
+ type: number
634
+ description: Daily mean surface pressure at ground level (hPa).
635
+ HistoricalHourly:
636
+ type: object
637
+ description: Hourly historical weather reading with temperature, precipitation, and wind data.
638
+ required:
639
+ - timestamp
640
+ - temperature_2m
641
+ - relative_humidity_2m
642
+ - dew_point_2m
643
+ - apparent_temperature
644
+ - precipitation
645
+ - rain
646
+ - snowfall
647
+ - weather_code
648
+ - pressure_msl
649
+ - surface_pressure
650
+ - cloud_cover
651
+ - et0_fao_evapotranspiration
652
+ - wind_speed_10m
653
+ - wind_direction_10m
654
+ - wind_gusts_10m
655
+ - albedo
656
+ - shortwave_radiation
657
+ - direct_radiation
658
+ - diffuse_radiation
659
+ - direct_normal_irradiance
660
+ - global_tilted_irradiance
661
+ properties:
662
+ timestamp:
663
+ type: string
664
+ format: date-time
665
+ description: Local timestamp for this hourly reading (YYYY-MM-DDTHH:MM).
666
+ temperature_2m:
667
+ type: number
668
+ description: Air temperature at 2 meters (°C).
669
+ relative_humidity_2m:
670
+ type: number
671
+ description: Relative humidity at 2 meters (%).
672
+ dew_point_2m:
673
+ type: number
674
+ description: Dew point temperature at 2 meters (°C).
675
+ apparent_temperature:
676
+ type: number
677
+ description: Perceived temperature (°C).
678
+ precipitation:
679
+ type: number
680
+ description: Total precipitation in this hour (mm).
681
+ rain:
682
+ type: number
683
+ description: Rainfall in this hour (mm).
684
+ snowfall:
685
+ type: number
686
+ description: Snowfall in this hour (cm).
687
+ weather_code:
688
+ type: integer
689
+ enum:
690
+ - 0
691
+ - 1
692
+ - 2
693
+ - 3
694
+ - 45
695
+ - 48
696
+ - 51
697
+ - 53
698
+ - 55
699
+ - 56
700
+ - 57
701
+ - 61
702
+ - 63
703
+ - 65
704
+ - 66
705
+ - 67
706
+ - 71
707
+ - 73
708
+ - 75
709
+ - 77
710
+ - 80
711
+ - 81
712
+ - 82
713
+ - 85
714
+ - 86
715
+ - 95
716
+ - 96
717
+ - 99
718
+ description: 'WMO weather condition code representing conditions during this hour. Supported codes: 0 clear sky; 1, 2, 3 varying cloud cover; 45, 48 fog; 51, 53, 55 drizzle; 56, 57 freezing drizzle; 61, 63, 65 rain; 66, 67 freezing rain; 71, 73, 75 snowfall; 77 snow grains; 80, 81, 82 rain showers; 85, 86 snow showers; 95 thunderstorm; 96, 99 thunderstorm with hail.'
719
+ pressure_msl:
720
+ type: number
721
+ description: Atmospheric pressure at mean sea level (hPa).
722
+ surface_pressure:
723
+ type: number
724
+ description: Atmospheric pressure at ground level (hPa).
725
+ cloud_cover:
726
+ type: number
727
+ description: Cloud cover percentage (%).
728
+ et0_fao_evapotranspiration:
729
+ type: number
730
+ description: Hourly reference evapotranspiration (mm).
731
+ wind_speed_10m:
732
+ type: number
733
+ description: Wind speed at 10 meters (km/h).
734
+ wind_direction_10m:
735
+ type: integer
736
+ description: Wind direction at 10 meters (°).
737
+ wind_gusts_10m:
738
+ type: number
739
+ description: Wind gusts at 10 meters (km/h).
740
+ albedo:
741
+ type:
742
+ - number
743
+ - 'null'
744
+ description: Reflectivity of the Earth's surface. Currently always returned as null.
745
+ shortwave_radiation:
746
+ type: number
747
+ description: Incoming shortwave solar radiation (W/m²).
748
+ direct_radiation:
749
+ type: number
750
+ description: Direct solar radiation (W/m²).
751
+ diffuse_radiation:
752
+ type: number
753
+ description: Diffuse solar radiation (W/m²).
754
+ direct_normal_irradiance:
755
+ type: number
756
+ description: Direct solar irradiance (W/m²).
757
+ global_tilted_irradiance:
758
+ type: number
759
+ description: Total solar irradiance on a tilted surface (W/m²).
760
+ Astronomy:
761
+ type: object
762
+ description: Astronomical data including sunrise, sunset, solar noon, day length, moon phase, and moon times. Time fields are HH:MM by default; when the timezone query parameter is set, they include the date as well (YYYY-MM-DD HH:MM).
763
+ required:
764
+ - date
765
+ - mid_night
766
+ - night_end
767
+ - sunrise
768
+ - solar_noon
769
+ - sunset
770
+ - night_begin
771
+ - day_length
772
+ - sun_status
773
+ - moon_phase
774
+ - moonrise
775
+ - moonset
776
+ - moon_status
777
+ properties:
778
+ date:
779
+ type: string
780
+ format: date
781
+ description: Calendar date in YYYY-MM-DD format for the astronomical data.
782
+ mid_night:
783
+ type: string
784
+ description: Time of true solar midnight in HH:MM format.
785
+ night_end:
786
+ type: string
787
+ description: Time when astronomical twilight ends and dawn begins in HH:MM format.
788
+ sunrise:
789
+ type: string
790
+ description: Time when the Sun becomes visible above the horizon in HH:MM format.
791
+ solar_noon:
792
+ type: string
793
+ description: Time when the Sun reaches its highest point in the sky in HH:MM format.
794
+ sunset:
795
+ type: string
796
+ description: Time when the Sun disappears below the horizon in HH:MM format.
797
+ night_begin:
798
+ type: string
799
+ description: Time when astronomical twilight begins and night starts in HH:MM format.
800
+ day_length:
801
+ type: string
802
+ description: Total duration of daylight in HH:MM format.
803
+ sun_status:
804
+ type: string
805
+ description: Current position of the Sun relative to the horizon (above_horizon, below_horizon, or -).
806
+ moon_phase:
807
+ type: string
808
+ description: Current lunar phase (NEW_MOON, WAXING_CRESCENT, FULL_MOON, WANING_GIBBOUS, etc.).
809
+ moonrise:
810
+ type: string
811
+ description: Time when the Moon becomes visible above the horizon in HH:MM format.
812
+ moonset:
813
+ type: string
814
+ description: Time when the Moon disappears below the horizon in HH:MM format.
815
+ moon_status:
816
+ type: string
817
+ description: Current visibility status of the Moon (visible, not_visible, or -).
818
+ ErrorResponse:
819
+ type: object
820
+ description: Standard error envelope returned by the API on failed requests.
821
+ required:
822
+ - message
823
+ properties:
824
+ error:
825
+ type: string
826
+ description: Short error category or exception type.
827
+ message:
828
+ type: string
829
+ description: Human-readable error message describing the failure.
830
+ path:
831
+ type: string
832
+ description: API endpoint path that produced the error.
833
+ status:
834
+ type: integer
835
+ description: HTTP status code returned with the error.
836
+ timestamp:
837
+ type: string
838
+ format: date-time
839
+ description: Timestamp when the error occurred (ISO 8601).
840
+ security:
841
+ - ApiKeyAuthHeader: []
842
+ - ApiKeyAuthQuery: []