{
  "data": {
    "a": {
      "slug": "pirate-weather",
      "name": "Pirate Weather",
      "vendor": "Pirate Weather",
      "vendorUrl": "https://pirateweather.net",
      "kind": "http-api",
      "category": "weather",
      "summary": "Open-source weather API with Dark Sky-compatible responses, forecasts, alerts and historical data from public weather models.",
      "url": "https://www.anchorterminal.com/tools/pirate-weather",
      "markdownUrl": "https://www.anchorterminal.com/tools/pirate-weather.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pirate-weather.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pirate-weather.json",
      "repo": "https://github.com/Pirate-Weather/pirateweather",
      "license": "Apache-2.0 (docs and spec), AGPL-3.0 (API code)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.pirateweather.net/forecast",
      "packages": [],
      "auth": "api-key",
      "authNotes": "The key is a path segment, /forecast/{key}/{lat},{lon}, or an apikey request header with any placeholder in the path. The MCP server takes the same key as the apikey query parameter on its URL. Keys are issued through an Apiable portal at pirate-weather.apiable.io and can take up to 20 minutes to go live.",
      "pricing": "freemium",
      "pricingNotes": "Free at 10,000 calls a month. A $2 a month plan raises that to 20,000, and GitHub Sponsors takes one-off donations. Higher plans are sold through pirate-weather.apiable.io, which renders only with JavaScript, so we couldn't read them (https://pirateweather.net/en/latest/).",
      "priceSummary": "$2 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 907,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://pirateweather.net/en/latest/API/",
      "openapi": "https://github.com/Pirate-Weather/pirateweather/blob/main/PW_OpenAPI.yaml",
      "capabilities": [
        "weather.current",
        "weather.forecast",
        "weather.historical",
        "weather.alerts",
        "data.weather"
      ],
      "tags": [
        "hosted",
        "open-source",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "openapi",
        "status-page"
      ],
      "lastRelease": "2026-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.9,
        "grade": "B",
        "agentReady": false,
        "rank": 307,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 80,
          "payments": 30,
          "reliability": 75,
          "schema": 85,
          "security": 45,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Named model sources and a documented priority order for every field. No SLA, and the terms call it best effort.",
        "bestFor": "Agents and apps that want Dark Sky-shaped forecasts, model transparency and deep history on a small budget.",
        "strengths": [
          "Named model sources and a documented priority order for every field",
          "OpenAPI 3.1 spec at version 2.10.2 and a dated changelog with a pull request per change",
          "Four releases between 9 July and 23 September 2026",
          "ERA5 history to January 1940 and URMA for the last 10 days in North America",
          "Response-sizing parameters that cut a forecast to the blocks and rows asked for"
        ],
        "weaknesses": [
          "No SLA, and the terms call it best effort",
          "Key in the URL path by default, and only in the query string for the MCP server",
          "Plans above $2 a month sit behind a JavaScript-only portal, and signup needs a person",
          "No security.txt, SECURITY.md or MCP registry entry",
          "The privacy notice and terms are generator templates from 2024 and say nothing on data reuse"
        ],
        "agentNotes": [
          "Send the key in an apikey header and put a placeholder in the path so it stays out of logs",
          "Pass blocks= and hourly_indices= or daily_indices= to get only the rows you need. The default payload is large",
          "Ask for version=2 to get fields Dark Sky never had, such as smoke, fire index and the source list",
          "Point historical requests at timemachine.pirateweather.net with a UNIX timestamp after the coordinate",
          "Watch Ratelimit-Remaining. The cap is monthly, so a runaway loop can spend it in a day"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.9
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 80,
          "payments": 30,
          "reliability": 75,
          "schema": 85,
          "security": 45,
          "transparency": 55
        },
        "provenanceScore": 80,
        "dataQualityScore": 72
      },
      "connect": {
        "http": "curl -H \"apikey: $PIRATE_WEATHER_API_KEY\" \"https://api.pirateweather.net/forecast/key/51.51,-0.13?units=si\u0026exclude=minutely\u0026version=2\"",
        "claudeCode": "claude mcp add --transport http pirate-weather \"https://mcp.pirateweather.net/mcp?apikey=$PIRATE_WEATHER_API_KEY\"",
        "config": {
          "mcpServers": {
            "pirate-weather": {
              "type": "http",
              "url": "https://mcp.pirateweather.net/mcp?apikey=${PIRATE_WEATHER_API_KEY}"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/weather.current",
        "tool": "https://letme.dev/pirate-weather"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Supporter plan",
          "unit": "month",
          "usd": 2,
          "note": "20,000 calls a month"
        },
        {
          "item": "Call on the Supporter plan, at the cap",
          "unit": "1k-requests",
          "usd": 0.1,
          "note": "$2 over 20,000 calls"
        }
      ],
      "provenance": {
        "legalEntity": "PirateWeatherAPI (Ontario, Canada)",
        "domain": "pirateweather.net",
        "domainRegistered": "2021-03-01",
        "endpointOnVendorDomain": true,
        "terms": "https://pirateweather.net/en/latest/Apiable/ApiableTerms/",
        "privacy": "https://pirateweather.net/en/latest/Apiable/ApiablePrivacy/",
        "statusPage": "https://pirateweather.xitoring.io/",
        "changelog": "https://pirateweather.net/en/latest/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms (last updated 2024-09-23) are generator-made, name the company only as PirateWeatherAPI in Ontario, Canada, and cap liability at $100 or what you paid.",
          "The terms of service add one rule of their own, don't circumvent the call limit with multiple accounts, and say the data shouldn't be used for life or property critical applications.",
          "Keys, plans and billing run through a third-party Apiable portal at pirate-weather.apiable.io.",
          "pirateweather.net/.well-known/security.txt returns 404."
        ],
        "score": 80
      },
      "dataQuality": {
        "coverage": "Global, strongest in North America where NBM and HRRR apply at about 3 km, with Canadian models in Canada and DWD MOSMIX stations elsewhere",
        "coverageRating": 4,
        "freshness": "RTMA-RU every 15 minutes, HRRR and NBM hourly, global models every 6 hours",
        "freshnessClass": "hourly",
        "history": "ERA5 reanalysis from January 1940, the project's archive of 1-hour forecasts from June 2024, and URMA analyses for the last 10 days in North America since 2.10.1",
        "historyYears": 86,
        "methodology": "https://pirateweather.net/en/latest/DataSources/",
        "sourcesDisclosed": true,
        "licence": "Apache-2.0 docs, AGPL-3.0 API code, terms silent on data reuse",
        "licenceClass": "unclear",
        "standing": "",
        "standingClass": "none",
        "reuse": "The terms say nothing about caching or redistributing responses and add only two rules, no circumventing the call limit with extra accounts and no life or property critical use. The models behind the data are public data from NOAA, ECMWF open data, ECCC and DWD.",
        "score": 72,
        "checks": null
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pirate-weather.json",
      "live": {
        "slug": "pirate-weather",
        "probe": {
          "target": "https://api.pirateweather.net/forecast",
          "method": "get",
          "lastAt": "2026-10-10T02:55:05.969465769Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 98,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 106,
          "p95ms24h": 165,
          "samples24h": 249,
          "samples30d": 2264,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://pirateweather.xitoring.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:09.048226683Z"
        },
        "githubStars": 909,
        "securityTxt": {
          "url": "https://pirateweather.net/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:23.938264854Z"
        },
        "domain": {
          "domain": "pirateweather.net",
          "registered": "2021-03-01",
          "source": "https://rdap.verisign.com/net/v1/domain/pirateweather.net",
          "checkedAt": "2026-10-04T13:04:40.132666729Z"
        },
        "pages": [
          {
            "url": "https://pirateweather.net/en/latest/changelog/",
            "kind": "changelog",
            "status": 404,
            "checkedAt": "2026-10-09T18:43:22.822382655Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://pirateweather.net/en/latest/Apiable/ApiablePrivacy/",
            "kind": "privacy",
            "status": 404,
            "checkedAt": "2026-10-09T18:43:18.720475977Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://pirateweather.net/en/latest/Apiable/ApiableTerms/",
            "kind": "terms",
            "status": 404,
            "checkedAt": "2026-10-09T18:43:20.852375329Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-10T02:55:05.969465769Z"
      }
    },
    "answer": "Pirate Weather scores 65.9 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in every scored category.",
    "b": {
      "slug": "stormglass",
      "name": "Stormglass API",
      "vendor": "Storm Glass AB",
      "vendorUrl": "https://stormglass.io",
      "kind": "http-api",
      "category": "weather",
      "summary": "Weather and marine data API from Storm Glass AB of Sweden. It returns hourly forecasts, ERA5 history from 2014, tides, solar, soil and ocean parameters by coordinates, per source or blended, over HTTPS with an API key.",
      "url": "https://www.anchorterminal.com/tools/stormglass",
      "markdownUrl": "https://www.anchorterminal.com/tools/stormglass.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/stormglass.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/stormglass.json",
      "license": "Proprietary service under Storm Glass AB's Terms and Conditions. The Free and Small plans are not for commercial use",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.stormglass.io/v2",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve key from a browser signup at dashboard.stormglass.io. The key goes in the `Authorization` header with no prefix. No scopes, and no key rotation or second key is described in the docs.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at 10 requests a day for non-commercial evaluation. Paid plans are monthly subscriptions in euros with daily quotas and no overage price, Small 19, Medium 49 and Large 129 euros a month, and commercial use needs Medium or higher. Prices are in euros only, so unitPrices is empty (https://stormglass.io/pricing/, checked 2026-10-09).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the pricing page or the FAQ. The API uses HTTP 402 to mean a spent daily quota, with no payment protocol behind it (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.stormglass.io/",
      "capabilities": [
        "weather.forecast",
        "weather.marine",
        "weather.historical",
        "data.weather"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "closed-source",
        "eu"
      ],
      "lastRelease": "2026-02-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 39.9,
        "grade": "E",
        "agentReady": false,
        "rank": 914,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 15,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 15,
          "payments": 25,
          "reliability": 34,
          "schema": 40,
          "security": 44,
          "transparency": 45
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A read-only weather and marine API with about 70 hourly parameters, per-source values from named national models, tide data and ERA5 history from 2014. No OpenAPI file, status page, SDK or security page was found, the free plan allows 10 requests a day, and the docs and FAQ disagree on the status code for a spent quota.",
        "bestFor": "Marine and coastal applications that want waves, swell, currents and tides beside ordinary weather, and callers who want to compare named models in one response.",
        "strengths": [
          "One request returns the same parameter from each named source (ECMWF, NOAA, DWD, Met Office, MET Norway and others), or one blended value with `source=sg`",
          "Marine coverage in the same API, with waves, swell, currents, sea ice, water temperature, tide extremes, sea level against seven datums and bathymetry",
          "`params` and `source` limit each response to the fields asked for, and every response carries `dailyQuota` and `requestCount` in `meta`",
          "The key travels in the `Authorization` header, and every documented endpoint is a GET",
          "Plan prices and daily quotas are public without a login, from 0 to 129 euros a month"
        ],
        "weaknesses": [
          "No OpenAPI file, llms.txt, official SDK or changelog was found. The docs are eleven Markdown pages",
          "No status page, SLA, security.txt, disclosure policy, certification or DPA was found, and the terms disclaim uninterrupted service",
          "Free plan is 10 requests a day, non-commercial, and the terms call it an evaluation plan not meant for indefinite use",
          "The docs give 402 for a spent daily quota and the FAQ says Too Many Requests. No Retry-After or per-second limit is documented",
          "The privacy text is a few paragraphs inside the terms, with no retention period or hosting location, and the terms allow changes to the service without notice"
        ],
        "agentNotes": [
          "Send the key as `Authorization: KEY` with no Bearer prefix. A missing or wrong key returns 403 with `{\"errors\":{\"key\":\"API key is invalid\"}}`",
          "Always pass `source=sg` or a short source list on `/weather/point`. The default is every source, which multiplies the size of each hourly record",
          "Treat 402 as a spent daily quota, not a billing failure, and stop until the next day. Read `meta.requestCount` against `meta.dailyQuota` on each response",
          "Use `/historical/point` for past dates, at most 10 days a call and nothing newer than about 7 days. `/weather/point` looks back 14 days only",
          "Send and read all times in UTC. Tide sea levels are relative to the chosen datum (MSL by default) and are not water depth"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 39.9
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 15,
          "payments": 25,
          "reliability": 34,
          "schema": 40,
          "security": 44,
          "transparency": 22
        },
        "provenanceScore": 68
      },
      "connect": {
        "http": "curl -H \"Authorization: API_KEY\" \"https://api.stormglass.io/v2/weather/point?lat=58.7984\u0026lng=17.8081\u0026params=waveHeight,airTemperature\u0026source=sg\""
      },
      "letme": {
        "capability": "https://letme.dev/weather.forecast",
        "tool": "https://letme.dev/stormglass"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Storm Glass AB",
        "domain": "stormglass.io",
        "domainRegistered": "2018-01-30",
        "endpointOnVendorDomain": true,
        "terms": "https://stormglass.io/terms-and-conditions/",
        "privacy": "https://stormglass.io/terms-and-conditions/",
        "statusPage": "",
        "changelog": "https://stormglass.io/blog/",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "One page, dated 17 March 2026, holds the Terms and Conditions and the Privacy Policy. It says it applies to all stormglass.io Services provided by Storm Glass AB, under Swedish law with arbitration in Stockholm. No postal address or company number is on it.",
          "The privacy text is a section of that page and names HubSpot. No DPA or separate privacy policy was found.",
          "stormglass.io/.well-known/security.txt returns 404.",
          "No status page is linked from the site, the docs or the terms.",
          "No changelog was found. The blog announces new data sources, the latest on 26 February 2026 (ERA5) and 13 February 2026 (NOAA AIGFS).",
          "RDAP for stormglass.io gives a registration date of 2018-01-30."
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/stormglass.json",
      "live": {
        "slug": "stormglass",
        "probe": {
          "target": "https://api.stormglass.io/v2",
          "method": "get",
          "lastAt": "2026-10-10T02:55:11.785033392Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 103,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 93,
          "p95ms24h": 189,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "pages": [
          {
            "url": "https://stormglass.io/blog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:02.001753939Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5a37464aafd0"
          },
          {
            "url": "https://stormglass.io/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:04.76357096Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f271b3b3e8f6"
          },
          {
            "url": "https://stormglass.io/terms-and-conditions/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:06.564080089Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b9087482d5aa"
          }
        ],
        "updatedAt": "2026-10-10T02:55:11.785033392Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Pirate Weather",
        "b": "Storm Glass AB",
        "name": "Vendor"
      },
      {
        "a": "https://api.pirateweather.net/forecast",
        "b": "https://api.stormglass.io/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (docs and spec), AGPL-3.0 (API code)",
        "b": "Proprietary service under Storm Glass AB's Terms and Conditions. The Free and Small plans are not for commercial use",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-23",
        "b": "2026-02-26",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "907 stars",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "4/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Pirate Weather scores 65.9 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Pirate Weather or Stormglass API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Pirate Weather and Stormglass API need an API key?"
      },
      {
        "answer": "Yes. Pirate Weather has a hosted endpoint at https://api.pirateweather.net/forecast and Stormglass API at https://api.stormglass.io/v2.",
        "question": "Can an agent call Pirate Weather and Stormglass API without installing anything?"
      },
      {
        "answer": "Pirate Weather is open source (Apache-2.0 (docs and spec), AGPL-3.0 (API code)). No open-source release is listed for Stormglass API.",
        "question": "Are Pirate Weather and Stormglass API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 75 against 34",
          "Schema \u0026 documentation, 85 against 40",
          "Agent ergonomics, 77 against 65",
          "Payments \u0026 pricing, 30 against 25",
          "Maintenance \u0026 community, 80 against 15",
          "Transparency \u0026 trust, 68 against 45"
        ],
        "also": [
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Agents and apps that want Dark Sky-shaped forecasts, model transparency and deep history on a small budget.",
        "slug": "pirate-weather",
        "watchFor": "No SLA, and the terms call it best effort"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Marine and coastal applications that want waves, swell, currents and tides beside ordinary weather, and callers who want to compare named models in one response.",
        "slug": "stormglass",
        "watchFor": "No OpenAPI file, llms.txt, official SDK or changelog was found. The docs are eleven Markdown pages"
      }
    ],
    "job": {
      "capability": "weather.forecast",
      "name": "Weather forecasts"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/accuweather-api-vs-pirate-weather.json",
        "title": "AccuWeather Core Weather API + MCP vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/accuweather-api-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-weather-api-vs-pirate-weather.json",
        "title": "Google Weather API (Maps Platform) vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/google-weather-api-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/met-office-datahub-vs-pirate-weather.json",
        "title": "Met Office Weather DataHub (Site Specific) vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/met-office-datahub-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meteoblue-vs-pirate-weather.json",
        "title": "meteoblue Weather API vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/meteoblue-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meteomatics-vs-pirate-weather.json",
        "title": "Meteomatics Weather API vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/meteomatics-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nws-api-vs-pirate-weather.json",
        "title": "NOAA National Weather Service API (api.weather.gov) vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/nws-api-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openweather-one-call-vs-pirate-weather.json",
        "title": "OpenWeather One Call API vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/openweather-one-call-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-tomorrow-io.json",
        "title": "Pirate Weather vs Tomorrow.io Weather API",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-tomorrow-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing.json",
        "title": "Pirate Weather vs Visual Crossing Weather API",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-weather-company.json",
        "title": "Pirate Weather vs The Weather Company Data APIs",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-weather-company"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-weatherapi-com.json",
        "title": "Pirate Weather vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-weatherbit.json",
        "title": "Pirate Weather vs Weatherbit API",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-weatherbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-xweather.json",
        "title": "Pirate Weather vs Xweather Weather API",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-xweather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/open-meteo-vs-pirate-weather.json",
        "title": "Open-Meteo vs Pirate Weather",
        "url": "https://www.anchorterminal.com/compare/open-meteo-vs-pirate-weather"
      },
      {
        "json": "https://www.anchorterminal.com/compare/open-meteo-vs-stormglass.json",
        "title": "Open-Meteo vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/open-meteo-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/accuweather-api-vs-stormglass.json",
        "title": "AccuWeather Core Weather API + MCP vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/accuweather-api-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-weather-api-vs-stormglass.json",
        "title": "Google Weather API (Maps Platform) vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/google-weather-api-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/met-office-datahub-vs-stormglass.json",
        "title": "Met Office Weather DataHub (Site Specific) vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/met-office-datahub-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meteoblue-vs-stormglass.json",
        "title": "meteoblue Weather API vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/meteoblue-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meteomatics-vs-stormglass.json",
        "title": "Meteomatics Weather API vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/meteomatics-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nws-api-vs-stormglass.json",
        "title": "NOAA National Weather Service API (api.weather.gov) vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/nws-api-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openweather-one-call-vs-stormglass.json",
        "title": "OpenWeather One Call API vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/openweather-one-call-vs-stormglass"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stormglass-vs-tomorrow-io.json",
        "title": "Stormglass API vs Tomorrow.io Weather API",
        "url": "https://www.anchorterminal.com/compare/stormglass-vs-tomorrow-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stormglass-vs-visual-crossing.json",
        "title": "Stormglass API vs Visual Crossing Weather API",
        "url": "https://www.anchorterminal.com/compare/stormglass-vs-visual-crossing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stormglass-vs-weather-company.json",
        "title": "Stormglass API vs The Weather Company Data APIs",
        "url": "https://www.anchorterminal.com/compare/stormglass-vs-weather-company"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.json",
        "title": "Stormglass API vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stormglass-vs-weatherbit.json",
        "title": "Stormglass API vs Weatherbit API",
        "url": "https://www.anchorterminal.com/compare/stormglass-vs-weatherbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stormglass-vs-xweather.json",
        "title": "Stormglass API vs Xweather Weather API",
        "url": "https://www.anchorterminal.com/compare/stormglass-vs-xweather"
      }
    ],
    "scores": [
      {
        "by": 41,
        "edge": "pirate-weather",
        "key": "reliability",
        "name": "Reliability",
        "pirate-weather": 75,
        "stormglass": 34,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 45,
        "edge": "pirate-weather",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pirate-weather": 85,
        "stormglass": 40,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "pirate-weather",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pirate-weather": 77,
        "stormglass": 65,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "pirate-weather",
        "key": "security",
        "name": "Security \u0026 auth",
        "pirate-weather": 45,
        "stormglass": 44,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "pirate-weather",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pirate-weather": 30,
        "stormglass": 25,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 65,
        "edge": "pirate-weather",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pirate-weather": 80,
        "stormglass": 15,
        "weight": 7
      },
      {
        "by": 23,
        "edge": "pirate-weather",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pirate-weather": 68,
        "stormglass": 45,
        "weight": 7
      }
    ],
    "summary": "Pirate Weather scores 65.9 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in every scored category. Both do weather forecasts.",
    "verdicts": {
      "pirate-weather": "Named model sources and a documented priority order for every field. No SLA, and the terms call it best effort.",
      "stormglass": "A read-only weather and marine API with about 70 hourly parameters, per-source values from named national models, tide data and ERA5 history from 2014. No OpenAPI file, status page, SDK or security page was found, the free plan allows 10 requests a day, and the docs and FAQ disagree on the status code for a spent quota."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass",
    "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass.md",
    "slim": "https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass.min.md"
  },
  "markdown": "Pirate Weather scores 65.9 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in every scored category. Both do weather forecasts.\n\n- Pirate Weather: grade B, 65.9/100, rank #307 of 950. Markdown https://www.anchorterminal.com/tools/pirate-weather.md · JSON https://www.anchorterminal.com/api/v1/tools/pirate-weather.json\n- Stormglass API: grade E, 39.9/100, rank #914 of 950. Markdown https://www.anchorterminal.com/tools/stormglass.md · JSON https://www.anchorterminal.com/api/v1/tools/stormglass.json\n- Best weather and climate data APIs for AI agents: https://www.anchorterminal.com/best/weather/index.md\n- All 120 weather comparisons: https://www.anchorterminal.com/compare/weather/index.md\n\n## Which one, for what\n\n### Pirate Weather (B)\n\nGood for: Agents and apps that want Dark Sky-shaped forecasts, model transparency and deep history on a small budget.\n\nAhead on:\n- Reliability, 75 against 34\n- Schema \u0026 documentation, 85 against 40\n- Agent ergonomics, 77 against 65\n- Payments \u0026 pricing, 30 against 25\n- Maintenance \u0026 community, 80 against 15\n- Transparency \u0026 trust, 68 against 45\n\nAlso in its favour:\n- Free to start without a card\n- Open source\n\nWatch for: No SLA, and the terms call it best effort\n\n### Stormglass API (E)\n\nGood for: Marine and coastal applications that want waves, swell, currents and tides beside ordinary weather, and callers who want to compare named models in one response.\n\nWatch for: No OpenAPI file, llms.txt, official SDK or changelog was found. The docs are eleven Markdown pages\n\n\n## Score by category\n\n| Category | Weight | Pirate Weather | Stormglass API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 34 | Pirate Weather +41 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 40 | Pirate Weather +45 |\n| Agent ergonomics | 13% (16.2 this run) | 77 | 65 | Pirate Weather +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 44 | Pirate Weather +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 25 | Pirate Weather +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 15 | Pirate Weather +65 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 45 | Pirate Weather +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.9 · B** | **39.9 · E** | |\n\n## Facts side by side\n\n| Fact | Pirate Weather | Stormglass API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Pirate Weather | Storm Glass AB |\n| Hosted endpoint | `https://api.pirateweather.net/forecast` | `https://api.stormglass.io/v2` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (docs and spec), AGPL-3.0 (API code) | Proprietary service under Storm Glass AB's Terms and Conditions. The Free and Small plans are not for commercial use |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-23 | 2026-02-26 |\n| Terms last updated | couldn't be read | no date given |\n| Privacy policy last updated | couldn't be read | no date given |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\n| Terms restrict benchmarking | couldn't be read | not found in the text |\n| Terms or service can change without notice | couldn't be read | yes |\n| Arbitration or class-action waiver | couldn't be read | yes |\n| Popularity | 907 stars | none |\n| Agent reviews | 4/5 (2) | none |\n\n## Verdicts\n\n**Pirate Weather.** Named model sources and a documented priority order for every field. No SLA, and the terms call it best effort.\n\n**Stormglass API.** A read-only weather and marine API with about 70 hourly parameters, per-source values from named national models, tide data and ERA5 history from 2014. No OpenAPI file, status page, SDK or security page was found, the free plan allows 10 requests a day, and the docs and FAQ disagree on the status code for a spent quota.\n\n## Before you call either\n\n### Pirate Weather\n\n1. Send the key in an apikey header and put a placeholder in the path so it stays out of logs\n2. Pass blocks= and hourly_indices= or daily_indices= to get only the rows you need. The default payload is large\n3. Ask for version=2 to get fields Dark Sky never had, such as smoke, fire index and the source list\n4. Point historical requests at timemachine.pirateweather.net with a UNIX timestamp after the coordinate\n5. Watch Ratelimit-Remaining. The cap is monthly, so a runaway loop can spend it in a day\n\n### Stormglass API\n\n1. Send the key as `Authorization: KEY` with no Bearer prefix. A missing or wrong key returns 403 with `{\"errors\":{\"key\":\"API key is invalid\"}}`\n2. Always pass `source=sg` or a short source list on `/weather/point`. The default is every source, which multiplies the size of each hourly record\n3. Treat 402 as a spent daily quota, not a billing failure, and stop until the next day. Read `meta.requestCount` against `meta.dailyQuota` on each response\n4. Use `/historical/point` for past dates, at most 10 days a call and nothing newer than about 7 days. `/weather/point` looks back 14 days only\n5. Send and read all times in UTC. Tide sea levels are relative to the chosen datum (MSL by default) and are not water depth\n\n## Questions\n\n### Which is better for AI agents, Pirate Weather or Stormglass API?\n\nPirate Weather scores 65.9 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in every scored category.\n\n### Do Pirate Weather and Stormglass API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Pirate Weather and Stormglass API without installing anything?\n\nYes. Pirate Weather has a hosted endpoint at https://api.pirateweather.net/forecast and Stormglass API at https://api.stormglass.io/v2.\n\n### Are Pirate Weather and Stormglass API open source?\n\nPirate Weather is open source (Apache-2.0 (docs and spec), AGPL-3.0 (API code)). No open-source release is listed for Stormglass API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pirate-weather\", \"b\": \"stormglass\"}`. From a terminal: `anchor compare pirate-weather stormglass`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pirate-weather.json and https://www.anchorterminal.com/api/v1/tools/stormglass.json\n\n## Other comparisons with Pirate Weather or Stormglass API\n\n- [AccuWeather Core Weather API + MCP vs Pirate Weather](https://www.anchorterminal.com/compare/accuweather-api-vs-pirate-weather.md)\n- [Google Weather API (Maps Platform) vs Pirate Weather](https://www.anchorterminal.com/compare/google-weather-api-vs-pirate-weather.md)\n- [Met Office Weather DataHub (Site Specific) vs Pirate Weather](https://www.anchorterminal.com/compare/met-office-datahub-vs-pirate-weather.md)\n- [meteoblue Weather API vs Pirate Weather](https://www.anchorterminal.com/compare/meteoblue-vs-pirate-weather.md)\n- [Meteomatics Weather API vs Pirate Weather](https://www.anchorterminal.com/compare/meteomatics-vs-pirate-weather.md)\n- [NOAA National Weather Service API (api.weather.gov) vs Pirate Weather](https://www.anchorterminal.com/compare/nws-api-vs-pirate-weather.md)\n- [OpenWeather One Call API vs Pirate Weather](https://www.anchorterminal.com/compare/openweather-one-call-vs-pirate-weather.md)\n- [Pirate Weather vs Tomorrow.io Weather API](https://www.anchorterminal.com/compare/pirate-weather-vs-tomorrow-io.md)\n- [Pirate Weather vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing.md)\n- [Pirate Weather vs The Weather Company Data APIs](https://www.anchorterminal.com/compare/pirate-weather-vs-weather-company.md)\n- [Pirate Weather vs WeatherAPI.com](https://www.anchorterminal.com/compare/pirate-weather-vs-weatherapi-com.md)\n- [Pirate Weather vs Weatherbit API](https://www.anchorterminal.com/compare/pirate-weather-vs-weatherbit.md)\n- [Pirate Weather vs Xweather Weather API](https://www.anchorterminal.com/compare/pirate-weather-vs-xweather.md)\n- [Open-Meteo vs Pirate Weather](https://www.anchorterminal.com/compare/open-meteo-vs-pirate-weather.md)\n- [Open-Meteo vs Stormglass API](https://www.anchorterminal.com/compare/open-meteo-vs-stormglass.md)\n- [AccuWeather Core Weather API + MCP vs Stormglass API](https://www.anchorterminal.com/compare/accuweather-api-vs-stormglass.md)\n- [Google Weather API (Maps Platform) vs Stormglass API](https://www.anchorterminal.com/compare/google-weather-api-vs-stormglass.md)\n- [Met Office Weather DataHub (Site Specific) vs Stormglass API](https://www.anchorterminal.com/compare/met-office-datahub-vs-stormglass.md)\n- [meteoblue Weather API vs Stormglass API](https://www.anchorterminal.com/compare/meteoblue-vs-stormglass.md)\n- [Meteomatics Weather API vs Stormglass API](https://www.anchorterminal.com/compare/meteomatics-vs-stormglass.md)\n- [NOAA National Weather Service API (api.weather.gov) vs Stormglass API](https://www.anchorterminal.com/compare/nws-api-vs-stormglass.md)\n- [OpenWeather One Call API vs Stormglass API](https://www.anchorterminal.com/compare/openweather-one-call-vs-stormglass.md)\n- [Stormglass API vs Tomorrow.io Weather API](https://www.anchorterminal.com/compare/stormglass-vs-tomorrow-io.md)\n- [Stormglass API vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/stormglass-vs-visual-crossing.md)\n- [Stormglass API vs The Weather Company Data APIs](https://www.anchorterminal.com/compare/stormglass-vs-weather-company.md)\n- [Stormglass API vs WeatherAPI.com](https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.md)\n- [Stormglass API vs Weatherbit API](https://www.anchorterminal.com/compare/stormglass-vs-weatherbit.md)\n- [Stormglass API vs Xweather Weather API](https://www.anchorterminal.com/compare/stormglass-vs-xweather.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pirate Weather vs Stormglass API",
        "url": ""
      }
    ],
    "description": "Pirate Weather scores 65.9 (B) to Stormglass's 39.9 (E) for weather forecasts. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pirate Weather B 65.9",
      "Stormglass API E 39.9",
      "scores"
    ],
    "h1": "Pirate Weather vs Stormglass API",
    "image": "https://www.anchorterminal.com/assets/og/compare-pirate-weather-vs-stormglass.png",
    "path": "/compare/pirate-weather-vs-stormglass",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pirate Weather vs Stormglass for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-stormglass"
  },
  "tokens": {
    "markdown": 2700,
    "slim": 730
  },
  "version": 1
}
