{
  "data": {
    "a": {
      "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:07:26.463609643Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 91,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 93,
          "p95ms24h": 189,
          "samples24h": 107,
          "samples30d": 107,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "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:07:26.463609643Z"
      }
    },
    "answer": "WeatherAPI.com scores 65.3 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in 6 of 7 scored categories. Stormglass API leads on security \u0026 auth.",
    "b": {
      "slug": "weatherapi-com",
      "name": "WeatherAPI.com",
      "vendor": "WeatherAPI.com (Zoomash Ltd)",
      "vendorUrl": "https://www.weatherapi.com",
      "kind": "http-api",
      "category": "weather",
      "summary": "Weather API for current conditions, forecasts, history, marine data, alerts and air quality, queried by location.",
      "url": "https://www.anchorterminal.com/tools/weatherapi-com",
      "markdownUrl": "https://www.anchorterminal.com/tools/weatherapi-com.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/weatherapi-com.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/weatherapi-com.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.weatherapi.com/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "The key goes in the key query parameter on every request. The terms tie one key to one application.",
      "pricing": "freemium",
      "pricingNotes": "Free at 100,000 calls a month with a 3-day forecast and 1 day of history, no card. Starter $7 a month ($75 a year) for 3 million calls, 7-day forecast and 7 days of history. Pro+ $25 ($270 a year) for 5 million calls, 14-day forecast, 365 days of history, marine with tides and bulk requests. Business $65 ($702 a year) for 10 million calls, history back to 2010-01-01 and 99.9 per cent uptime. Enterprise on request with unlimited calls. Paid plans start with a 14-day free trial (https://www.weatherapi.com/pricing.aspx).",
      "priceSummary": "$7 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.weatherapi.com/docs/",
      "llmsTxt": "https://www.weatherapi.com/llms.txt",
      "openapi": "https://www.weatherapi.com/openapi.json",
      "capabilities": [
        "weather.current",
        "weather.forecast",
        "weather.historical",
        "weather.alerts",
        "weather.marine",
        "data.weather"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "closed-source",
        "uk"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.3,
        "grade": "B",
        "agentReady": false,
        "rank": 321,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 45,
          "payments": 30,
          "reliability": 90,
          "schema": 89,
          "security": 37,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "3 million calls for $7 a month, and 100,000 a month free with no card. Key only in the query string, and no security.txt.",
        "bestFor": "Cheap, high-volume consumer forecasts where the location arrives as a city, postcode or IP.",
        "strengths": [
          "3 million calls for $7 a month, and 100,000 a month free with no card",
          "OpenAPI 3.1 spec with structured errors, plus llms.txt",
          "Field filters (current_fields, day_fields, hour_fields) to trim responses",
          "Status page with no incidents listed, and 99.9 per cent with service credits for High Volume customers",
          "12 months' written notice before an API deprecation, in the terms"
        ],
        "weaknesses": [
          "Key only in the query string, and no security.txt",
          "Privacy policy undated, with template placeholders and transfers to Russia and China",
          "SDKs for Node.js, Java, PHP and Go untouched since 2020 and 2021",
          "No full list of data sources or models",
          "Caching limited to 60 minutes for current and 24 hours for forecast"
        ],
        "agentNotes": [
          "Pass current_fields, day_fields or hour_fields to cut the response to what you need",
          "Treat a 403 with error code 2007 as the monthly quota, not a bad key. There's no 429",
          "Reuse the id from search.json (q=id:NNN) to avoid ambiguous city names",
          "Cache history freely, current for under an hour and forecasts for under a day, to stay inside the terms",
          "Use https://api.weatherapi.com/v1. The docs still show an http:// base URL"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "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.3
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 45,
          "payments": 30,
          "reliability": 90,
          "schema": 89,
          "security": 37,
          "transparency": 49
        },
        "provenanceScore": 81,
        "dataQualityScore": 49
      },
      "connect": {
        "http": "curl \"https://api.weatherapi.com/v1/forecast.json?key=$WEATHERAPI_KEY\u0026q=51.51,-0.13\u0026days=3\u0026aqi=no\u0026alerts=no\""
      },
      "letme": {
        "capability": "https://letme.dev/weather.current",
        "tool": "https://letme.dev/weatherapi-com"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 7,
          "note": "3 million calls, $75 a year"
        },
        {
          "item": "Pro+ plan",
          "unit": "month",
          "usd": 25,
          "note": "5 million calls, $270 a year"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 65,
          "note": "10 million calls, $702 a year"
        },
        {
          "item": "Call on Starter, at the plan cap",
          "unit": "1k-requests",
          "usd": 0.0023,
          "note": "$7 over 3 million calls"
        },
        {
          "item": "Call on Business, at the plan cap",
          "unit": "1k-requests",
          "usd": 0.0065,
          "note": "$65 over 10 million calls"
        }
      ],
      "provenance": {
        "legalEntity": "Zoomash Ltd",
        "domain": "weatherapi.com",
        "domainRegistered": "2014-11-29",
        "endpointOnVendorDomain": true,
        "terms": "https://www.weatherapi.com/terms.aspx",
        "privacy": "https://www.weatherapi.com/privacy.aspx",
        "statusPage": "https://status.weatherapi.com/",
        "changelog": "https://www.weatherapi.com/api-changelog.html",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms name Zoomash Ltd under the law of England and Wales but give no registered address or company number, and the privacy policy names no entity beyond WeatherAPI.com.",
          "The privacy policy says personal data may be transferred to the USA, Russia, Japan, China and India, and names Stripe for payments.",
          "The status page at status.weatherapi.com runs on Better Stack.",
          "www.weatherapi.com/.well-known/security.txt returns an HTML error page per the 30 September check."
        ],
        "score": 81
      },
      "dataQuality": {
        "coverage": "Global, any coordinate, city, postcode or IP",
        "coverageRating": 4,
        "freshness": "Not stated. The terms allow current conditions to be cached for 60 minutes",
        "freshnessClass": "hourly",
        "history": "From 2010-01-01 on Business, 365 days on Pro+",
        "historyYears": 16,
        "methodology": "",
        "sourcesDisclosed": false,
        "licence": "Proprietary. Cache limits, no resale, attribution on Free",
        "licenceClass": "clear",
        "standing": "",
        "standingClass": "none",
        "reuse": "The terms cap caching at 60 minutes for current and 24 hours for forecast, forbid selling the data on, and end any right to keep it when the subscription ends. Showing it in your own app or service is allowed.",
        "score": 49,
        "checks": null
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/weatherapi-com.json",
      "live": {
        "slug": "weatherapi-com",
        "probe": {
          "target": "https://api.weatherapi.com/v1",
          "method": "get",
          "lastAt": "2026-10-10T02:07:30.968360368Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 59,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 59,
          "p95ms24h": 158,
          "samples24h": 250,
          "samples30d": 2256,
          "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": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.weatherapi.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:25.028136779Z"
        },
        "securityTxt": {
          "url": "https://weatherapi.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:55.327286057Z"
        },
        "llmsTxt": {
          "url": "https://www.weatherapi.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:59.846176428Z"
        },
        "domain": {
          "domain": "weatherapi.com",
          "registered": "2014-11-29",
          "source": "https://rdap.verisign.com/com/v1/domain/weatherapi.com",
          "checkedAt": "2026-10-04T13:06:50.954163408Z"
        },
        "pages": [
          {
            "url": "https://www.weatherapi.com/api-changelog.html",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:36.193130984Z",
            "changedAt": "2026-10-09T18:55:36.193130984Z",
            "fingerprint": "ad5224f89d26"
          },
          {
            "url": "https://www.weatherapi.com/pricing.aspx",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:38.22905423Z",
            "changedAt": "2026-10-07T18:14:34.72382766Z",
            "fingerprint": "9ecc9dbb8a72"
          },
          {
            "url": "https://www.weatherapi.com/privacy.aspx",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:40.264123275Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cb9e4a437682"
          },
          {
            "url": "https://www.weatherapi.com/terms.aspx",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:55:42.235418535Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "29affc48ca13"
          }
        ],
        "updatedAt": "2026-10-10T02:07:30.968360368Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Storm Glass AB",
        "b": "WeatherAPI.com (Zoomash Ltd)",
        "name": "Vendor"
      },
      {
        "a": "https://api.stormglass.io/v2",
        "b": "https://api.weatherapi.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "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": "Proprietary service under Storm Glass AB's Terms and Conditions. The Free and Small plans are not for commercial use",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-02-26",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "WeatherAPI.com scores 65.3 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in 6 of 7 scored categories. Stormglass API leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Stormglass API or WeatherAPI.com?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Stormglass API and WeatherAPI.com need an API key?"
      },
      {
        "answer": "Yes. Stormglass API has a hosted endpoint at https://api.stormglass.io/v2 and WeatherAPI.com at https://api.weatherapi.com/v1.",
        "question": "Can an agent call Stormglass API and WeatherAPI.com without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 44 against 37"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Reliability, 90 against 34",
          "Schema \u0026 documentation, 89 against 40",
          "Agent ergonomics, 80 against 65",
          "Payments \u0026 pricing, 30 against 25",
          "Maintenance \u0026 community, 45 against 15",
          "Transparency \u0026 trust, 65 against 45"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Cheap, high-volume consumer forecasts where the location arrives as a city, postcode or IP.",
        "slug": "weatherapi-com",
        "watchFor": "Key only in the query string, and no security.txt"
      }
    ],
    "job": {
      "capability": "weather.forecast",
      "name": "Weather forecasts"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/accuweather-api-vs-weatherapi-com.json",
        "title": "AccuWeather Core Weather API + MCP vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/accuweather-api-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-weather-api-vs-weatherapi-com.json",
        "title": "Google Weather API (Maps Platform) vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/google-weather-api-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/met-office-datahub-vs-weatherapi-com.json",
        "title": "Met Office Weather DataHub (Site Specific) vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/met-office-datahub-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meteoblue-vs-weatherapi-com.json",
        "title": "meteoblue Weather API vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/meteoblue-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meteomatics-vs-weatherapi-com.json",
        "title": "Meteomatics Weather API vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/meteomatics-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com.json",
        "title": "NOAA National Weather Service API (api.weather.gov) vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openweather-one-call-vs-weatherapi-com.json",
        "title": "OpenWeather One Call API vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/openweather-one-call-vs-weatherapi-com"
      },
      {
        "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/tomorrow-io-vs-weatherapi-com.json",
        "title": "Tomorrow.io Weather API vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/tomorrow-io-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/visual-crossing-vs-weatherapi-com.json",
        "title": "Visual Crossing Weather API vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/visual-crossing-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/weather-company-vs-weatherapi-com.json",
        "title": "The Weather Company Data APIs vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/weather-company-vs-weatherapi-com"
      },
      {
        "json": "https://www.anchorterminal.com/compare/weatherapi-com-vs-weatherbit.json",
        "title": "WeatherAPI.com vs Weatherbit API",
        "url": "https://www.anchorterminal.com/compare/weatherapi-com-vs-weatherbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/weatherapi-com-vs-xweather.json",
        "title": "WeatherAPI.com vs Xweather Weather API",
        "url": "https://www.anchorterminal.com/compare/weatherapi-com-vs-xweather"
      },
      {
        "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/open-meteo-vs-weatherapi-com.json",
        "title": "Open-Meteo vs WeatherAPI.com",
        "url": "https://www.anchorterminal.com/compare/open-meteo-vs-weatherapi-com"
      },
      {
        "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/pirate-weather-vs-stormglass.json",
        "title": "Pirate Weather vs Stormglass API",
        "url": "https://www.anchorterminal.com/compare/pirate-weather-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-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": 56,
        "edge": "weatherapi-com",
        "key": "reliability",
        "name": "Reliability",
        "stormglass": 34,
        "weatherapi-com": 90,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 49,
        "edge": "weatherapi-com",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "stormglass": 40,
        "weatherapi-com": 89,
        "weight": 13
      },
      {
        "by": 15,
        "edge": "weatherapi-com",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "stormglass": 65,
        "weatherapi-com": 80,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "stormglass",
        "key": "security",
        "name": "Security \u0026 auth",
        "stormglass": 44,
        "weatherapi-com": 37,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "weatherapi-com",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "stormglass": 25,
        "weatherapi-com": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 30,
        "edge": "weatherapi-com",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "stormglass": 15,
        "weatherapi-com": 45,
        "weight": 7
      },
      {
        "by": 20,
        "edge": "weatherapi-com",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "stormglass": 45,
        "weatherapi-com": 65,
        "weight": 7
      }
    ],
    "summary": "WeatherAPI.com scores 65.3 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in 6 of 7 scored categories. Stormglass API leads on security \u0026 auth. Both do weather forecasts.",
    "verdicts": {
      "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.",
      "weatherapi-com": "3 million calls for $7 a month, and 100,000 a month free with no card. Key only in the query string, and no security.txt."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com",
    "json": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.md",
    "slim": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.min.md"
  },
  "markdown": "WeatherAPI.com scores 65.3 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in 6 of 7 scored categories. Stormglass API leads on security \u0026 auth. Both do weather forecasts.\n\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- WeatherAPI.com: grade B, 65.3/100, rank #321 of 950. Markdown https://www.anchorterminal.com/tools/weatherapi-com.md · JSON https://www.anchorterminal.com/api/v1/tools/weatherapi-com.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### 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\nAhead on:\n- Security \u0026 auth, 44 against 37\n\nWatch for: No OpenAPI file, llms.txt, official SDK or changelog was found. The docs are eleven Markdown pages\n\n### WeatherAPI.com (B)\n\nGood for: Cheap, high-volume consumer forecasts where the location arrives as a city, postcode or IP.\n\nAhead on:\n- Reliability, 90 against 34\n- Schema \u0026 documentation, 89 against 40\n- Agent ergonomics, 80 against 65\n- Payments \u0026 pricing, 30 against 25\n- Maintenance \u0026 community, 45 against 15\n- Transparency \u0026 trust, 65 against 45\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Key only in the query string, and no security.txt\n\n\n## Score by category\n\n| Category | Weight | Stormglass API | WeatherAPI.com | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 34 | 90 | WeatherAPI.com +56 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 40 | 89 | WeatherAPI.com +49 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 80 | WeatherAPI.com +15 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 37 | Stormglass API +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | WeatherAPI.com +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 15 | 45 | WeatherAPI.com +30 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 45 | 65 | WeatherAPI.com +20 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **39.9 · E** | **65.3 · B** | |\n\n## Facts side by side\n\n| Fact | Stormglass API | WeatherAPI.com |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Storm Glass AB | WeatherAPI.com (Zoomash Ltd) |\n| Hosted endpoint | `https://api.stormglass.io/v2` | `https://api.weatherapi.com/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Storm Glass AB's Terms and Conditions. The Free and Small plans are not for commercial use | none |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-02-26 | none |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Agent reviews | none | 3.5/5 (2) |\n\n## Verdicts\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**WeatherAPI.com.** 3 million calls for $7 a month, and 100,000 a month free with no card. Key only in the query string, and no security.txt.\n\n## Before you call either\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### WeatherAPI.com\n\n1. Pass current_fields, day_fields or hour_fields to cut the response to what you need\n2. Treat a 403 with error code 2007 as the monthly quota, not a bad key. There's no 429\n3. Reuse the id from search.json (q=id:NNN) to avoid ambiguous city names\n4. Cache history freely, current for under an hour and forecasts for under a day, to stay inside the terms\n5. Use https://api.weatherapi.com/v1. The docs still show an http:// base URL\n\n## Questions\n\n### Which is better for AI agents, Stormglass API or WeatherAPI.com?\n\nWeatherAPI.com scores 65.3 (B) on agent readiness against Stormglass API's 39.9 (E), and leads in 6 of 7 scored categories. Stormglass API leads on security \u0026 auth.\n\n### Do Stormglass API and WeatherAPI.com need an API key?\n\nBoth need an API key.\n\n### Can an agent call Stormglass API and WeatherAPI.com without installing anything?\n\nYes. Stormglass API has a hosted endpoint at https://api.stormglass.io/v2 and WeatherAPI.com at https://api.weatherapi.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.json, and with the fewest tokens: https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"stormglass\", \"b\": \"weatherapi-com\"}`. From a terminal: `anchor compare stormglass weatherapi-com`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/stormglass.json and https://www.anchorterminal.com/api/v1/tools/weatherapi-com.json\n\n## Other comparisons with Stormglass API or WeatherAPI.com\n\n- [AccuWeather Core Weather API + MCP vs WeatherAPI.com](https://www.anchorterminal.com/compare/accuweather-api-vs-weatherapi-com.md)\n- [Google Weather API (Maps Platform) vs WeatherAPI.com](https://www.anchorterminal.com/compare/google-weather-api-vs-weatherapi-com.md)\n- [Met Office Weather DataHub (Site Specific) vs WeatherAPI.com](https://www.anchorterminal.com/compare/met-office-datahub-vs-weatherapi-com.md)\n- [meteoblue Weather API vs WeatherAPI.com](https://www.anchorterminal.com/compare/meteoblue-vs-weatherapi-com.md)\n- [Meteomatics Weather API vs WeatherAPI.com](https://www.anchorterminal.com/compare/meteomatics-vs-weatherapi-com.md)\n- [NOAA National Weather Service API (api.weather.gov) vs WeatherAPI.com](https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com.md)\n- [OpenWeather One Call API vs WeatherAPI.com](https://www.anchorterminal.com/compare/openweather-one-call-vs-weatherapi-com.md)\n- [Pirate Weather vs WeatherAPI.com](https://www.anchorterminal.com/compare/pirate-weather-vs-weatherapi-com.md)\n- [Tomorrow.io Weather API vs WeatherAPI.com](https://www.anchorterminal.com/compare/tomorrow-io-vs-weatherapi-com.md)\n- [Visual Crossing Weather API vs WeatherAPI.com](https://www.anchorterminal.com/compare/visual-crossing-vs-weatherapi-com.md)\n- [The Weather Company Data APIs vs WeatherAPI.com](https://www.anchorterminal.com/compare/weather-company-vs-weatherapi-com.md)\n- [WeatherAPI.com vs Weatherbit API](https://www.anchorterminal.com/compare/weatherapi-com-vs-weatherbit.md)\n- [WeatherAPI.com vs Xweather Weather API](https://www.anchorterminal.com/compare/weatherapi-com-vs-xweather.md)\n- [Open-Meteo vs Stormglass API](https://www.anchorterminal.com/compare/open-meteo-vs-stormglass.md)\n- [Open-Meteo vs WeatherAPI.com](https://www.anchorterminal.com/compare/open-meteo-vs-weatherapi-com.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- [Pirate Weather vs Stormglass API](https://www.anchorterminal.com/compare/pirate-weather-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 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": "Stormglass API vs WeatherAPI.com",
        "url": ""
      }
    ],
    "description": "WeatherAPI.com scores 65.3 (B) to Stormglass's 39.9 (E) for weather forecasts. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Stormglass API E 39.9",
      "WeatherAPI.com B 65.3",
      "scores"
    ],
    "h1": "Stormglass API vs WeatherAPI.com",
    "image": "https://www.anchorterminal.com/assets/og/compare-stormglass-vs-weatherapi-com.png",
    "path": "/compare/stormglass-vs-weatherapi-com",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Stormglass vs WeatherAPI.com for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/stormglass-vs-weatherapi-com"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 630
  },
  "version": 1
}
