@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,806 @@
1
+ openapi: 3.1.1
2
+ info:
3
+ title: Marine Weather API - Ocean & Coastal Weather Data
4
+ version: 1.0.0
5
+ description: Retrieve marine and ocean weather data for coastal and offshore locations by GPS coordinates, city name/address, or IP address. Returns wave height, wave direction, wave period, wind-wave and swell statistics, sea surface temperature, sea level height, and ocean current speed/direction. Omit `startDate`/`endDate` to get current conditions, or pass both to get a forecast up to 16 days ahead at `daily`, `hourly`, or `minutely` precision via the `precision` parameter. For locations with no nearby ocean data (inland cities, landlocked coordinates), the endpoint still returns a `200` response with every marine field set to `null` instead of an error.
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: Marine Weather API Server
13
+ paths:
14
+ /marine:
15
+ get:
16
+ tags:
17
+ - Weather APIs
18
+ summary: Dive into detailed marine weather forecasts for coastal and offshore locations
19
+ description: Provides current or forecast marine conditions including wave height, wave direction, wave period, swell info, sea surface temperature, sea level height, and ocean currents. Accepts a location by GPS coordinates, city name/address, or IP address, and returns forecast data at daily, hourly, or minutely precision for up to 16 days ahead.
20
+ operationId: getMarineWeather
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: false
34
+ description: Starting date for marine forecast data in YYYY-MM-DD format. Must be today or a future date, and must be supplied together with endDate — providing only one of the two returns a 400 error. The difference between endDate and startDate must not exceed 16 days.
35
+ schema:
36
+ type: string
37
+ format: date
38
+ - name: endDate
39
+ in: query
40
+ required: false
41
+ description: End date for marine forecast data in YYYY-MM-DD format. Must be today or a future date, and must be supplied together with startDate — providing only one of the two returns a 400 error. The difference between endDate and startDate must not exceed 16 days.
42
+ schema:
43
+ type: string
44
+ format: date
45
+ - name: location
46
+ in: query
47
+ required: false
48
+ description: City name, place name, or full address.
49
+ schema:
50
+ type: string
51
+ - name: lat
52
+ in: query
53
+ required: false
54
+ description: Latitude of the location.
55
+ schema:
56
+ type: number
57
+ - name: long
58
+ in: query
59
+ required: false
60
+ description: Longitude of the location.
61
+ schema:
62
+ type: number
63
+ - name: ip
64
+ in: query
65
+ required: false
66
+ description: IPv4, IPv6, or hostname for location inference. Defaults to the caller's IP address when location, lat/long, and ip are all omitted.
67
+ schema:
68
+ type: string
69
+ - name: precision
70
+ in: query
71
+ required: false
72
+ description: Precision of the marine forecast data. Only one of daily, hourly, or minutely is returned per request, matching this value. Default is daily.
73
+ schema:
74
+ type: string
75
+ enum:
76
+ - daily
77
+ - hourly
78
+ - minutely
79
+ default: daily
80
+ - name: timezone
81
+ in: query
82
+ required: false
83
+ description: IANA timezone identifier used to localize the results (e.g. America/New_York). Returns a 400 error if not a recognized timezone.
84
+ schema:
85
+ type: string
86
+ responses:
87
+ '200':
88
+ description: Successful response — current marine conditions or a date-keyed forecast
89
+ content:
90
+ application/json:
91
+ schema:
92
+ $ref: '#/components/schemas/MarineResponse'
93
+ examples:
94
+ currentConditions:
95
+ summary: Current conditions (no date range)
96
+ value:
97
+ location:
98
+ latitude: '51.50000'
99
+ longitude: '2.00000'
100
+ country_name: United Kingdom
101
+ state_prov: ''
102
+ city: ''
103
+ locality: ''
104
+ elevation: ''
105
+ timezone: Etc/GMT
106
+ timezone_abbreviation: GMT
107
+ current:
108
+ timestamp: 2026-07-24T11:30
109
+ wave_height: 0.52
110
+ wave_direction: 12
111
+ wave_period: 5.75
112
+ wind_wave_peak_period: 0.95
113
+ wind_wave_height: 0
114
+ wind_wave_direction: 220
115
+ wind_wave_period: 0
116
+ swell_wave_height: 0.52
117
+ swell_wave_direction: 13
118
+ swell_wave_period: 5.05
119
+ swell_wave_peak_period: 6.3
120
+ sea_level_height_msl: -1.04
121
+ sea_surface_temperature: 20.5
122
+ ocean_current_velocity: 0.4
123
+ ocean_current_direction: 117
124
+ inlandLocationNullData:
125
+ summary: Inland location — all marine fields null
126
+ value:
127
+ location:
128
+ location_string: Denver, Colorado
129
+ country_name: United States
130
+ state_prov: Colorado
131
+ city: Denver
132
+ locality: ''
133
+ latitude: '39.73924'
134
+ longitude: '-104.98486'
135
+ elevation: '1609'
136
+ timezone: America/Denver
137
+ timezone_abbreviation: GMT-6
138
+ current:
139
+ timestamp: 2026-07-24T05:30
140
+ wave_height: null
141
+ wave_direction: null
142
+ wave_period: null
143
+ wind_wave_peak_period: null
144
+ wind_wave_height: null
145
+ wind_wave_direction: null
146
+ wind_wave_period: null
147
+ swell_wave_height: null
148
+ swell_wave_direction: null
149
+ swell_wave_period: null
150
+ sea_level_height_msl: null
151
+ sea_surface_temperature: null
152
+ ocean_current_velocity: null
153
+ ocean_current_direction: null
154
+ dailyForecast:
155
+ summary: Daily forecast (startDate/endDate set)
156
+ value:
157
+ location:
158
+ latitude: '51.50000'
159
+ longitude: '2.00000'
160
+ country_name: United Kingdom
161
+ state_prov: ''
162
+ city: ''
163
+ locality: ''
164
+ elevation: ''
165
+ timezone: Etc/GMT
166
+ timezone_abbreviation: GMT
167
+ forecast:
168
+ '2026-07-25':
169
+ daily:
170
+ timestamp: '2026-07-25'
171
+ wave_height_max: 0.84
172
+ wave_direction_dominant: 278
173
+ wave_period_max: 4.05
174
+ wind_wave_height_max: 0.78
175
+ wind_wave_direction_dominant: 231
176
+ wind_wave_period_max: 3.3
177
+ wind_wave_peak_period_max: 4.3
178
+ swell_wave_height_max: 0.56
179
+ swell_wave_direction_dominant: 4
180
+ swell_wave_period_max: 4.85
181
+ swell_wave_peak_period_max: 6.3
182
+ '2026-07-26':
183
+ daily:
184
+ timestamp: '2026-07-26'
185
+ wave_height_max: 1.02
186
+ wave_direction_dominant: 238
187
+ wave_period_max: 4.65
188
+ wind_wave_height_max: 0.8
189
+ wind_wave_direction_dominant: 269
190
+ wind_wave_period_max: 3.3
191
+ wind_wave_peak_period_max: 5.2
192
+ swell_wave_height_max: 0.86
193
+ swell_wave_direction_dominant: 218
194
+ swell_wave_period_max: 4.7
195
+ swell_wave_peak_period_max: 6.3
196
+ '400':
197
+ description: Bad Request — invalid or incomplete parameters
198
+ content:
199
+ application/json:
200
+ schema:
201
+ $ref: '#/components/schemas/ErrorResponse'
202
+ examples:
203
+ invalidCoordinates:
204
+ summary: Invalid latitude/longitude
205
+ value:
206
+ timestamp: '2026-07-24T11:35:05.439Z'
207
+ status: 400
208
+ message: Invalid latitude or longitude values. Latitude must be between -90 and 90, and longitude must be between -180 and 180
209
+ error: invalid-params
210
+ path: /v1.0/weather/marine
211
+ invalidIp:
212
+ summary: Invalid IP address
213
+ value:
214
+ timestamp: '2026-07-24T11:35:18.421Z'
215
+ status: 400
216
+ message: Invalid IP address
217
+ error: invalid-params
218
+ path: /v1.0/weather/marine
219
+ invalidPrecision:
220
+ summary: Invalid precision value
221
+ value:
222
+ timestamp: '2026-07-24T11:35:19.621Z'
223
+ status: 400
224
+ message: Invalid precision
225
+ error: invalid-params
226
+ path: /v1.0/weather/marine
227
+ invalidTimezone:
228
+ summary: Invalid timezone
229
+ value:
230
+ timestamp: '2026-07-24T11:35:20.399Z'
231
+ status: 400
232
+ message: Invalid timezone
233
+ error: error
234
+ path: /v1.0/weather/marine
235
+ dateRangeExceeded:
236
+ summary: Forecast range exceeds 16 days
237
+ value:
238
+ timestamp: '2026-07-24T11:35:05.950Z'
239
+ status: 400
240
+ message: Forecast date range must be within 2026-07-24 to 2026-08-08
241
+ error: params-exception-error
242
+ path: /v1.0/weather/marine
243
+ incompleteDateRange:
244
+ summary: Only one of startDate/endDate supplied
245
+ value:
246
+ error: Invalid Param Exception
247
+ message: please pass correct parameters
248
+ path: /v1.0/weather/marine
249
+ status: 400
250
+ timestamp: '2026-07-24T11:35:30.525Z'
251
+ '404':
252
+ description: Not Found — location could not be resolved
253
+ content:
254
+ application/json:
255
+ schema:
256
+ $ref: '#/components/schemas/ErrorResponse'
257
+ examples:
258
+ locationNotFound:
259
+ summary: Location not found
260
+ value:
261
+ timestamp: '2026-07-24T11:35:17.921Z'
262
+ status: 404
263
+ message: Location not found
264
+ error: error
265
+ path: /v1.0/weather/marine
266
+ components:
267
+ securitySchemes:
268
+ ApiKeyAuthHeader:
269
+ type: apiKey
270
+ in: header
271
+ name: X-apiKey
272
+ description: Pass your API key via the X-apiKey request header.
273
+ ApiKeyAuthQuery:
274
+ type: apiKey
275
+ in: query
276
+ name: apiKey
277
+ description: Pass your API key via the apiKey query parameter.
278
+ schemas:
279
+ MarineResponse:
280
+ type: object
281
+ description: 'Marine weather response. current and forecast are mutually exclusive: current is returned when startDate/endDate are omitted, forecast is returned when both are supplied. location is always present.'
282
+ required:
283
+ - location
284
+ properties:
285
+ location:
286
+ $ref: '#/components/schemas/WeatherLocation'
287
+ current:
288
+ $ref: '#/components/schemas/CurrentMarine'
289
+ description: Current marine conditions. Present only when startDate/endDate are not supplied.
290
+ forecast:
291
+ $ref: '#/components/schemas/MarineForecastData'
292
+ description: Date-keyed forecast data. Present only when startDate and endDate are both supplied.
293
+ LocationByCoordinates:
294
+ type: object
295
+ description: Location data when the target is specified by GPS coordinates (lat/long).
296
+ required:
297
+ - latitude
298
+ - longitude
299
+ - country_name
300
+ - state_prov
301
+ - city
302
+ - timezone
303
+ - timezone_abbreviation
304
+ properties:
305
+ latitude:
306
+ type: string
307
+ description: Geographic latitude coordinate in decimal degrees, ranging from -90 (South Pole) to +90 (North Pole). Returned as a string, not a number.
308
+ longitude:
309
+ type: string
310
+ description: Geographic longitude coordinate in decimal degrees, ranging from -180 (West) to +180 (East). Returned as a string, not a number.
311
+ country_name:
312
+ type: string
313
+ description: Full name of the country corresponding to the provided coordinates.
314
+ state_prov:
315
+ type: string
316
+ description: State, province, or primary administrative division name for the location. Can be an empty string.
317
+ city:
318
+ type: string
319
+ description: City or municipal area name associated with the coordinate location. Can be an empty string.
320
+ locality:
321
+ type: string
322
+ description: Specific locality, neighborhood, district, or village name within the broader area. Can be an empty string.
323
+ elevation:
324
+ type: string
325
+ description: Height above mean sea level in meters for the specified coordinates. Returned as a string, not a number, and can be an empty string when unavailable.
326
+ timezone:
327
+ type: string
328
+ description: IANA timezone database identifier for the location (e.g., America/New_York, Europe/London).
329
+ timezone_abbreviation:
330
+ type: string
331
+ description: Abbreviated timezone representation based on current offset (e.g., EST, GMT, PST).
332
+ LocationByIP:
333
+ type: object
334
+ description: Location data when the target is inferred from an IP address.
335
+ required:
336
+ - continent_code
337
+ - continent_name
338
+ - country_code2
339
+ - country_code3
340
+ - country_name
341
+ - country_name_official
342
+ - state_prov
343
+ - city
344
+ - latitude
345
+ - longitude
346
+ - timezone
347
+ - timezone_abbreviation
348
+ properties:
349
+ continent_code:
350
+ type: string
351
+ description: Two-letter continent code (e.g., NA for North America, EU for Europe, AS for Asia).
352
+ continent_name:
353
+ type: string
354
+ description: Full name of the continent where the IP address is registered.
355
+ country_code2:
356
+ type: string
357
+ description: ISO 3166-1 alpha-2 two-letter country code (e.g., US, GB, FR).
358
+ country_code3:
359
+ type: string
360
+ description: ISO 3166-1 alpha-3 three-letter country code (e.g., USA, GBR, FRA).
361
+ country_name:
362
+ type: string
363
+ description: Common name of the country associated with the IP address.
364
+ country_name_official:
365
+ type: string
366
+ description: Official long-form country name as recognized internationally (e.g., United States of America).
367
+ is_eu:
368
+ type: boolean
369
+ description: Boolean flag indicating whether the country is a member state of the European Union.
370
+ state_prov:
371
+ type: string
372
+ description: State, province, or primary administrative division associated with the IP location.
373
+ state_code:
374
+ type: string
375
+ description: ISO 3166-2 subdivision code for the state or province (e.g., CA for California).
376
+ district:
377
+ type: string
378
+ description: District, county, or secondary administrative division within the region. Can be an empty string.
379
+ city:
380
+ type: string
381
+ description: City or urban area name where the IP address is geographically registered.
382
+ zipcode:
383
+ type: string
384
+ description: Postal code or ZIP code for the approximate location of the IP address. Can be an empty string.
385
+ latitude:
386
+ type: string
387
+ description: Geographic latitude in decimal degrees for the IP geolocation, ranging from -90 to +90. Returned as a string, not a number.
388
+ longitude:
389
+ type: string
390
+ description: Geographic longitude in decimal degrees for the IP geolocation, ranging from -180 to +180. Returned as a string, not a number.
391
+ locality:
392
+ type: string
393
+ description: Specific locality, neighborhood, or small area designation within the city. Can be an empty string.
394
+ elevation:
395
+ type: string
396
+ description: Elevation above mean sea level in meters for the IP geolocation. Returned as a string, not a number, and can be an empty string when unavailable.
397
+ timezone:
398
+ type: string
399
+ description: IANA timezone database identifier for the IP location (e.g., America/Chicago, Asia/Tokyo).
400
+ timezone_abbreviation:
401
+ type: string
402
+ description: Current timezone abbreviation based on local offset (e.g., CST, JST, UTC).
403
+ LocationByAddress:
404
+ type: object
405
+ description: Location data when the target is specified by a city name or address string.
406
+ required:
407
+ - location_string
408
+ - country_name
409
+ - state_prov
410
+ - city
411
+ - latitude
412
+ - longitude
413
+ - timezone
414
+ - timezone_abbreviation
415
+ properties:
416
+ location_string:
417
+ type: string
418
+ description: Original location query string as submitted, including full address or place name.
419
+ country_name:
420
+ type: string
421
+ description: Resolved country name derived from the geocoded location query.
422
+ state_prov:
423
+ type: string
424
+ description: State, province, or primary administrative division identified from the location.
425
+ city:
426
+ type: string
427
+ description: City or municipal area name extracted from the geocoded location.
428
+ locality:
429
+ type: string
430
+ description: Specific locality, neighborhood, suburb, or village within the geocoded area. Can be an empty string.
431
+ latitude:
432
+ type: string
433
+ description: Geocoded latitude coordinate in decimal degrees, ranging from -90 to +90. Returned as a string, not a number.
434
+ longitude:
435
+ type: string
436
+ description: Geocoded longitude coordinate in decimal degrees, ranging from -180 to +180. Returned as a string, not a number.
437
+ elevation:
438
+ type: string
439
+ description: Elevation above mean sea level in meters at the geocoded coordinates. Returned as a string, not a number.
440
+ timezone:
441
+ type: string
442
+ description: IANA timezone database identifier for the geocoded location (e.g., America/Los_Angeles).
443
+ timezone_abbreviation:
444
+ type: string
445
+ description: Current timezone abbreviation for the location based on local offset (e.g., PDT, CET).
446
+ CurrentMarine:
447
+ type: object
448
+ description: Current marine weather conditions including wave, swell, sea level, and current data. For locations with no nearby ocean data (inland/landlocked), every field below timestamp is returned as null instead of an error.
449
+ required:
450
+ - timestamp
451
+ - wave_height
452
+ - wave_direction
453
+ - wave_period
454
+ - wind_wave_height
455
+ - wind_wave_direction
456
+ - wind_wave_period
457
+ - wind_wave_peak_period
458
+ - swell_wave_height
459
+ - swell_wave_direction
460
+ - swell_wave_period
461
+ - swell_wave_peak_period
462
+ - sea_level_height_msl
463
+ - sea_surface_temperature
464
+ - ocean_current_velocity
465
+ - ocean_current_direction
466
+ properties:
467
+ timestamp:
468
+ type: string
469
+ format: date-time
470
+ description: ISO 8601 formatted timestamp of the current observation.
471
+ wave_height:
472
+ type:
473
+ - number
474
+ - 'null'
475
+ description: Significant height of combined sea waves in meters. Null where no ocean data is available for this location.
476
+ wave_direction:
477
+ type:
478
+ - number
479
+ - 'null'
480
+ description: Direction from which the combined waves are coming, in degrees. Null where no ocean data is available for this location.
481
+ wave_period:
482
+ type:
483
+ - number
484
+ - 'null'
485
+ description: Average period of combined sea waves in seconds. Null where no ocean data is available for this location.
486
+ wind_wave_height:
487
+ type:
488
+ - number
489
+ - 'null'
490
+ description: Height of locally generated wind waves in meters. Null where no ocean data is available for this location.
491
+ wind_wave_direction:
492
+ type:
493
+ - number
494
+ - 'null'
495
+ description: Direction from which the wind waves are coming, in degrees. Null where no ocean data is available for this location.
496
+ wind_wave_period:
497
+ type:
498
+ - number
499
+ - 'null'
500
+ description: Average period of locally generated wind waves in seconds. Null where no ocean data is available for this location.
501
+ wind_wave_peak_period:
502
+ type:
503
+ - number
504
+ - 'null'
505
+ description: Peak period of locally generated wind waves in seconds. Frequently null even at locations with other wave data present.
506
+ swell_wave_height:
507
+ type:
508
+ - number
509
+ - 'null'
510
+ description: Height of swell waves in meters. Null where no ocean data is available for this location.
511
+ swell_wave_direction:
512
+ type:
513
+ - number
514
+ - 'null'
515
+ description: Direction from which the swell waves are coming, in degrees. Null where no ocean data is available for this location.
516
+ swell_wave_period:
517
+ type:
518
+ - number
519
+ - 'null'
520
+ description: Average period of swell waves in seconds. Null where no ocean data is available for this location.
521
+ swell_wave_peak_period:
522
+ type:
523
+ - number
524
+ - 'null'
525
+ description: Peak period of swell waves in seconds. Frequently null even at locations with other wave data present.
526
+ sea_level_height_msl:
527
+ type:
528
+ - number
529
+ - 'null'
530
+ description: Sea level height relative to mean sea level in meters. Null where no ocean data is available for this location.
531
+ sea_surface_temperature:
532
+ type:
533
+ - number
534
+ - 'null'
535
+ description: Temperature of the ocean surface in degrees Celsius. Null where no ocean data is available for this location.
536
+ ocean_current_velocity:
537
+ type:
538
+ - number
539
+ - 'null'
540
+ description: Speed of the ocean current in km/h. Null where no ocean data is available for this location.
541
+ ocean_current_direction:
542
+ type:
543
+ - number
544
+ - 'null'
545
+ description: Direction of the ocean current, in degrees. Null where no ocean data is available for this location.
546
+ MarineDaily:
547
+ type: object
548
+ description: Daily marine forecast summary with wave, wind-wave, and swell statistics for one day.
549
+ required:
550
+ - timestamp
551
+ - wave_height_max
552
+ - wave_direction_dominant
553
+ - wave_period_max
554
+ - wind_wave_height_max
555
+ - wind_wave_direction_dominant
556
+ - wind_wave_period_max
557
+ - wind_wave_peak_period_max
558
+ - swell_wave_height_max
559
+ - swell_wave_direction_dominant
560
+ - swell_wave_period_max
561
+ - swell_wave_peak_period_max
562
+ properties:
563
+ timestamp:
564
+ type: string
565
+ format: date
566
+ description: Date of this forecast entry in YYYY-MM-DD format.
567
+ wave_height_max:
568
+ type:
569
+ - number
570
+ - 'null'
571
+ description: Maximum significant wave height for the day, in meters.
572
+ wave_direction_dominant:
573
+ type:
574
+ - integer
575
+ - 'null'
576
+ description: Dominant direction of waves for the day, in degrees.
577
+ wave_period_max:
578
+ type:
579
+ - number
580
+ - 'null'
581
+ description: Maximum wave period for the day, in seconds.
582
+ wind_wave_height_max:
583
+ type:
584
+ - number
585
+ - 'null'
586
+ description: Maximum wind-driven wave height for the day, in meters.
587
+ wind_wave_direction_dominant:
588
+ type:
589
+ - integer
590
+ - 'null'
591
+ description: Dominant wind-wave direction for the day, in degrees.
592
+ wind_wave_period_max:
593
+ type:
594
+ - number
595
+ - 'null'
596
+ description: Maximum wind-wave period for the day, in seconds.
597
+ wind_wave_peak_period_max:
598
+ type:
599
+ - number
600
+ - 'null'
601
+ description: Maximum peak period of wind-driven waves for the day, in seconds. Frequently null.
602
+ swell_wave_height_max:
603
+ type:
604
+ - number
605
+ - 'null'
606
+ description: Maximum swell wave height for the day, in meters.
607
+ swell_wave_direction_dominant:
608
+ type:
609
+ - integer
610
+ - 'null'
611
+ description: Dominant swell wave direction for the day, in degrees.
612
+ swell_wave_period_max:
613
+ type:
614
+ - number
615
+ - 'null'
616
+ description: Maximum swell wave period for the day, in seconds.
617
+ swell_wave_peak_period_max:
618
+ type:
619
+ - number
620
+ - 'null'
621
+ description: Maximum peak period of swell waves for the day, in seconds. Frequently null.
622
+ MarineHourly:
623
+ type: object
624
+ description: Hourly marine weather reading with wave, swell, and sea surface data for a single hour.
625
+ required:
626
+ - timestamp
627
+ - wave_height
628
+ - wave_direction
629
+ - wave_period
630
+ - wind_wave_height
631
+ - wind_wave_peak_period
632
+ - wind_wave_direction
633
+ - wind_wave_period
634
+ - swell_wave_height
635
+ - swell_wave_direction
636
+ - swell_wave_period
637
+ - swell_wave_peak_period
638
+ - sea_surface_temperature
639
+ - sea_level_height_msl
640
+ - ocean_current_velocity
641
+ - ocean_current_direction
642
+ properties:
643
+ timestamp:
644
+ type: string
645
+ format: date-time
646
+ description: ISO 8601 formatted timestamp of this hourly entry.
647
+ wave_height:
648
+ type:
649
+ - number
650
+ - 'null'
651
+ description: Significant wave height at the given hour, in meters.
652
+ wave_direction:
653
+ type:
654
+ - integer
655
+ - 'null'
656
+ description: Wave direction at the given hour, in degrees.
657
+ wave_period:
658
+ type:
659
+ - number
660
+ - 'null'
661
+ description: Wave period at the given hour, in seconds.
662
+ wind_wave_height:
663
+ type:
664
+ - number
665
+ - 'null'
666
+ description: Wind-driven wave height at the given hour, in meters.
667
+ wind_wave_peak_period:
668
+ type:
669
+ - number
670
+ - 'null'
671
+ description: Peak period of wind-driven waves at the given hour, in seconds.
672
+ wind_wave_direction:
673
+ type:
674
+ - integer
675
+ - 'null'
676
+ description: Wind-wave direction at the given hour, in degrees.
677
+ wind_wave_period:
678
+ type:
679
+ - number
680
+ - 'null'
681
+ description: Wind-wave period at the given hour, in seconds.
682
+ swell_wave_height:
683
+ type:
684
+ - number
685
+ - 'null'
686
+ description: Swell wave height at the given hour, in meters.
687
+ swell_wave_direction:
688
+ type:
689
+ - integer
690
+ - 'null'
691
+ description: Swell wave direction at the given hour, in degrees.
692
+ swell_wave_period:
693
+ type:
694
+ - number
695
+ - 'null'
696
+ description: Swell wave period at the given hour, in seconds.
697
+ swell_wave_peak_period:
698
+ type:
699
+ - number
700
+ - 'null'
701
+ description: Peak period of swell waves at the given hour, in seconds.
702
+ sea_surface_temperature:
703
+ type:
704
+ - number
705
+ - 'null'
706
+ description: Sea surface temperature at the given hour, in degrees Celsius.
707
+ sea_level_height_msl:
708
+ type:
709
+ - number
710
+ - 'null'
711
+ description: Sea level height relative to mean sea level at the given hour, in meters.
712
+ ocean_current_velocity:
713
+ type:
714
+ - number
715
+ - 'null'
716
+ description: Speed of ocean current at the given hour, in km/h.
717
+ ocean_current_direction:
718
+ type:
719
+ - integer
720
+ - 'null'
721
+ description: Direction of ocean current at the given hour, in degrees.
722
+ MarineMinutely:
723
+ type: object
724
+ description: Minute-by-minute marine data point for ocean current and sea level measurements.
725
+ required:
726
+ - timestamp
727
+ - ocean_current_velocity
728
+ - ocean_current_direction
729
+ - sea_level_height_msl
730
+ properties:
731
+ timestamp:
732
+ type: string
733
+ format: date-time
734
+ description: ISO 8601 formatted timestamp of this minute-level entry.
735
+ ocean_current_velocity:
736
+ type:
737
+ - number
738
+ - 'null'
739
+ description: Speed of ocean current at this minute, in km/h.
740
+ ocean_current_direction:
741
+ type:
742
+ - integer
743
+ - 'null'
744
+ description: Direction of ocean current at this minute, in degrees.
745
+ sea_level_height_msl:
746
+ type:
747
+ - number
748
+ - 'null'
749
+ description: Sea level height relative to mean sea level at this minute, in meters.
750
+ ErrorResponse:
751
+ type: object
752
+ description: Standard error envelope returned by the API on failed requests.
753
+ required:
754
+ - message
755
+ properties:
756
+ error:
757
+ type: string
758
+ description: Short error category or exception type.
759
+ message:
760
+ type: string
761
+ description: Human-readable error message describing the failure.
762
+ path:
763
+ type: string
764
+ description: API endpoint path that produced the error.
765
+ status:
766
+ type: integer
767
+ description: HTTP status code returned with the error.
768
+ timestamp:
769
+ type: string
770
+ format: date-time
771
+ description: Timestamp when the error occurred (ISO 8601).
772
+ WeatherLocation:
773
+ type: object
774
+ description: Location information. Shape depends on how the location was resolved (coordinates, IP, or address/city name).
775
+ oneOf:
776
+ - description: Location data when the target is specified by GPS coordinates (lat/long).
777
+ $ref: '#/components/schemas/LocationByCoordinates'
778
+ - description: Location data when the target is inferred from an IP address.
779
+ $ref: '#/components/schemas/LocationByIP'
780
+ - description: Location data when the target is specified by a city name or address string.
781
+ $ref: '#/components/schemas/LocationByAddress'
782
+ MarineForecastData:
783
+ type: object
784
+ description: Forecast data keyed by date (YYYY-MM-DD). Each key is a forecast date and its value is a MarineForecastDay.
785
+ additionalProperties:
786
+ $ref: '#/components/schemas/MarineForecastDay'
787
+ MarineForecastDay:
788
+ type: object
789
+ description: Marine forecast for a single day. Exactly one of daily, hourly, or minutely is present, matching whichever precision value was requested (default daily) — the other two are omitted, not just empty.
790
+ properties:
791
+ daily:
792
+ $ref: '#/components/schemas/MarineDaily'
793
+ description: Daily marine forecast summary. Present when precision=daily (the default).
794
+ hourly:
795
+ type: array
796
+ description: Array of hourly marine readings for the day. Present when precision=hourly.
797
+ items:
798
+ $ref: '#/components/schemas/MarineHourly'
799
+ minutely:
800
+ type: array
801
+ description: Array of minute-by-minute marine data points for the day. Present when precision=minutely.
802
+ items:
803
+ $ref: '#/components/schemas/MarineMinutely'
804
+ security:
805
+ - ApiKeyAuthHeader: []
806
+ - ApiKeyAuthQuery: []