@apifreaks/openapi-specs 0.1.0

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 (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/index.cjs +44663 -0
  4. package/dist/index.d.cts +30 -0
  5. package/dist/index.d.ts +30 -0
  6. package/dist/index.js +44631 -0
  7. package/package.json +81 -0
  8. package/specs/commodity/commodity-fluctuation.json +301 -0
  9. package/specs/commodity/commodity-prices.json +317 -0
  10. package/specs/commodity/commodity-symbols.json +215 -0
  11. package/specs/commodity/commodity-time-series.json +329 -0
  12. package/specs/commodity/historical-commodity-prices.json +273 -0
  13. package/specs/currency/currency-converter.json +261 -0
  14. package/specs/currency/currency-fluctuation.json +282 -0
  15. package/specs/currency/currency-historical-data-limit.json +158 -0
  16. package/specs/currency/currency-rate.json +229 -0
  17. package/specs/currency/currency-supported.json +234 -0
  18. package/specs/currency/currency-symbols.json +161 -0
  19. package/specs/currency/currency-time-series.json +325 -0
  20. package/specs/currency/geolocalized-currency-conversion.json +287 -0
  21. package/specs/currency/historical-currency-converter.json +269 -0
  22. package/specs/currency/historical-currency-rate.json +246 -0
  23. package/specs/dns/bulk-dns-lookup.json +624 -0
  24. package/specs/dns/dns-history-lookup.json +579 -0
  25. package/specs/dns/dns-lookup.json +466 -0
  26. package/specs/dns/reverse-dns-lookup.json +414 -0
  27. package/specs/domain/bulk-domain-checker.json +284 -0
  28. package/specs/domain/domain-search-with-suggestions.json +280 -0
  29. package/specs/domain/domain-search.json +206 -0
  30. package/specs/domain/subdomain-lookup.json +343 -0
  31. package/specs/email-validation/bulk-email-validation.json +534 -0
  32. package/specs/email-validation/email-checker.json +586 -0
  33. package/specs/financial/bulk-vat-rates-country.json +341 -0
  34. package/specs/financial/financial-apis-supported-countries.json +204 -0
  35. package/specs/financial/iban-validation.json +328 -0
  36. package/specs/financial/swift-code-finder.json +192 -0
  37. package/specs/financial/swift-code-lookup.json +220 -0
  38. package/specs/financial/vat-number-validation.json +283 -0
  39. package/specs/financial/vat-rates-by-ip.json +275 -0
  40. package/specs/financial/vat-rates-country.json +288 -0
  41. package/specs/general/usage-credits.json +218 -0
  42. package/specs/geocoding/forward-geocoding.json +402 -0
  43. package/specs/geocoding/reverse-geocoding.json +326 -0
  44. package/specs/geodb/administrative-units-details.json +250 -0
  45. package/specs/geodb/administrative-units-levels.json +198 -0
  46. package/specs/geodb/administrative-units.json +237 -0
  47. package/specs/geodb/cities.json +288 -0
  48. package/specs/geodb/countries-details.json +274 -0
  49. package/specs/geodb/countries.json +276 -0
  50. package/specs/geodb/flags-supported.json +166 -0
  51. package/specs/geodb/flags.json +227 -0
  52. package/specs/geodb/regions.json +109 -0
  53. package/specs/geodb/subregions.json +217 -0
  54. package/specs/ip-intelligence/bulk-ip-lookup.json +1162 -0
  55. package/specs/ip-intelligence/bulk-ip-threat-intelligence.json +417 -0
  56. package/specs/ip-intelligence/ip-locator.json +941 -0
  57. package/specs/ip-intelligence/ip-threat-intelligence.json +316 -0
  58. package/specs/other/astronomy-data.json +803 -0
  59. package/specs/pdf/delete-pdf-page.json +286 -0
  60. package/specs/pdf/linearize-pdf.json +277 -0
  61. package/specs/pdf/merge-pdf.json +285 -0
  62. package/specs/pdf/pdf-compress.json +304 -0
  63. package/specs/pdf/pdf-decrypt.json +297 -0
  64. package/specs/pdf/pdf-encrypt.json +314 -0
  65. package/specs/pdf/pdf-extract-pages.json +295 -0
  66. package/specs/pdf/pdf-file-status.json +208 -0
  67. package/specs/pdf/pdf-file.json +190 -0
  68. package/specs/pdf/pdf-files.json +126 -0
  69. package/specs/pdf/pdf-resource-download.json +168 -0
  70. package/specs/pdf/pdf-resource-upload-binary.json +218 -0
  71. package/specs/pdf/pdf-resource-upload.json +248 -0
  72. package/specs/pdf/pdf-restrict.json +343 -0
  73. package/specs/pdf/pdf-split-pages.json +281 -0
  74. package/specs/pdf/pdf-task-status.json +252 -0
  75. package/specs/pdf/pdf-to-image.json +1219 -0
  76. package/specs/pdf/pdf-unrestrict.json +324 -0
  77. package/specs/pdf/rotate-pdf-pages.json +305 -0
  78. package/specs/phone-validation/bulk-phone-number-validation.json +518 -0
  79. package/specs/phone-validation/phone-number-validation.json +456 -0
  80. package/specs/scraper/web-scraper.json +674 -0
  81. package/specs/screenshot/bulk-screenshot.json +949 -0
  82. package/specs/screenshot/website-screenshot.json +1147 -0
  83. package/specs/ssl/ssl-certificate-chain-lookup.json +756 -0
  84. package/specs/ssl/ssl-certificate-lookup.json +634 -0
  85. package/specs/timezone/timezone-converter.json +362 -0
  86. package/specs/timezone/timezone-lookup.json +910 -0
  87. package/specs/user-agent/bulk-user-agent-parser.json +441 -0
  88. package/specs/user-agent/user-agent-parser.json +346 -0
  89. package/specs/weather/air-quality.json +779 -0
  90. package/specs/weather/bulk-live-weather.json +834 -0
  91. package/specs/weather/flood-forecast.json +693 -0
  92. package/specs/weather/historical-weather.json +1019 -0
  93. package/specs/weather/live-weather.json +789 -0
  94. package/specs/weather/marine-weather.json +940 -0
  95. package/specs/weather/time-series-weather.json +1056 -0
  96. package/specs/weather/weather-forecast.json +1202 -0
  97. package/specs/whois/asn-lookup.json +729 -0
  98. package/specs/whois/bulk-whois-lookup.json +698 -0
  99. package/specs/whois/domain-whois-history-lookup.json +500 -0
  100. package/specs/whois/reverse-whois.json +625 -0
  101. package/specs/whois/whois-domain-lookup.json +533 -0
  102. package/specs/whois/whois-ip-lookup.json +1110 -0
  103. package/specs/zip-code/bulk-zip-code-lookup.json +318 -0
  104. package/specs/zip-code/zip-code-api.json +299 -0
  105. package/specs/zip-code/zip-code-distance-match.json +311 -0
  106. package/specs/zip-code/zip-code-distance.json +307 -0
  107. package/specs/zip-code/zip-codes-by-city.json +279 -0
  108. package/specs/zip-code/zip-codes-by-region.json +278 -0
  109. package/specs/zip-code/zip-codes-radius-search.json +349 -0
@@ -0,0 +1,803 @@
1
+ {
2
+ "openapi": "3.1.1",
3
+ "info": {
4
+ "title": "Astronomy API - Location Based Astronomy Data",
5
+ "version": "1.0.0",
6
+ "description": "Retrieve sunrise and sunset times, current position of the moon, and other astronomical data for any location and date. Supports lookup by city name or address (location), GPS coordinates (lat/long), an explicit IP address (ip), or the requester's own client IP when none of those are provided. Returns comprehensive astronomy data including twilight times, blue hour, golden hour, sun and moon positions, distances, azimuths, and moon phase. The location object's field set varies by lookup mode: address lookups return a location_string plus basic fields, coordinate lookups return the same basic fields without location_string, and IP-based lookups (explicit ip or client-IP fallback) return a richer geo-IP field set (continent, country codes, EU membership, state code, district, zip code) plus a top-level ip field, but never location_string. Pass time_zone to convert all time fields into a specific IANA time zone.",
7
+ "contact": {
8
+ "name": "APIFreaks Support",
9
+ "url": "https://apifreaks.com/contact",
10
+ "email": "support@apifreaks.com"
11
+ }
12
+ },
13
+ "servers": [
14
+ {
15
+ "url": "https://api.apifreaks.com/v2.0",
16
+ "description": "Astronomy API Server"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "/geolocation/astronomy": {
21
+ "get": {
22
+ "tags": ["Other APIs"],
23
+ "summary": "Returns sunrise, sunset, moon phase, and celestial positions for a given location and date.",
24
+ "description": "Retrieve sunrise and sunset times, current position of the moon, and other related information by specifying a location address, location coordinates, IP address, or using the client IP address if no parameter is passed.",
25
+ "operationId": "getAstronomyData",
26
+ "parameters": [
27
+ {
28
+ "name": "format",
29
+ "in": "query",
30
+ "required": false,
31
+ "schema": {
32
+ "type": "string",
33
+ "default": "json",
34
+ "enum": ["json", "xml"]
35
+ },
36
+ "description": "Format of the response. Can be \"json\" or \"xml\"."
37
+ },
38
+ {
39
+ "in": "query",
40
+ "name": "location",
41
+ "schema": {
42
+ "type": "string",
43
+ "default": "New York, US"
44
+ },
45
+ "description": "Extract astronomy information using location (preferably city)",
46
+ "required": false
47
+ },
48
+ {
49
+ "in": "query",
50
+ "name": "lat",
51
+ "schema": {
52
+ "type": "number",
53
+ "format": "float"
54
+ },
55
+ "description": "Latitude to extract astronomy information using location coordinates",
56
+ "required": false
57
+ },
58
+ {
59
+ "in": "query",
60
+ "name": "long",
61
+ "schema": {
62
+ "type": "number",
63
+ "format": "float"
64
+ },
65
+ "description": "Longitude to extract astronomy information using location coordinates",
66
+ "required": false
67
+ },
68
+ {
69
+ "in": "query",
70
+ "name": "ip",
71
+ "schema": {
72
+ "type": "string"
73
+ },
74
+ "description": "IPv4 or IPv6 address to extract astronomy information using IP address",
75
+ "required": false
76
+ },
77
+ {
78
+ "in": "query",
79
+ "name": "lang",
80
+ "schema": {
81
+ "type": "string",
82
+ "default": "en",
83
+ "enum": [
84
+ "en",
85
+ "de",
86
+ "ru",
87
+ "ja",
88
+ "fr",
89
+ "cn",
90
+ "es",
91
+ "cs",
92
+ "it",
93
+ "ko",
94
+ "fa",
95
+ "pt"
96
+ ]
97
+ },
98
+ "description": "Response language of \"location\" field in case of lookup through IP address only.",
99
+ "required": false
100
+ },
101
+ {
102
+ "in": "query",
103
+ "name": "date",
104
+ "schema": {
105
+ "type": "string",
106
+ "format": "date"
107
+ },
108
+ "description": "Specific date (format YYYY-MM-DD) for which astronomy data is required",
109
+ "required": false
110
+ },
111
+ {
112
+ "in": "query",
113
+ "name": "elevation",
114
+ "schema": {
115
+ "type": "number",
116
+ "format": "float",
117
+ "default": 0
118
+ },
119
+ "description": "Elevation above sea level at the location, in meters. The value should be between 0 meter and a maximum value of 10,000 meters. Negative value is set to 0.",
120
+ "required": false
121
+ },
122
+ {
123
+ "in": "query",
124
+ "name": "time_zone",
125
+ "schema": {
126
+ "type": "string"
127
+ },
128
+ "description": "Time zone to receive all time-based data in your preferred local time.",
129
+ "required": false
130
+ }
131
+ ],
132
+ "responses": {
133
+ "200": {
134
+ "description": "Successful response with astronomy data",
135
+ "content": {
136
+ "application/json": {
137
+ "schema": {
138
+ "$ref": "#/components/schemas/AstronomyResponse"
139
+ },
140
+ "examples": {
141
+ "geocodeLookup": {
142
+ "summary": "Lookup by location address (location param)",
143
+ "value": {
144
+ "location": {
145
+ "location_string": "New York, US",
146
+ "country_name": "United States",
147
+ "state_prov": "New York",
148
+ "city": "New York",
149
+ "locality": "Clinton",
150
+ "latitude": "40.76473",
151
+ "longitude": "-74.00084",
152
+ "elevation": "9"
153
+ },
154
+ "astronomy": {
155
+ "date": "2026-07-24",
156
+ "current_time": "05:39:55.740",
157
+ "mid_night": "01:02",
158
+ "night_end": "03:50",
159
+ "morning": {
160
+ "astronomical_twilight_begin": "03:50",
161
+ "astronomical_twilight_end": "04:34",
162
+ "nautical_twilight_begin": "04:34",
163
+ "nautical_twilight_end": "05:13",
164
+ "civil_twilight_begin": "05:13",
165
+ "civil_twilight_end": "05:44",
166
+ "blue_hour_begin": "05:00",
167
+ "blue_hour_end": "05:26",
168
+ "golden_hour_begin": "05:26",
169
+ "golden_hour_end": "06:24"
170
+ },
171
+ "sunrise": "05:44",
172
+ "sunset": "20:20",
173
+ "evening": {
174
+ "golden_hour_begin": "19:39",
175
+ "golden_hour_end": "20:38",
176
+ "blue_hour_begin": "20:38",
177
+ "blue_hour_end": "21:03",
178
+ "civil_twilight_begin": "20:20",
179
+ "civil_twilight_end": "20:50",
180
+ "nautical_twilight_begin": "20:50",
181
+ "nautical_twilight_end": "21:30",
182
+ "astronomical_twilight_begin": "21:30",
183
+ "astronomical_twilight_end": "22:14"
184
+ },
185
+ "night_begin": "22:14",
186
+ "sun_status": "-",
187
+ "solar_noon": "13:02",
188
+ "day_length": "14:35",
189
+ "sun_altitude": -1.724678050716447,
190
+ "sun_distance": 151988138.3404624,
191
+ "sun_azimuth": 61.7231663467785,
192
+ "moon_phase": "WAXING_GIBBOUS",
193
+ "moonrise": "16:59",
194
+ "moonset": "01:05",
195
+ "moon_status": "-",
196
+ "moon_altitude": -47.89342665088803,
197
+ "moon_distance": 404852.80222395214,
198
+ "moon_azimuth": 275.0508821352747,
199
+ "moon_parallactic_angle": 57.14257561268031,
200
+ "moon_illumination_percentage": "76.99",
201
+ "moon_angle": 122.67519000797743
202
+ }
203
+ }
204
+ },
205
+ "coordinatesLookup": {
206
+ "summary": "Lookup by GPS coordinates (lat/long params) — no location_string, locality may be empty",
207
+ "value": {
208
+ "location": {
209
+ "latitude": "40.71280",
210
+ "longitude": "-74.00600",
211
+ "country_name": "United States",
212
+ "state_prov": "New York",
213
+ "city": "New York City",
214
+ "locality": "",
215
+ "elevation": "6"
216
+ },
217
+ "astronomy": {
218
+ "date": "2026-07-24",
219
+ "current_time": "05:40:09.712",
220
+ "mid_night": "01:02",
221
+ "night_end": "03:50",
222
+ "morning": {
223
+ "astronomical_twilight_begin": "03:50",
224
+ "astronomical_twilight_end": "04:34",
225
+ "nautical_twilight_begin": "04:34",
226
+ "nautical_twilight_end": "05:14",
227
+ "civil_twilight_begin": "05:14",
228
+ "civil_twilight_end": "05:45",
229
+ "blue_hour_begin": "05:01",
230
+ "blue_hour_end": "05:26",
231
+ "golden_hour_begin": "05:26",
232
+ "golden_hour_end": "06:25"
233
+ },
234
+ "sunrise": "05:45",
235
+ "sunset": "20:19",
236
+ "evening": {
237
+ "golden_hour_begin": "19:39",
238
+ "golden_hour_end": "20:38",
239
+ "blue_hour_begin": "20:38",
240
+ "blue_hour_end": "21:03",
241
+ "civil_twilight_begin": "20:19",
242
+ "civil_twilight_end": "20:50",
243
+ "nautical_twilight_begin": "20:50",
244
+ "nautical_twilight_end": "21:30",
245
+ "astronomical_twilight_begin": "21:30",
246
+ "astronomical_twilight_end": "22:13"
247
+ },
248
+ "night_begin": "22:13",
249
+ "sun_status": "-",
250
+ "solar_noon": "13:02",
251
+ "day_length": "14:34",
252
+ "sun_altitude": -1.7138810477761148,
253
+ "sun_distance": 151988138.34046236,
254
+ "sun_azimuth": 61.759759720006855,
255
+ "moon_phase": "WAXING_GIBBOUS",
256
+ "moonrise": "16:58",
257
+ "moonset": "01:05",
258
+ "moon_status": "-",
259
+ "moon_altitude": -47.936765082140305,
260
+ "moon_distance": 404853.01478817535,
261
+ "moon_azimuth": 275.0302780092609,
262
+ "moon_parallactic_angle": 57.21501710401273,
263
+ "moon_illumination_percentage": "77.00",
264
+ "moon_angle": 122.67696159469526
265
+ }
266
+ }
267
+ },
268
+ "ipLookup": {
269
+ "summary": "Lookup by IP address (ip param, or default client IP) — full geo-IP location fields, includes top-level ip",
270
+ "value": {
271
+ "ip": "8.8.8.8",
272
+ "location": {
273
+ "continent_code": "NA",
274
+ "continent_name": "North America",
275
+ "country_code2": "US",
276
+ "country_code3": "USA",
277
+ "country_name": "United States",
278
+ "country_name_official": "United States of America",
279
+ "is_eu": false,
280
+ "state_prov": "California",
281
+ "state_code": "US-CA",
282
+ "district": "Santa Clara",
283
+ "city": "Mountain View",
284
+ "zipcode": "94043-1351",
285
+ "latitude": "37.42240",
286
+ "longitude": "-122.08421",
287
+ "locality": "Charleston Terrace",
288
+ "elevation": "3"
289
+ },
290
+ "astronomy": {
291
+ "date": "2026-07-24",
292
+ "current_time": "02:40:09.167",
293
+ "mid_night": "01:15",
294
+ "night_end": "04:20",
295
+ "morning": {
296
+ "astronomical_twilight_begin": "04:20",
297
+ "astronomical_twilight_end": "05:00",
298
+ "nautical_twilight_begin": "05:00",
299
+ "nautical_twilight_end": "05:36",
300
+ "civil_twilight_begin": "05:36",
301
+ "civil_twilight_end": "06:06",
302
+ "blue_hour_begin": "05:25",
303
+ "blue_hour_end": "05:48",
304
+ "golden_hour_begin": "05:48",
305
+ "golden_hour_end": "06:43"
306
+ },
307
+ "sunrise": "06:06",
308
+ "sunset": "20:23",
309
+ "evening": {
310
+ "golden_hour_begin": "19:45",
311
+ "golden_hour_end": "20:41",
312
+ "blue_hour_begin": "20:41",
313
+ "blue_hour_end": "21:04",
314
+ "civil_twilight_begin": "20:23",
315
+ "civil_twilight_end": "20:52",
316
+ "nautical_twilight_begin": "20:52",
317
+ "nautical_twilight_end": "21:28",
318
+ "astronomical_twilight_begin": "21:28",
319
+ "astronomical_twilight_end": "22:08"
320
+ },
321
+ "night_begin": "22:08",
322
+ "sun_status": "-",
323
+ "solar_noon": "13:14",
324
+ "day_length": "14:17",
325
+ "sun_altitude": -29.345451007769825,
326
+ "sun_distance": 151988138.3404624,
327
+ "sun_azimuth": 23.09240894097684,
328
+ "moon_phase": "WAXING_GIBBOUS",
329
+ "moonrise": "17:06",
330
+ "moonset": "01:34",
331
+ "moon_status": "-",
332
+ "moon_altitude": -11.054713589548413,
333
+ "moon_distance": 404853.00649734883,
334
+ "moon_azimuth": 245.50238573115115,
335
+ "moon_parallactic_angle": 53.576490644915204,
336
+ "moon_illumination_percentage": "77.00",
337
+ "moon_angle": 122.67689249117335
338
+ }
339
+ }
340
+ }
341
+ }
342
+ }
343
+ }
344
+ },
345
+ "400": {
346
+ "description": "Bad Request \u2013 Invalid parameters provided",
347
+ "content": {
348
+ "application/json": {
349
+ "schema": {
350
+ "$ref": "#/components/schemas/ErrorResponse"
351
+ },
352
+ "examples": {
353
+ "invalidLatLong": {
354
+ "summary": "Invalid latitude or longitude",
355
+ "value": {
356
+ "message": "Latitude must be between -90 and 90."
357
+ }
358
+ },
359
+ "invalidIp": {
360
+ "summary": "Invalid IP address",
361
+ "value": {
362
+ "message": "'999.999.999.999' is not an IP string literal."
363
+ }
364
+ },
365
+ "invalidDate": {
366
+ "summary": "Invalid date format",
367
+ "value": {
368
+ "message": "You must provide date in the 'yyyy-MM-dd' format"
369
+ }
370
+ }
371
+ }
372
+ }
373
+ }
374
+ },
375
+ "404": {
376
+ "description": "Not Found",
377
+ "content": {
378
+ "application/json": {
379
+ "schema": {
380
+ "$ref": "#/components/schemas/ErrorResponse"
381
+ },
382
+ "examples": {
383
+ "locationNotFound": {
384
+ "summary": "Location not found",
385
+ "value": {
386
+ "message": "We couldn't find the location (ZZZNOTEXIST). Try a city or state level location address only."
387
+ }
388
+ }
389
+ }
390
+ }
391
+ }
392
+ }
393
+ }
394
+ }
395
+ }
396
+ },
397
+ "components": {
398
+ "securitySchemes": {
399
+ "ApiKeyAuthHeader": {
400
+ "type": "apiKey",
401
+ "in": "header",
402
+ "name": "X-apiKey",
403
+ "description": "Pass your API key via the X-apiKey request header."
404
+ },
405
+ "ApiKeyAuthQuery": {
406
+ "type": "apiKey",
407
+ "in": "query",
408
+ "name": "apiKey",
409
+ "description": "Pass your API key via the apiKey query parameter."
410
+ }
411
+ },
412
+ "schemas": {
413
+ "AstronomyResponse": {
414
+ "type": "object",
415
+ "required": ["astronomy"],
416
+ "properties": {
417
+ "ip": {
418
+ "type": "string",
419
+ "description": "IPv4 or IPv6 address used for the geo-IP lookup. Present when the ip parameter is passed explicitly, or when no location, lat/long, or ip parameter is supplied at all (the API falls back to the requesting client's IP address). Absent when location or lat/long is used."
420
+ },
421
+ "location": {
422
+ "$ref": "#/components/schemas/AstronomyLocation"
423
+ },
424
+ "astronomy": {
425
+ "$ref": "#/components/schemas/AstronomyData"
426
+ }
427
+ },
428
+ "description": "Astronomy data response containing location information and astronomical data."
429
+ },
430
+
431
+ "AstronomyLocation": {
432
+ "type": "object",
433
+ "description": "Geographic location information for the astronomy calculation. The set of populated fields depends on which lookup mode the request used: (1) location param (geocode-by-address) returns location_string plus a basic field set (country_name, state_prov, city, locality, latitude, longitude, elevation); (2) lat + long params (geocode-by-coordinates) returns the same basic field set minus location_string, and locality may be an empty string when the coordinates don't resolve to a named sub-area; (3) ip param, or no location/lat/long/ip param at all (falls back to geo-IP lookup of the client's IP), returns the full geo-IP field set — continent_code, continent_name, country_code2, country_code3, country_name_official, is_eu, state_code, district, zipcode — in addition to the basic fields, but never location_string. elevation can be an empty string when elevation data is unavailable for the resolved location.",
434
+ "properties": {
435
+ "location_string": {
436
+ "type": "string",
437
+ "description": "The location query parameter echoed back as-is. Present only for geocode-by-address lookups (location param); absent for lat/long and ip-based lookups."
438
+ },
439
+ "continent_code": {
440
+ "type": "string",
441
+ "description": "The two-letter code of the continent (e.g., \"NA\"). Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
442
+ },
443
+ "continent_name": {
444
+ "type": "string",
445
+ "description": "The full name of the continent (e.g., \"North America\"). Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
446
+ },
447
+ "country_code2": {
448
+ "type": "string",
449
+ "description": "The ISO 3166-1 alpha-2 two-letter country code (e.g., \"US\"). Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
450
+ },
451
+ "country_code3": {
452
+ "type": "string",
453
+ "description": "The ISO 3166-1 alpha-3 three-letter country code (e.g., \"USA\"). Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
454
+ },
455
+ "country_name": {
456
+ "type": "string",
457
+ "description": "The common name of the country (e.g., \"United States\"). Present in all lookup modes."
458
+ },
459
+ "country_name_official": {
460
+ "type": "string",
461
+ "description": "The official full name of the country (e.g., \"United States of America\"). Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
462
+ },
463
+ "is_eu": {
464
+ "type": "boolean",
465
+ "description": "Whether the country belongs to the European Union. Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
466
+ },
467
+ "state_prov": {
468
+ "type": "string",
469
+ "description": "Name of the state/province/region. Present in all lookup modes."
470
+ },
471
+ "state_code": {
472
+ "type": "string",
473
+ "description": "Code of the state/province/region. Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
474
+ },
475
+ "district": {
476
+ "type": "string",
477
+ "description": "Name of the district or county. Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
478
+ },
479
+ "city": {
480
+ "type": "string",
481
+ "description": "Name of the city. Present in all lookup modes."
482
+ },
483
+ "zipcode": {
484
+ "type": "string",
485
+ "description": "ZIP/Postal code of the place. Geo-IP field only: present for ip param or default client-IP lookups; absent for location/lat/long geocode lookups."
486
+ },
487
+ "latitude": {
488
+ "type": "string",
489
+ "description": "The geographic latitude of the location. Present in all lookup modes."
490
+ },
491
+ "longitude": {
492
+ "type": "string",
493
+ "description": "The geographic longitude of the location. Present in all lookup modes."
494
+ },
495
+ "locality": {
496
+ "type": "string",
497
+ "description": "Smaller area, part or region of a city. Present in all lookup modes, but may be an empty string for lat/long or geo-IP lookups when no named sub-area resolves."
498
+ },
499
+ "elevation": {
500
+ "type": "string",
501
+ "description": "The elevation of the geographical location, in meters. Present in all lookup modes, but may be an empty string when elevation data is unavailable for the resolved location."
502
+ }
503
+ },
504
+ "required": ["latitude", "longitude"]
505
+ },
506
+ "AstronomyData": {
507
+ "type": "object",
508
+ "description": "Complete astronomical data for the specified location and date.",
509
+ "required": [
510
+ "date",
511
+ "current_time",
512
+ "mid_night",
513
+ "night_end",
514
+ "morning",
515
+ "sunrise",
516
+ "sunset",
517
+ "evening",
518
+ "night_begin",
519
+ "sun_status",
520
+ "solar_noon",
521
+ "day_length",
522
+ "sun_altitude",
523
+ "sun_distance",
524
+ "sun_azimuth",
525
+ "moon_phase",
526
+ "moonrise",
527
+ "moonset",
528
+ "moon_status",
529
+ "moon_altitude",
530
+ "moon_distance",
531
+ "moon_azimuth",
532
+ "moon_parallactic_angle",
533
+ "moon_illumination_percentage",
534
+ "moon_angle"
535
+ ],
536
+ "properties": {
537
+ "time_zone": {
538
+ "type": "string",
539
+ "description": "Appears (with the provided value) only when the user includes a time_zone in the query to specify which time to observe."
540
+ },
541
+ "date": {
542
+ "type": "string",
543
+ "description": "The date astronomy data was calculated for. Defaults to today's date; reflects the date query parameter's value when that parameter is supplied."
544
+ },
545
+ "current_time": {
546
+ "type": "string",
547
+ "description": "The current time"
548
+ },
549
+ "mid_night": {
550
+ "type": "string",
551
+ "description": "The time of midnight (solar-based)"
552
+ },
553
+ "night_end": {
554
+ "type": "string",
555
+ "description": "The time when night ends (start of astronomical twilight)"
556
+ },
557
+ "morning": {
558
+ "$ref": "#/components/schemas/AstronomyMorning"
559
+ },
560
+ "sunrise": {
561
+ "type": "string",
562
+ "description": "The time of sunrise"
563
+ },
564
+ "sunset": {
565
+ "type": "string",
566
+ "description": "The time of sunset"
567
+ },
568
+ "evening": {
569
+ "$ref": "#/components/schemas/AstronomyEvening"
570
+ },
571
+ "night_begin": {
572
+ "type": "string",
573
+ "description": "The time when night begins (end of astronomical twilight)"
574
+ },
575
+ "sun_status": {
576
+ "type": "string",
577
+ "description": "The current status of the sun (e.g., \"rising\", \"setting\", \"-\")"
578
+ },
579
+ "solar_noon": {
580
+ "type": "string",
581
+ "description": "The time when the sun reaches its highest point in the sky"
582
+ },
583
+ "day_length": {
584
+ "type": "string",
585
+ "description": "The total duration of daylight"
586
+ },
587
+ "sun_altitude": {
588
+ "type": "number",
589
+ "format": "float",
590
+ "description": "The altitude angle of the sun above the horizon in degrees"
591
+ },
592
+ "sun_distance": {
593
+ "type": "number",
594
+ "format": "float",
595
+ "description": "The distance from the Earth to the sun in kilometers"
596
+ },
597
+ "sun_azimuth": {
598
+ "type": "number",
599
+ "format": "float",
600
+ "description": "The azimuth angle of the sun in degrees from true north"
601
+ },
602
+ "moon_phase": {
603
+ "type": "string",
604
+ "description": "The current phase of the moon (e.g., \"WAXING_GIBBOUS\")"
605
+ },
606
+ "moonrise": {
607
+ "type": "string",
608
+ "description": "The time of moonrise"
609
+ },
610
+ "moonset": {
611
+ "type": "string",
612
+ "description": "The time of moonset"
613
+ },
614
+ "moon_status": {
615
+ "type": "string",
616
+ "description": "The current status of the moon (e.g., \"rising\", \"setting\", \"-\")"
617
+ },
618
+ "moon_altitude": {
619
+ "type": "number",
620
+ "format": "float",
621
+ "description": "The altitude angle of the moon above the horizon in degrees"
622
+ },
623
+ "moon_distance": {
624
+ "type": "number",
625
+ "format": "float",
626
+ "description": "The distance from the Earth to the moon in kilometers"
627
+ },
628
+ "moon_azimuth": {
629
+ "type": "number",
630
+ "format": "float",
631
+ "description": "The azimuth angle of the moon in degrees from true north"
632
+ },
633
+ "moon_parallactic_angle": {
634
+ "type": "number",
635
+ "format": "float",
636
+ "description": "The parallactic angle of the moon in degrees"
637
+ },
638
+ "moon_illumination_percentage": {
639
+ "type": "string",
640
+ "description": "The percentage of the moon illuminated by sunlight. A negative value indicates the moon is in a waning phase."
641
+ },
642
+ "moon_angle": {
643
+ "type": "number",
644
+ "format": "float",
645
+ "description": "The geometric angle of the moon relative to the observer"
646
+ }
647
+ }
648
+ },
649
+ "AstronomyMorning": {
650
+ "type": "object",
651
+ "description": "Morning astronomical data including twilight, blue hour, and golden hour times.",
652
+ "required": [
653
+ "astronomical_twilight_begin",
654
+ "astronomical_twilight_end",
655
+ "nautical_twilight_begin",
656
+ "nautical_twilight_end",
657
+ "civil_twilight_begin",
658
+ "civil_twilight_end",
659
+ "blue_hour_begin",
660
+ "blue_hour_end",
661
+ "golden_hour_begin",
662
+ "golden_hour_end"
663
+ ],
664
+ "properties": {
665
+ "astronomical_twilight_begin": {
666
+ "type": "string",
667
+ "description": "The start time of astronomical twilight in the morning"
668
+ },
669
+ "astronomical_twilight_end": {
670
+ "type": "string",
671
+ "description": "The end time of astronomical twilight in the morning"
672
+ },
673
+ "nautical_twilight_begin": {
674
+ "type": "string",
675
+ "description": "The start time of nautical twilight in the morning"
676
+ },
677
+ "nautical_twilight_end": {
678
+ "type": "string",
679
+ "description": "The end time of nautical twilight in the morning"
680
+ },
681
+ "civil_twilight_begin": {
682
+ "type": "string",
683
+ "description": "The start time of civil twilight in the morning"
684
+ },
685
+ "civil_twilight_end": {
686
+ "type": "string",
687
+ "description": "The end time of civil twilight in the morning"
688
+ },
689
+ "blue_hour_begin": {
690
+ "type": "string",
691
+ "description": "The beginning of the blue hour in the morning"
692
+ },
693
+ "blue_hour_end": {
694
+ "type": "string",
695
+ "description": "The end of the blue hour in the morning"
696
+ },
697
+ "golden_hour_begin": {
698
+ "type": "string",
699
+ "description": "The beginning of the golden hour in the morning"
700
+ },
701
+ "golden_hour_end": {
702
+ "type": "string",
703
+ "description": "The end of the golden hour in the morning"
704
+ }
705
+ }
706
+ },
707
+ "AstronomyEvening": {
708
+ "type": "object",
709
+ "description": "Evening astronomical data including golden hour, blue hour, and twilight times.",
710
+ "required": [
711
+ "golden_hour_begin",
712
+ "golden_hour_end",
713
+ "blue_hour_begin",
714
+ "blue_hour_end",
715
+ "civil_twilight_begin",
716
+ "civil_twilight_end",
717
+ "nautical_twilight_begin",
718
+ "nautical_twilight_end",
719
+ "astronomical_twilight_begin",
720
+ "astronomical_twilight_end"
721
+ ],
722
+ "properties": {
723
+ "golden_hour_begin": {
724
+ "type": "string",
725
+ "description": "The beginning of the golden hour in the evening"
726
+ },
727
+ "golden_hour_end": {
728
+ "type": "string",
729
+ "description": "The end of the golden hour in the evening"
730
+ },
731
+ "blue_hour_begin": {
732
+ "type": "string",
733
+ "description": "The beginning of the blue hour in the evening"
734
+ },
735
+ "blue_hour_end": {
736
+ "type": "string",
737
+ "description": "The end of the blue hour in the evening"
738
+ },
739
+ "civil_twilight_begin": {
740
+ "type": "string",
741
+ "description": "The start of civil twilight in the evening"
742
+ },
743
+ "civil_twilight_end": {
744
+ "type": "string",
745
+ "description": "The end of civil twilight in the evening"
746
+ },
747
+ "nautical_twilight_begin": {
748
+ "type": "string",
749
+ "description": "The start of nautical twilight in the evening"
750
+ },
751
+ "nautical_twilight_end": {
752
+ "type": "string",
753
+ "description": "The end of nautical twilight in the evening"
754
+ },
755
+ "astronomical_twilight_begin": {
756
+ "type": "string",
757
+ "description": "The start of astronomical twilight in the evening"
758
+ },
759
+ "astronomical_twilight_end": {
760
+ "type": "string",
761
+ "description": "The end of astronomical twilight in the evening"
762
+ }
763
+ }
764
+ },
765
+ "ErrorResponse": {
766
+ "type": "object",
767
+ "description": "Standard error envelope returned by the API on failed requests.",
768
+ "required": ["message"],
769
+ "properties": {
770
+ "error": {
771
+ "type": "string",
772
+ "description": "Short error category or exception type."
773
+ },
774
+ "message": {
775
+ "type": "string",
776
+ "description": "Human-readable error message describing the failure."
777
+ },
778
+ "path": {
779
+ "type": "string",
780
+ "description": "API endpoint path that produced the error."
781
+ },
782
+ "status": {
783
+ "type": "integer",
784
+ "description": "HTTP status code returned with the error."
785
+ },
786
+ "timestamp": {
787
+ "type": "string",
788
+ "format": "date-time",
789
+ "description": "Timestamp when the error occurred (ISO 8601)."
790
+ }
791
+ }
792
+ }
793
+ }
794
+ },
795
+ "security": [
796
+ {
797
+ "ApiKeyAuthHeader": []
798
+ },
799
+ {
800
+ "ApiKeyAuthQuery": []
801
+ }
802
+ ]
803
+ }