{
  "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": 66.2,
        "grade": "B",
        "agentReady": false,
        "rank": 162,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 80,
          "payments": 30,
          "reliability": 75,
          "schema": 85,
          "security": 45,
          "transparency": 71
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.2
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 80,
          "payments": 30,
          "reliability": 75,
          "schema": 85,
          "security": 45,
          "transparency": 55
        },
        "provenanceScore": 86,
        "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": 86
      },
      "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-04T23:48:14.052557641Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 102,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 105,
          "p95ms24h": 154,
          "samples24h": 272,
          "samples30d": 898,
          "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": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://pirateweather.xitoring.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:23.776757395Z"
        },
        "githubStars": 910,
        "securityTxt": {
          "url": "https://pirateweather.net/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:49.683216911Z"
        },
        "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-04T15:46:44.667604199Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://pirateweather.net/en/latest/Apiable/ApiablePrivacy/",
            "kind": "privacy",
            "status": 404,
            "checkedAt": "2026-10-04T15:46:40.536531228Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://pirateweather.net/en/latest/Apiable/ApiableTerms/",
            "kind": "terms",
            "status": 404,
            "checkedAt": "2026-10-04T15:46:42.64213118Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "updatedAt": "2026-10-04T23:48:14.052557641Z"
      }
    },
    "b": {
      "slug": "visual-crossing",
      "name": "Visual Crossing Weather API",
      "vendor": "Visual Crossing",
      "vendorUrl": "https://www.visualcrossing.com",
      "kind": "http-api",
      "category": "weather",
      "summary": "Weather API for historical conditions, forecasts and climate data by location and date range.",
      "url": "https://www.anchorterminal.com/tools/visual-crossing",
      "markdownUrl": "https://www.anchorterminal.com/tools/visual-crossing.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/visual-crossing.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/visual-crossing.json",
      "repo": "https://github.com/visualcrossing/WeatherApi",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline",
      "packages": [],
      "auth": "api-key",
      "authNotes": "The Timeline API takes the key as the key query parameter. The MCP server takes it in an X-VC-API-Key header, or OAuth (user or machine-to-machine) once Visual Crossing has provisioned it for the account.",
      "pricing": "freemium",
      "pricingNotes": "Billed in records. A day of daily data is one record, a day of hourly data is 24, and a full 15-day forecast for one location is one record. Free at 1,000 records a day (30,000 a month), no card, one concurrent request, attribution required. Metered at $0.0001 a record above the free 1,000 a day, unlimited records, up to 25,000 records a query. Professional (10 million records a month) shows no price, and Corporate and Enterprise are contact sales. A February 2023 post put Professional and Corporate at $35 and $150 a month. The plan table lists 99.5 per cent uptime on Free and 99.9 on paid plans (https://www.visualcrossing.com/weather-data-pricing/ and https://www.visualcrossing.com/resources/blog/what-will-my-weather-data-cost/).",
      "priceSummary": "$0.10 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 1,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.visualcrossing.com/resources/documentation/weather-api/timeline-weather-api/",
      "llmsTxt": "https://www.visualcrossing.com/llms.txt",
      "openapi": "https://www.visualcrossing.com/weather/specs/visualcrossing-weather-api-openapi.json",
      "capabilities": [
        "weather.current",
        "weather.forecast",
        "weather.historical",
        "weather.alerts",
        "data.weather"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "closed-source",
        "usage-priced"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.3,
        "grade": "C",
        "agentReady": false,
        "rank": 251,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 58,
          "payments": 40,
          "reliability": 66,
          "schema": 74,
          "security": 40,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "History from 1970, current conditions and a 15-day forecast from one endpoint. Key only in the query string on the REST API.",
        "strengths": [
          "History from 1970, current conditions and a 15-day forecast from one endpoint",
          "$0.0001 a record with 1,000 free a day and no card",
          "Official MCP server with one tool, key in a header or OAuth",
          "llms.txt, an OpenAPI spec and a quarterly changelog, most recently 4 September 2026",
          "Status page and published uptime targets of 99.5 per cent free and 99.9 paid"
        ],
        "weaknesses": [
          "Key only in the query string on the REST API",
          "OpenAPI spec defines no enums and no error responses",
          "Privacy policy states no retention periods or subprocessors",
          "Storing results needs the right licence level, and the terms carry a non-compete",
          "No security.txt, disclosure policy or MCP registry entry"
        ],
        "agentNotes": [
          "Always pass include= and elements=. A bare call returns days, hours and current for every element and burns records",
          "Count records before a backfill. Hourly data is 24 records a day, so a year for one place is 8,760",
          "Pass unitGroup=metric. The default is US units",
          "Use the MCP server with X-VC-API-Key rather than pasting the key into a URL",
          "Keep to one request at a time on Free and Professional. A second concurrent job returns 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.3
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 58,
          "payments": 40,
          "reliability": 66,
          "schema": 74,
          "security": 40,
          "transparency": 31
        },
        "provenanceScore": 90,
        "dataQualityScore": 77
      },
      "connect": {
        "http": "curl \"https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/51.51,-0.13/2026-09-01/2026-09-07?unitGroup=metric\u0026include=days\u0026elements=datetime,tempmax,tempmin,precip\u0026contentType=json\u0026key=$VISUALCROSSING_API_KEY\"",
        "claudeCode": "claude mcp add --transport http visualcrossing https://mcp.visualcrossing.com/VisualCrossingWebServices/rest/api/v1/mcp --header \"X-VC-API-Key: $VISUALCROSSING_API_KEY\"",
        "config": {
          "mcpServers": {
            "visualcrossing": {
              "headers": {
                "X-VC-API-Key": "${VISUALCROSSING_API_KEY}"
              },
              "type": "http",
              "url": "https://mcp.visualcrossing.com/VisualCrossingWebServices/rest/api/v1/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/weather.current",
        "tool": "https://letme.dev/visual-crossing"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Metered record",
          "unit": "record",
          "usd": 0.0001,
          "note": "First 1,000 records a day free"
        },
        {
          "item": "Metered, 15-day forecast calls",
          "unit": "1k-requests",
          "usd": 0.1,
          "note": "One record a forecast call, $0.0001 each"
        }
      ],
      "provenance": {
        "legalEntity": "Visual Crossing Corporation",
        "domain": "visualcrossing.com",
        "domainRegistered": "2005-10-11",
        "endpointOnVendorDomain": true,
        "terms": "https://www.visualcrossing.com/weather-services-terms/",
        "privacy": "https://www.visualcrossing.com/privacy/",
        "statusPage": "https://status.visualcrossing.com/",
        "changelog": "https://www.visualcrossing.com/resources/documentation/weather-api/weather-api-changelog/",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms (last updated January 2023) name Visual Crossing Corporation under Virginia law but give no address.",
          "The privacy policy is at /privacy/ (updated 23 May 2025). The /privacy-policy/ path returns 404.",
          "The status page at status.visualcrossing.com runs on UptimeRobot.",
          "/.well-known/security.txt returns 404 per the 30 September check.",
          "The GitHub repository holds sample code in several languages, not an SDK."
        ],
        "score": 90
      },
      "dataQuality": {
        "coverage": "Global, any address or coordinate, up to 100 locations a query on Professional",
        "coverageRating": 4,
        "freshness": "Stations update every 15 to 30 minutes or hourly per the product page. Forecast refresh cadence not stated",
        "freshnessClass": "hourly",
        "history": "From 1970-01-01, hourly and daily, plus archived forecasts through the Historical Weather Forecast API added in Q2 2026",
        "historyYears": 56,
        "methodology": "https://www.visualcrossing.com/resources/documentation/weather-api/timeline-weather-api/",
        "sourcesDisclosed": true,
        "licence": "Proprietary. Storage by licence level, no resale, non-compete",
        "licenceClass": "clear",
        "standing": "",
        "standingClass": "none",
        "reuse": "Results may be stored in a database only where the licence level permits it, except for personal use. Resale and redistribution are barred, using the data to replicate a Visual Crossing service is barred, and Enterprise is the plan that adds external data-sharing rights.",
        "score": 77,
        "checks": null
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/visual-crossing.json",
      "live": {
        "slug": "visual-crossing",
        "probe": {
          "target": "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline",
          "method": "get",
          "lastAt": "2026-10-04T23:48:17.993141415Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 254,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 257,
          "p95ms24h": 295,
          "samples24h": 272,
          "samples30d": 898,
          "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": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.visualcrossing.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:33.384039028Z"
        },
        "githubStars": 55,
        "securityTxt": {
          "url": "https://visualcrossing.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:36.837103071Z"
        },
        "llmsTxt": {
          "url": "https://www.visualcrossing.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:21.271479326Z"
        },
        "domain": {
          "domain": "visualcrossing.com",
          "registered": "2005-10-11",
          "source": "https://rdap.verisign.com/com/v1/domain/visualcrossing.com",
          "checkedAt": "2026-10-04T13:06:40.738574234Z"
        },
        "pages": [
          {
            "url": "https://www.visualcrossing.com/resources/documentation/weather-api/weather-api-changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:47.418150983Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "77ecfd35a643"
          },
          {
            "url": "https://www.visualcrossing.com/weather-data-pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:49.331082427Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cb8af14c5632"
          },
          {
            "url": "https://www.visualcrossing.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:45.228070626Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0ccd098bba16"
          },
          {
            "url": "https://www.visualcrossing.com/weather-services-terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:51.357308005Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5225b6169954"
          }
        ],
        "updatedAt": "2026-10-04T23:48:17.993141415Z"
      }
    },
    "summary": "Pirate Weather has a score of 66.2 (B) against Visual Crossing Weather API's 60.3 (C). Both do weather current. The largest gap is maintenance \u0026 community, 22 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing",
    "json": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing.md",
    "slim": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing.min.md"
  },
  "markdown": "Pirate Weather has a score of 66.2 (B) against Visual Crossing Weather API's 60.3 (C). Both do weather current. The largest gap is maintenance \u0026 community, 22 points.\n\n- Pirate Weather: grade B, 66.2/100, rank #162 of 452. Markdown https://www.anchorterminal.com/tools/pirate-weather.md · JSON https://www.anchorterminal.com/api/v1/tools/pirate-weather.json\n- Visual Crossing Weather API: grade C, 60.3/100, rank #251 of 452. Markdown https://www.anchorterminal.com/tools/visual-crossing.md · JSON https://www.anchorterminal.com/api/v1/tools/visual-crossing.json\n\n## Which one, for what\n\nPick Pirate Weather for reliability (+9), schema \u0026 documentation (+11), security \u0026 auth (+5), maintenance \u0026 community (+22), transparency \u0026 trust (+10).\n\nPick Visual Crossing Weather API for payments \u0026 pricing (+10).\n\n## Score by category\n\n| Category | Weight | Pirate Weather | Visual Crossing Weather API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 66 | Pirate Weather +9 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 74 | Pirate Weather +11 |\n| Agent ergonomics | 13% (16.2 this run) | 77 | 78 | Visual Crossing Weather API +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 40 | Pirate Weather +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Visual Crossing Weather API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 58 | Pirate Weather +22 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 61 | Pirate Weather +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66.2 · B** | **60.3 · C** | |\n\n## Facts side by side\n\n| Fact | Pirate Weather | Visual Crossing Weather API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Pirate Weather | Visual Crossing |\n| Hosted endpoint | `https://api.pirateweather.net/forecast` | `https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable 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) | none |\n| Tools exposed | none | 1 |\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-09-23 | none |\n| Popularity | 907 stars | none |\n| Agent reviews | 4/5 (2) | 4/5 (2) |\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**Visual Crossing Weather API.** History from 1970, current conditions and a 15-day forecast from one endpoint. Key only in the query string on the REST API.\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### Visual Crossing Weather API\n\n1. Always pass include= and elements=. A bare call returns days, hours and current for every element and burns records\n2. Count records before a backfill. Hourly data is 24 records a day, so a year for one place is 8,760\n3. Pass unitGroup=metric. The default is US units\n4. Use the MCP server with X-VC-API-Key rather than pasting the key into a URL\n5. Keep to one request at a time on Free and Professional. A second concurrent job returns 429\n\n## Other comparisons with Pirate Weather or Visual Crossing Weather API\n\n- [AccuWeather Core Weather API + MCP vs Pirate Weather](https://www.anchorterminal.com/compare/accuweather-api-vs-pirate-weather.md)\n- [AccuWeather Core Weather API + MCP vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/accuweather-api-vs-visual-crossing.md)\n- [Google Weather API (Maps Platform) vs Pirate Weather](https://www.anchorterminal.com/compare/google-weather-api-vs-pirate-weather.md)\n- [Google Weather API (Maps Platform) vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/google-weather-api-vs-visual-crossing.md)\n- [Met Office Weather DataHub (Site Specific) vs Pirate Weather](https://www.anchorterminal.com/compare/met-office-datahub-vs-pirate-weather.md)\n- [Met Office Weather DataHub (Site Specific) vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/met-office-datahub-vs-visual-crossing.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 Pirate Weather](https://www.anchorterminal.com/compare/openweather-one-call-vs-pirate-weather.md)\n- [OpenWeather One Call API vs Visual Crossing Weather API](https://www.anchorterminal.com/compare/openweather-one-call-vs-visual-crossing.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-04",
    "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": "Pirate Weather vs Visual Crossing Weather API",
        "url": ""
      }
    ],
    "description": "Pirate Weather has a score of 66.2 (B) against Visual Crossing Weather API's 60.3 (C). Both do weather current. The largest gap is maintenance \u0026 community, 22 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Pirate Weather B 66.2",
      "Visual Crossing Weather API C 60.3",
      "scores"
    ],
    "h1": "Pirate Weather vs Visual Crossing Weather API",
    "image": "https://www.anchorterminal.com/assets/og/compare-pirate-weather-vs-visual-crossing.png",
    "path": "/compare/pirate-weather-vs-visual-crossing",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pirate Weather vs Visual Crossing Weather API for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/pirate-weather-vs-visual-crossing"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 380
  },
  "version": 1
}
