arazzo: 1.0.1
info:
title: WeatherAPI Marine Forecast
summary: Resolve a coastal location, then fetch its marine and tide forecast.
description: >-
A sailing and coastal planning flow. A free-text query is resolved through
the search/autocomplete endpoint to pin a coastal point, and the marine
endpoint returns the sailing forecast including wave height, swell, water
temperature, and tide data for the requested number of days. Every step
spells out its request inline so the flow can be read and executed without
opening the underlying OpenAPI description.
version: 1.0.0
sourceDescriptions:
- name: geoApi
url: ../openapi/weatherapi-geo-api-openapi.yml
type: openapi
- name: marineApi
url: ../openapi/weatherapi-marine-api-openapi.yml
type: openapi
workflows:
- workflowId: marine-forecast
summary: Search a coastal location and return its marine and tide forecast.
description: >-
Resolves the query into a location and retrieves a marine forecast with tide
data for the requested number of days.
inputs:
type: object
required:
- query
- days
properties:
query:
type: string
description: Partial coastal place name or coordinates to search for.
days:
type: integer
description: Number of marine forecast days to return (1-7, plan dependent).
steps:
- stepId: searchLocation
description: Resolve the free-text query into the best matching coastal location.
operationId: searchLocations
parameters:
- name: q
in: query
value: $inputs.query
successCriteria:
- condition: $statusCode == 200
outputs:
matchedId: $response.body#/0/id
matchedName: $response.body#/0/name
- stepId: getMarine
description: >-
Fetch the marine forecast with tide data enabled for the resolved
location across the requested number of days.
operationId: getMarine
parameters:
- name: q
in: query
value: id:$steps.searchLocation.outputs.matchedId
- name: days
in: query
value: $inputs.days
- name: tides
in: query
value: 'yes'
successCriteria:
- condition: $statusCode == 200
outputs:
locationName: $response.body#/location/name
forecastDays: $response.body#/forecast/forecastday
outputs:
matchedName: $steps.searchLocation.outputs.matchedName
forecastDays: $steps.getMarine.outputs.forecastDays
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.