@apifreaks/openapi-specs 0.1.0 → 0.1.1

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