@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,654 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Bulk Live Weather API Reference
4
+ version: 1.0.0
5
+ description: 'Retrieve real-time weather conditions for multiple locations in a single POST request, up to 50 locations per batch. Each location can be specified as a city name or address, GPS coordinates, or IP address. The response contains a bulk array with one entry per requested location in the same order; each entry includes the same location and current weather objects as the single Live Weather endpoint, including full air quality (AQI indices and pollutants) and astronomical data (sunrise/sunset, moon phase, day length). A location that can''t be resolved (missing fields, unrecognized address) doesn''t fail the whole request — that slot gets a small `{"error": "..."}` object instead of a full result, even when every item in the batch fails. The optional timezone query parameter sets a default timezone for all results. A malformed request body, or a non-object item in the locations array, fails the whole request with a 400.'
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: Bulk Live Weather API Server
13
+ paths:
14
+ /current:
15
+ post:
16
+ tags:
17
+ - Weather APIs
18
+ summary: Get real-time weather data for multiple locations, coordinates, or IP addresses
19
+ description: Retrieve current weather conditions for up to `50 locations` in a single request. A maximum of 50 locations (city names, IP addresses, or geographic coordinates) can be included in the request body.
20
+ parameters:
21
+ - name: format
22
+ in: query
23
+ required: false
24
+ description: 'Format of the response. Possible values: json.'
25
+ schema:
26
+ type: string
27
+ enum:
28
+ - json
29
+ default: json
30
+ - name: timezone
31
+ in: query
32
+ required: false
33
+ description: Override timezone for all returned data. Defaults to each location's local timezone.
34
+ schema:
35
+ type: string
36
+ requestBody:
37
+ required: true
38
+ content:
39
+ application/json:
40
+ schema:
41
+ $ref: '#/components/schemas/BulkCurrentRequest'
42
+ examples:
43
+ typicalRequest:
44
+ summary: Typical bulk lookup request
45
+ value:
46
+ locations:
47
+ - location: lahore
48
+ - lat: 32.5
49
+ long: 74.5
50
+ - ip: 8.8.8.8
51
+ - location: seoul
52
+ responses:
53
+ '200':
54
+ description: Successful response
55
+ content:
56
+ application/json:
57
+ schema:
58
+ $ref: '#/components/schemas/BulkCurrentResponse'
59
+ examples:
60
+ typicalSuccess:
61
+ summary: Typical successful response
62
+ value:
63
+ bulk:
64
+ - location:
65
+ location_string: lahore
66
+ country_name: Pakistan
67
+ state_prov: Punjab
68
+ city: Lahore
69
+ locality: ''
70
+ latitude: '31.56568'
71
+ longitude: '74.31418'
72
+ elevation: ''
73
+ timezone: Asia/Karachi
74
+ timezone_abbreviation: GMT+5
75
+ current:
76
+ timestamp: 2026-07-24T16:00
77
+ temperature_2m: 32.7
78
+ relative_humidity_2m: 63
79
+ apparent_temperature: 38.3
80
+ snowfall: 0
81
+ rain: 0
82
+ showers: 0
83
+ precipitation: 0
84
+ weather_code: 2
85
+ cloud_cover: 53
86
+ pressure_msl: 996.7
87
+ surface_pressure: 973.2
88
+ wind_speed_10m: 5.4
89
+ wind_direction_10m: 92
90
+ wind_gusts_10m: 16.9
91
+ air_quality:
92
+ timestamp: 2026-07-24T16:00
93
+ european_aqi: 67
94
+ us_aqi: 99
95
+ pm10: 27.4
96
+ pm2_5: 27.2
97
+ carbon_monoxide: 345
98
+ nitrogen_dioxide: 6.2
99
+ sulphur_dioxide: 8.6
100
+ ozone: 169
101
+ dust: 0
102
+ uv_index: 1.95
103
+ aerosol_optical_depth: 0.71
104
+ uv_index_clear_sky: 2.25
105
+ astronomy:
106
+ date: '2026-07-24'
107
+ mid_night: '00:09'
108
+ night_end: '03:39'
109
+ sunrise: '05:12'
110
+ sunset: '19:06'
111
+ night_begin: '20:38'
112
+ sun_status: '-'
113
+ solar_noon: '12:09'
114
+ day_length: '13:54'
115
+ moon_phase: WAXING_GIBBOUS
116
+ moonrise: '15:08'
117
+ moonset: '00:26'
118
+ moon_status: '-'
119
+ partialFailure:
120
+ summary: Batch with an unresolvable location — that slot gets an error object, request still succeeds
121
+ value:
122
+ bulk:
123
+ - error: Missing required location parameters
124
+ - error: Location not found
125
+ '400':
126
+ description: Bad Request — Missing/malformed request body, or a non-object item in the locations array
127
+ content:
128
+ application/json:
129
+ schema:
130
+ $ref: '#/components/schemas/ErrorResponse'
131
+ examples:
132
+ InvalidBody:
133
+ summary: Invalid or missing request body
134
+ value:
135
+ error: Invalid request body Exception
136
+ message: Please provide data in required format in request body
137
+ path: /v1.0/weather/current
138
+ status: 400
139
+ timestamp: '2026-07-24T11:12:06.906Z'
140
+ InvalidItem:
141
+ summary: locations[0] is not an object
142
+ value:
143
+ timestamp: '2026-07-24T11:12:07.410Z'
144
+ status: 400
145
+ message: '"locations[0]" must be of type object'
146
+ error: error
147
+ path: /v1.0/weather/current/bulk
148
+ operationId: bulkLiveWeather
149
+ components:
150
+ securitySchemes:
151
+ ApiKeyAuthHeader:
152
+ type: apiKey
153
+ in: header
154
+ name: X-apiKey
155
+ description: Pass your API key via the X-apiKey request header.
156
+ ApiKeyAuthQuery:
157
+ type: apiKey
158
+ in: query
159
+ name: apiKey
160
+ description: Pass your API key via the apiKey query parameter.
161
+ schemas:
162
+ BulkCurrentRequest:
163
+ type: object
164
+ properties:
165
+ locations:
166
+ type: array
167
+ maxItems: 50
168
+ items:
169
+ $ref: '#/components/schemas/BulkLocationItem'
170
+ description: Array of location objects to query. Maximum 50 items per request.
171
+ required:
172
+ - locations
173
+ description: Request body for bulk live weather lookup, containing an array of location specifications.
174
+ BulkLocationItem:
175
+ type: object
176
+ description: 'Each object specifies one location using exactly one of the supported lookup methods: location alone, lat+long together, or ip alone. None of these fields is required at the schema level — an item missing all of them is still accepted by the request, but resolves to a per-item error object in the response (see BulkCurrentResponse) rather than failing the whole request.'
177
+ properties:
178
+ location:
179
+ type: string
180
+ description: City name, place name, or full address
181
+ lat:
182
+ type: number
183
+ description: Latitude
184
+ long:
185
+ type: number
186
+ description: Longitude
187
+ ip:
188
+ type: string
189
+ description: IP address
190
+ BulkCurrentResponse:
191
+ type: object
192
+ required:
193
+ - bulk
194
+ properties:
195
+ bulk:
196
+ type: array
197
+ items:
198
+ oneOf:
199
+ - description: A successfully resolved location's weather result.
200
+ $ref: '#/components/schemas/CurrentWeatherResponse'
201
+ - description: Returned in place of a weather result when that location could not be resolved (missing fields, unrecognized address, etc). Does not fail the request, even when every item in the batch errors.
202
+ $ref: '#/components/schemas/BulkWeatherItemError'
203
+ description: Array of per-location results, one entry per requested location, in the same order as the request. Each entry is either a full weather result or a per-item error object.
204
+ description: Bulk weather response containing an array of per-location current weather results.
205
+ CurrentWeatherResponse:
206
+ type: object
207
+ required:
208
+ - location
209
+ - current
210
+ properties:
211
+ location:
212
+ $ref: '#/components/schemas/WeatherLocation'
213
+ current:
214
+ $ref: '#/components/schemas/CurrentWeather'
215
+ description: Current weather data
216
+ description: Current weather response containing location data and current weather conditions.
217
+ BulkWeatherItemError:
218
+ type: object
219
+ description: Per-item error, returned in place of a weather result when an individual location could not be resolved.
220
+ required:
221
+ - error
222
+ properties:
223
+ error:
224
+ type: string
225
+ description: Human-readable reason this location could not be resolved (e.g. "Location not found", "Missing required location parameters").
226
+ WeatherLocation:
227
+ type: object
228
+ description: Location information. The shape of this object varies by lookup method.
229
+ oneOf:
230
+ - description: Location data when the target is specified by GPS coordinates (lat/long).
231
+ $ref: '#/components/schemas/LocationByCoordinates'
232
+ - description: Location data when the target is inferred from an IP address.
233
+ $ref: '#/components/schemas/LocationByIP'
234
+ - description: Location data when the target is specified by a city name or address string.
235
+ $ref: '#/components/schemas/LocationByAddress'
236
+ LocationByCoordinates:
237
+ type: object
238
+ required:
239
+ - latitude
240
+ - longitude
241
+ - country_name
242
+ - state_prov
243
+ - city
244
+ - timezone
245
+ - timezone_abbreviation
246
+ properties:
247
+ latitude:
248
+ type: string
249
+ description: Geographic latitude coordinate in decimal degrees, ranging from -90 (South Pole) to +90 (North Pole). Returned as a string, not a number.
250
+ longitude:
251
+ type: string
252
+ description: Geographic longitude coordinate in decimal degrees, ranging from -180 (West) to +180 (East). Returned as a string, not a number.
253
+ country_name:
254
+ type: string
255
+ description: Full name of the country corresponding to the provided coordinates.
256
+ state_prov:
257
+ type: string
258
+ description: State, province, or primary administrative division name for the location.
259
+ city:
260
+ type: string
261
+ description: City or municipal area name associated with the coordinate location.
262
+ locality:
263
+ type: string
264
+ description: Specific locality, neighborhood, district, or village name within the broader area.
265
+ elevation:
266
+ type: string
267
+ 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.
268
+ timezone:
269
+ type: string
270
+ description: IANA timezone database identifier for the location (e.g., America/New_York, Europe/London).
271
+ timezone_abbreviation:
272
+ type: string
273
+ description: Abbreviated timezone representation based on current offset (e.g., EST, GMT, PST).
274
+ description: Location data when the target is specified by GPS coordinates (lat/long).
275
+ LocationByIP:
276
+ type: object
277
+ required:
278
+ - continent_code
279
+ - continent_name
280
+ - country_code2
281
+ - country_code3
282
+ - country_name
283
+ - country_name_official
284
+ - state_prov
285
+ - city
286
+ - latitude
287
+ - longitude
288
+ - timezone
289
+ - timezone_abbreviation
290
+ properties:
291
+ continent_code:
292
+ type: string
293
+ description: Two-letter continent code (e.g., NA for North America, EU for Europe, AS for Asia).
294
+ continent_name:
295
+ type: string
296
+ description: Full name of the continent where the IP address is registered.
297
+ country_code2:
298
+ type: string
299
+ description: ISO 3166-1 alpha-2 two-letter country code (e.g., US, GB, FR).
300
+ country_code3:
301
+ type: string
302
+ description: ISO 3166-1 alpha-3 three-letter country code (e.g., USA, GBR, FRA).
303
+ country_name:
304
+ type: string
305
+ description: Common name of the country associated with the IP address.
306
+ country_name_official:
307
+ type: string
308
+ description: Official long-form country name as recognized internationally (e.g., United States of America).
309
+ is_eu:
310
+ type: boolean
311
+ description: Boolean flag indicating whether the country is a member state of the European Union.
312
+ state_prov:
313
+ type: string
314
+ description: State, province, or primary administrative division associated with the IP location.
315
+ state_code:
316
+ type: string
317
+ description: ISO 3166-2 subdivision code for the state or province (e.g., CA for California).
318
+ district:
319
+ type: string
320
+ description: District, county, or secondary administrative division within the region.
321
+ city:
322
+ type: string
323
+ description: City or urban area name where the IP address is geographically registered.
324
+ zipcode:
325
+ type: string
326
+ description: Postal code or ZIP code for the approximate location of the IP address.
327
+ latitude:
328
+ type: string
329
+ description: Geographic latitude in decimal degrees for the IP geolocation, ranging from -90 to +90. Returned as a string, not a number.
330
+ longitude:
331
+ type: string
332
+ description: Geographic longitude in decimal degrees for the IP geolocation, ranging from -180 to +180. Returned as a string, not a number.
333
+ locality:
334
+ type: string
335
+ description: Specific locality, neighborhood, or small area designation within the city.
336
+ elevation:
337
+ type: string
338
+ 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.
339
+ timezone:
340
+ type: string
341
+ description: IANA timezone database identifier for the IP location (e.g., America/Chicago, Asia/Tokyo).
342
+ timezone_abbreviation:
343
+ type: string
344
+ description: Current timezone abbreviation based on local offset (e.g., CST, JST, UTC).
345
+ description: Location data when the target is inferred from an IP address.
346
+ LocationByAddress:
347
+ type: object
348
+ required:
349
+ - location_string
350
+ - country_name
351
+ - state_prov
352
+ - city
353
+ - latitude
354
+ - longitude
355
+ - timezone
356
+ - timezone_abbreviation
357
+ properties:
358
+ location_string:
359
+ type: string
360
+ description: Original location query string as submitted, including full address or place name.
361
+ country_name:
362
+ type: string
363
+ description: Resolved country name derived from the geocoded location query.
364
+ state_prov:
365
+ type: string
366
+ description: State, province, or primary administrative division identified from the location.
367
+ city:
368
+ type: string
369
+ description: City or municipal area name extracted from the geocoded location.
370
+ locality:
371
+ type: string
372
+ description: Specific locality, neighborhood, suburb, or village within the geocoded area.
373
+ latitude:
374
+ type: string
375
+ description: Geocoded latitude coordinate in decimal degrees, ranging from -90 to +90. Returned as a string, not a number.
376
+ longitude:
377
+ type: string
378
+ description: Geocoded longitude coordinate in decimal degrees, ranging from -180 to +180. Returned as a string, not a number.
379
+ elevation:
380
+ type: string
381
+ 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.
382
+ timezone:
383
+ type: string
384
+ description: IANA timezone database identifier for the geocoded location (e.g., America/Los_Angeles).
385
+ timezone_abbreviation:
386
+ type: string
387
+ description: Current timezone abbreviation for the location based on local offset (e.g., PDT, CET).
388
+ description: Location data when the target is specified by a city name or address string.
389
+ CurrentWeather:
390
+ type: object
391
+ required:
392
+ - timestamp
393
+ - temperature_2m
394
+ - relative_humidity_2m
395
+ - apparent_temperature
396
+ - snowfall
397
+ - rain
398
+ - showers
399
+ - precipitation
400
+ - weather_code
401
+ - cloud_cover
402
+ - pressure_msl
403
+ - surface_pressure
404
+ - wind_speed_10m
405
+ - wind_direction_10m
406
+ - wind_gusts_10m
407
+ - astronomy
408
+ - air_quality
409
+ properties:
410
+ timestamp:
411
+ type: string
412
+ format: date-time
413
+ description: ISO 8601 formatted timestamp of the current weather observation.
414
+ temperature_2m:
415
+ type: number
416
+ format: float
417
+ description: Current air temperature (°C) measured at 2 meters above ground.
418
+ relative_humidity_2m:
419
+ type: number
420
+ format: float
421
+ description: Current relative humidity percentage at 2 meters above ground.
422
+ apparent_temperature:
423
+ type: number
424
+ format: float
425
+ description: Current apparent temperature (°C) accounting for wind chill and humidity.
426
+ snowfall:
427
+ type: number
428
+ format: float
429
+ description: Current snowfall accumulation in centimeters.
430
+ rain:
431
+ type: number
432
+ format: float
433
+ description: Current rainfall accumulation in millimeters.
434
+ showers:
435
+ type: number
436
+ format: float
437
+ description: Current shower precipitation in millimeters.
438
+ precipitation:
439
+ type: number
440
+ format: float
441
+ description: Total precipitation (mm) including rain, showers, and snowfall.
442
+ weather_code:
443
+ type: integer
444
+ enum:
445
+ - 0
446
+ - 1
447
+ - 2
448
+ - 3
449
+ - 45
450
+ - 48
451
+ - 51
452
+ - 53
453
+ - 55
454
+ - 56
455
+ - 57
456
+ - 61
457
+ - 63
458
+ - 65
459
+ - 66
460
+ - 67
461
+ - 71
462
+ - 73
463
+ - 75
464
+ - 77
465
+ - 80
466
+ - 81
467
+ - 82
468
+ - 85
469
+ - 86
470
+ - 95
471
+ - 96
472
+ - 99
473
+ description: 'WMO weather condition code representing current 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.'
474
+ cloud_cover:
475
+ type: number
476
+ format: float
477
+ description: Current percentage of sky covered by clouds.
478
+ pressure_msl:
479
+ type: number
480
+ format: float
481
+ description: Current atmospheric pressure (hPa) adjusted to mean sea level.
482
+ surface_pressure:
483
+ type: number
484
+ format: float
485
+ description: Current atmospheric pressure (hPa) at surface level.
486
+ wind_speed_10m:
487
+ type: number
488
+ format: float
489
+ description: Current wind speed (km/h) at 10 meters above ground.
490
+ wind_direction_10m:
491
+ type: integer
492
+ description: Current wind direction in degrees at 10 meters above ground.
493
+ wind_gusts_10m:
494
+ type: number
495
+ format: float
496
+ description: Current wind gust speed (km/h) at 10 meters above ground.
497
+ astronomy:
498
+ $ref: '#/components/schemas/Astronomy'
499
+ description: Astronomical information including sunrise, sunset, and moon phases for the current date.
500
+ air_quality:
501
+ $ref: '#/components/schemas/AirQuality'
502
+ description: Air quality metrics including pollutant concentrations and AQI values.
503
+ description: Current weather conditions including temperature, humidity, precipitation, wind, pressure, astronomy, and air quality.
504
+ Astronomy:
505
+ type: object
506
+ required:
507
+ - date
508
+ - mid_night
509
+ - night_end
510
+ - sunrise
511
+ - solar_noon
512
+ - sunset
513
+ - night_begin
514
+ - day_length
515
+ - sun_status
516
+ - moon_phase
517
+ - moonrise
518
+ - moonset
519
+ - moon_status
520
+ properties:
521
+ date:
522
+ type: string
523
+ format: date
524
+ description: Calendar date in YYYY-MM-DD format for the astronomical data.
525
+ mid_night:
526
+ type: string
527
+ description: Time of true solar midnight in HH:MM format.
528
+ night_end:
529
+ type: string
530
+ description: Time when astronomical twilight ends and dawn begins in HH:MM format.
531
+ sunrise:
532
+ type: string
533
+ description: Time when the Sun becomes visible above the horizon in HH:MM format.
534
+ solar_noon:
535
+ type: string
536
+ description: Time when the Sun reaches its highest point in the sky in HH:MM format.
537
+ sunset:
538
+ type: string
539
+ description: Time when the Sun disappears below the horizon in HH:MM format.
540
+ night_begin:
541
+ type: string
542
+ description: Time when astronomical twilight begins and night starts in HH:MM format.
543
+ day_length:
544
+ type: string
545
+ description: Total duration of daylight in HH:MM format.
546
+ sun_status:
547
+ type: string
548
+ description: Current position of the Sun relative to the horizon (above_horizon, below_horizon, or -).
549
+ moon_phase:
550
+ type: string
551
+ description: Current lunar phase (NEW_MOON, WAXING_CRESCENT, FULL_MOON, WANING_GIBBOUS, etc.).
552
+ moonrise:
553
+ type: string
554
+ description: Time when the Moon becomes visible above the horizon in HH:MM format.
555
+ moonset:
556
+ type: string
557
+ description: Time when the Moon disappears below the horizon in HH:MM format.
558
+ moon_status:
559
+ type: string
560
+ description: Current visibility status of the Moon (visible, not_visible, or -).
561
+ description: Astronomical data including sunrise, sunset, solar noon, day length, moon phase, and moon times.
562
+ AirQuality:
563
+ type: object
564
+ required:
565
+ - timestamp
566
+ - european_aqi
567
+ - us_aqi
568
+ - pm10
569
+ - pm2_5
570
+ - carbon_monoxide
571
+ - nitrogen_dioxide
572
+ - sulphur_dioxide
573
+ - ozone
574
+ - dust
575
+ - uv_index
576
+ - aerosol_optical_depth
577
+ - uv_index_clear_sky
578
+ properties:
579
+ timestamp:
580
+ type: string
581
+ format: date-time
582
+ description: ISO 8601 formatted timestamp (iso8601).
583
+ european_aqi:
584
+ type: integer
585
+ description: 'Consolidated European Air Quality Index representing the highest value among individual pollutant indices. Ranges: 0-20 (good), 20-40 (fair), 40-60 (moderate), 60-80 (poor), 80-100 (very poor), >100 (extremely poor).'
586
+ us_aqi:
587
+ type: integer
588
+ description: 'Consolidated U.S. Air Quality Index representing the highest value among individual pollutant indices. Ranges: 0-50 (good), 51-100 (moderate), 101-150 (unhealthy for sensitive groups), 151-200 (unhealthy), 201-300 (very unhealthy), 301-500 (hazardous).'
589
+ pm10:
590
+ type: number
591
+ format: float
592
+ description: Particulate matter with diameter less than 10 micrometers (μg/m³) measured at 10 meters above ground.
593
+ pm2_5:
594
+ type: number
595
+ format: float
596
+ description: Particulate matter with diameter less than 2.5 micrometers (μg/m³) measured at 10 meters above ground.
597
+ carbon_monoxide:
598
+ type: number
599
+ format: float
600
+ description: Atmospheric carbon monoxide gas concentration (μg/m³) at 10 meters above ground.
601
+ nitrogen_dioxide:
602
+ type: number
603
+ format: float
604
+ description: Atmospheric nitrogen dioxide gas concentration (μg/m³) at 10 meters above ground.
605
+ sulphur_dioxide:
606
+ type: number
607
+ format: float
608
+ description: Atmospheric sulphur dioxide gas concentration (μg/m³) at 10 meters above ground.
609
+ ozone:
610
+ type: number
611
+ format: float
612
+ description: Atmospheric ozone gas concentration (μg/m³) at 10 meters above ground.
613
+ dust:
614
+ type: number
615
+ format: float
616
+ description: Saharan dust particle concentration (μg/m³) at 10 meters above ground.
617
+ uv_index:
618
+ type: number
619
+ format: float
620
+ description: Ultraviolet radiation intensity index accounting for cloud coverage.
621
+ aerosol_optical_depth:
622
+ type: number
623
+ format: float
624
+ description: Aerosol optical depth at 550 nm wavelength indicating atmospheric haze levels.
625
+ uv_index_clear_sky:
626
+ type: number
627
+ format: float
628
+ description: Ultraviolet radiation intensity index assuming cloud-free conditions.
629
+ description: Air quality metrics including European and US AQI indices plus individual pollutant concentrations.
630
+ ErrorResponse:
631
+ type: object
632
+ required:
633
+ - message
634
+ properties:
635
+ error:
636
+ type: string
637
+ description: Short error category or exception type.
638
+ message:
639
+ type: string
640
+ description: Human-readable error message describing the failure.
641
+ path:
642
+ type: string
643
+ description: API endpoint path that produced the error.
644
+ status:
645
+ type: integer
646
+ description: HTTP status code returned with the error.
647
+ timestamp:
648
+ type: string
649
+ format: date-time
650
+ description: Timestamp when the error occurred (ISO 8601).
651
+ description: Standard error envelope returned by the API on failed requests.
652
+ security:
653
+ - ApiKeyAuthHeader: []
654
+ - ApiKeyAuthQuery: []