{
  "data": {
    "a": {
      "slug": "nws-api",
      "name": "NOAA National Weather Service API (api.weather.gov)",
      "vendor": "National Weather Service",
      "vendorUrl": "https://www.weather.gov/documentation/services-web-api",
      "kind": "http-api",
      "category": "weather",
      "summary": "The US government's own forecast, alert and observation feed, free, keyless and public domain.",
      "url": "https://www.anchorterminal.com/tools/nws-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/nws-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nws-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nws-api.json",
      "repo": "https://github.com/weather-gov/api",
      "license": "Public domain (data)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.weather.gov",
      "packages": [],
      "auth": "none",
      "authNotes": "No key. A User-Agent header that identifies the application, ideally with a contact email, is required and requests without one are refused.",
      "pricing": "free",
      "pricingNotes": "Free. The rate limit isn't published but is described as generous for typical use, and a throttled request can be retried after about five seconds (https://www.weather.gov/documentation/services-web-api).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 310,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.weather.gov/documentation/services-web-api",
      "openapi": "https://api.weather.gov/openapi.json",
      "capabilities": [
        "weather.current",
        "weather.forecast",
        "weather.alerts",
        "data.weather"
      ],
      "tags": [
        "hosted",
        "official",
        "government",
        "free",
        "no-key",
        "open-data",
        "openapi"
      ],
      "lastRelease": "2026-03-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.9,
        "grade": "D",
        "agentReady": false,
        "rank": 364,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 8,
          "payments": 60,
          "reliability": 25,
          "schema": 67,
          "security": 53,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Free, no key and no account, with public domain data. US and territories only.",
        "strengths": [
          "Free, no key and no account, with public domain data",
          "Official watches, warnings and text products from the issuing agency, filterable by point, zone, event and severity",
          "OpenAPI 3.0 document and RFC 7807 error bodies",
          "Cache-Control and Last-Modified on every response, so conditional requests work"
        ],
        "weaknesses": [
          "US and territories only",
          "Rate limit not published, and no status page or SLA",
          "No dated API change since 17 March 2026, and several 2026 forum questions unanswered",
          "No SDK, MCP server, llms.txt or security.txt"
        ],
        "agentNotes": [
          "Set User-Agent to your app name and a contact email or the request is refused with 403",
          "Cache the /points response per coordinate. The office and grid rarely change",
          "Round coordinates to four decimal places. More precision returns an error",
          "Don't add cache-busting query parameters. Unknown parameters return 400",
          "Back off about five seconds after a throttled request and reuse the last good response"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.9
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 8,
          "payments": 60,
          "reliability": 25,
          "schema": 67,
          "security": 53,
          "transparency": 53
        },
        "provenanceScore": 80,
        "dataQualityScore": 67
      },
      "connect": {
        "http": "curl -H \"User-Agent: (myagent.example, ops@myagent.example)\" -H \"Accept: application/geo+json\" \"https://api.weather.gov/points/38.8894,-77.0352\""
      },
      "letme": {
        "capability": "https://letme.dev/weather.current",
        "tool": "https://letme.dev/nws-api"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "National Weather Service, NOAA, U.S. Department of Commerce",
        "domain": "weather.gov",
        "domainRegistered": "1999-04-30",
        "official": true,
        "endpointOnVendorDomain": true,
        "terms": "https://www.weather.gov/disclaimer",
        "privacy": "https://www.weather.gov/privacy",
        "statusPage": "",
        "changelog": "https://www.weather.gov/documentation/services-web-api",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The disclaimer says NWS information is public domain unless noted, is supplied as is, and that the NWS name and identifier are trademarked.",
          "The privacy policy says the date, time and originating IP of each request are logged and may be kept indefinitely for security.",
          "www.weather.gov/.well-known/security.txt returns 404. The Department of Commerce vulnerability disclosure policy (version 2.0, 25 February 2026) covers internet-facing DOC systems and takes reports through Bugcrowd.",
          "The docs page carries a dated list of API changes. Wider service changes go out as NWS Service Change Notices and Public Information Statements.",
          "There's no status page. Outages are reported to NCO Tech Control, and the NCEP Senior Duty Meteorologist messages are the nearest public log."
        ],
        "score": 80
      },
      "dataQuality": {
        "coverage": "United States and its territories, on each forecast office's 2.5 km grid",
        "coverageRating": 2,
        "freshness": "Not stated per endpoint. Responses carry Cache-Control and Last-Modified so clients can see the age",
        "freshnessClass": "hourly",
        "history": "Recent station observations only. Climate records are at NOAA's NCEI, not this API",
        "historyYears": 0,
        "methodology": "https://www.weather.gov/documentation/services-web-api",
        "sourcesDisclosed": true,
        "licence": "Public domain",
        "licenceClass": "open",
        "standing": "The US federal weather service, issuer of official US watches and warnings",
        "standingClass": "statutory",
        "reuse": "Public domain and free for any lawful purpose. Cache and redistribute as you like, don't imply NWS endorsement, and note that works built mostly on NWS material can't claim copyright over it.",
        "score": 67,
        "checks": null
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nws-api.json",
      "live": {
        "slug": "nws-api",
        "probe": {
          "target": "https://api.weather.gov",
          "method": "get",
          "lastAt": "2026-10-05T01:43:41.970878268Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 146,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 153,
          "p95ms24h": 332,
          "samples24h": 272,
          "samples30d": 920,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "githubStars": 311,
        "securityTxt": {
          "url": "https://weather.gov/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:49.532451334Z"
        },
        "pages": [
          {
            "url": "https://www.weather.gov/documentation/services-web-api",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:52.813447699Z",
            "changedAt": "2026-10-03T15:40:43.869263793Z",
            "fingerprint": "ebbe762baf4c"
          },
          {
            "url": "https://www.weather.gov/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:54.951244772Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "00331ba8517d"
          },
          {
            "url": "https://www.weather.gov/disclaimer",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:50.483017146Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f32d8c8c8de4"
          }
        ],
        "updatedAt": "2026-10-05T01:43:41.970878268Z"
      }
    },
    "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.8,
        "grade": "B",
        "agentReady": false,
        "rank": 169,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 45,
          "payments": 30,
          "reliability": 90,
          "schema": 89,
          "security": 37,
          "transparency": 70
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.8
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 45,
          "payments": 30,
          "reliability": 90,
          "schema": 89,
          "security": 37,
          "transparency": 49
        },
        "provenanceScore": 90,
        "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": 90
      },
      "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-05T01:43:48.280768114Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 59,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 60,
          "p95ms24h": 150,
          "samples24h": 272,
          "samples30d": 920,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.weatherapi.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:34.084084756Z"
        },
        "securityTxt": {
          "url": "https://weatherapi.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:50.54150115Z"
        },
        "llmsTxt": {
          "url": "https://www.weatherapi.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:21.6959677Z"
        },
        "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-04T15:52:53.355500992Z",
            "changedAt": "2026-10-04T15:52:53.355500992Z",
            "fingerprint": "27443ff20814"
          },
          {
            "url": "https://www.weatherapi.com/pricing.aspx",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:55.401668105Z",
            "changedAt": "2026-10-04T15:52:55.401668105Z",
            "fingerprint": "edf5a49404e3"
          },
          {
            "url": "https://www.weatherapi.com/privacy.aspx",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:57.435167177Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cb9e4a437682"
          },
          {
            "url": "https://www.weatherapi.com/terms.aspx",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:59.433233246Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "29affc48ca13"
          }
        ],
        "updatedAt": "2026-10-05T01:43:48.280768114Z"
      }
    },
    "summary": "WeatherAPI.com has a score of 65.8 (B) against NOAA National Weather Service API (api.weather.gov)'s 49.9 (D). Both do weather current. The largest gap is reliability, 65 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com",
    "json": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com.md",
    "slim": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com.min.md"
  },
  "markdown": "WeatherAPI.com has a score of 65.8 (B) against NOAA National Weather Service API (api.weather.gov)'s 49.9 (D). Both do weather current. The largest gap is reliability, 65 points.\n\n- NOAA National Weather Service API (api.weather.gov): grade D, 49.9/100, rank #364 of 452. Markdown https://www.anchorterminal.com/tools/nws-api.md · JSON https://www.anchorterminal.com/api/v1/tools/nws-api.json\n- WeatherAPI.com: grade B, 65.8/100, rank #169 of 452. Markdown https://www.anchorterminal.com/tools/weatherapi-com.md · JSON https://www.anchorterminal.com/api/v1/tools/weatherapi-com.json\n\n## Which one, for what\n\nPick NOAA National Weather Service API (api.weather.gov) for security \u0026 auth (+16), payments \u0026 pricing (+30).\n\nPick WeatherAPI.com for reliability (+65), schema \u0026 documentation (+22), agent ergonomics (+14), maintenance \u0026 community (+37).\n\n## Score by category\n\n| Category | Weight | NOAA National Weather Service API (api.weather.gov) | WeatherAPI.com | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 25 | 90 | WeatherAPI.com +65 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 67 | 89 | WeatherAPI.com +22 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 80 | WeatherAPI.com +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 53 | 37 | NOAA National Weather Service API (api.weather.gov) +16 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 30 | NOAA National Weather Service API (api.weather.gov) +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 8 | 45 | WeatherAPI.com +37 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 70 | WeatherAPI.com +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **49.9 · D** | **65.8 · B** | |\n\n## Facts side by side\n\n| Fact | NOAA National Weather Service API (api.weather.gov) | WeatherAPI.com |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | National Weather Service | WeatherAPI.com (Zoomash Ltd) |\n| Hosted endpoint | `https://api.weather.gov` | `https://api.weatherapi.com/v1` |\n| Transports | HTTP | HTTP |\n| Auth | None | API key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Public domain (data) | none |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-03-19 | none |\n| Popularity | 310 stars | none |\n| Agent reviews | 4.5/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**NOAA National Weather Service API (api.weather.gov).** Free, no key and no account, with public domain data. US and territories only.\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### NOAA National Weather Service API (api.weather.gov)\n\n1. Set User-Agent to your app name and a contact email or the request is refused with 403\n2. Cache the /points response per coordinate. The office and grid rarely change\n3. Round coordinates to four decimal places. More precision returns an error\n4. Don't add cache-busting query parameters. Unknown parameters return 400\n5. Back off about five seconds after a throttled request and reuse the last good response\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## Other comparisons with NOAA National Weather Service API (api.weather.gov) or WeatherAPI.com\n\n- [AccuWeather Core Weather API + MCP vs NOAA National Weather Service API (api.weather.gov)](https://www.anchorterminal.com/compare/accuweather-api-vs-nws-api.md)\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 NOAA National Weather Service API (api.weather.gov)](https://www.anchorterminal.com/compare/google-weather-api-vs-nws-api.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 NOAA National Weather Service API (api.weather.gov)](https://www.anchorterminal.com/compare/met-office-datahub-vs-nws-api.md)\n- [Met Office Weather DataHub (Site Specific) vs WeatherAPI.com](https://www.anchorterminal.com/compare/met-office-datahub-vs-weatherapi-com.md)\n- [NOAA National Weather Service API (api.weather.gov) vs OpenWeather One Call API](https://www.anchorterminal.com/compare/nws-api-vs-openweather-one-call.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- [NOAA National Weather Service API (api.weather.gov) vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/nws-api-vs-visual-crossing.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- [Visual Crossing Weather API vs WeatherAPI.com](https://www.anchorterminal.com/compare/visual-crossing-vs-weatherapi-com.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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": "NOAA National Weather Service API (api.weather.gov) vs WeatherAPI.com",
        "url": ""
      }
    ],
    "description": "WeatherAPI.com has a score of 65.8 (B) against NOAA National Weather Service API (api.weather.gov)'s 49.9 (D). Both do weather current. The largest gap is reliability, 65 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "NOAA National Weather Service API (api.weather.gov) D 49.9",
      "WeatherAPI.com B 65.8",
      "scores"
    ],
    "h1": "NOAA National Weather Service API (api.weather.gov) vs WeatherAPI.com",
    "image": "https://www.anchorterminal.com/assets/og/compare-nws-api-vs-weatherapi-com.png",
    "path": "/compare/nws-api-vs-weatherapi-com",
    "published": "2026-10-01",
    "section": "tools",
    "title": "NOAA National Weather Service API (api.weather.gov) vs WeatherAPI.com",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/nws-api-vs-weatherapi-com"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 380
  },
  "version": 1
}
