{
  "name": "Pirate Weather",
  "slug": "pirate-weather",
  "website_url": "https://pirateweather.net",
  "vendor_description": "\"A Modern, Developer-Centric, Open-Source, Extensively Documented Weather API\"",
  "categories": [
    "weather"
  ],
  "summary": "Pirate Weather is an open-source REST API providing current conditions, hourly and daily forecasts, minutely precipitation, severe weather alerts, historical data, and extended data such as fire index, air quality, and solar radiation, with global coverage via NOAA GFS and enhanced regional models for the US, Canada, and Europe. Positioned as a Dark Sky replacement, it is used by Home Assistant, KDE Plasma, and several weather apps. Pricing starts at $2/month with a free tier of 10,000 calls per month, self-serve signup, and no sales call required. Authentication is via API key, a Python SDK is available, and an MCP server is supported.",
  "capabilities": {
    "supported_actions": [
      "current_conditions",
      "minutely_forecast",
      "hourly_forecast",
      "daily_forecast",
      "weather_alerts",
      "time_machine_historical",
      "day_night_forecast",
      "extended_hourly_forecast",
      "fire_index",
      "air_quality_smoke",
      "solar_radiation",
      "mcp_get_forecast",
      "mcp_get_current_weather",
      "mcp_get_hourly_forecast",
      "mcp_get_minutely_forecast",
      "mcp_get_tomorrow_forecast"
    ],
    "supported_regions": [
      "Global (via NOAA GFS model)",
      "United States (enhanced via HRRR and NBM models)",
      "Canada (enhanced coverage)",
      "Europe (DWD MOSMIX, ECMWF IFS)",
      "Smoke data limited to US and parts of Canada"
    ],
    "supported_languages": [
      "Arabic",
      "Azerbaijani",
      "Belarusian",
      "Bulgarian",
      "Bengali",
      "Bosnian",
      "Catalan",
      "Czech",
      "Welsh",
      "Danish",
      "German",
      "Greek",
      "English",
      "Esperanto",
      "Spanish",
      "Estonian",
      "Persian",
      "Finnish",
      "French",
      "Irish",
      "Scottish Gaelic",
      "Hebrew",
      "Hindi",
      "Croatian",
      "Hungarian",
      "Indonesian",
      "Icelandic",
      "Italian",
      "Japanese",
      "Georgian",
      "Kannada",
      "Korean",
      "Cornish",
      "Latvian",
      "Malayalam",
      "Marathi",
      "Dutch",
      "Norwegian",
      "Punjabi",
      "Polish",
      "Portuguese",
      "Romanian",
      "Russian",
      "Slovak",
      "Slovenian",
      "Serbian",
      "Swedish",
      "Tamil",
      "Telugu",
      "Tetum",
      "Turkish",
      "Ukrainian",
      "Urdu",
      "Vietnamese",
      "Pig Latin",
      "Simplified Chinese",
      "Traditional Chinese"
    ],
    "input_types": [
      "lat/lon decimal degrees",
      "city name and country"
    ],
    "output_types": [
      "JSON"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [
      "Python"
    ],
    "mcp_server_available": true
  },
  "integration": {
    "api_style": "rest",
    "base_url": "https://api.pirateweather.net/forecast/",
    "api_version": "2.9.6",
    "versioning_scheme": "url",
    "stability": "ga",
    "deprecation_policy_url": null,
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://pirateweather.net/en/latest/API/",
    "idempotency_supported": false,
    "error_format": "vendor-specific",
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": 10000,
    "rate_limit_window": "month",
    "sdk_packages": [
      {
        "package": "pirateweather",
        "language": "Python",
        "official": true,
        "repo_url": "https://github.com/Pirate-Weather/pirate-weather-python"
      },
      {
        "package": "python-pirateweather",
        "language": "Python",
        "official": false,
        "repo_url": "https://github.com/cloneofghosts/python-pirate-weather"
      }
    ],
    "mcp_url": "https://mcp.pirateweather.net/mcp",
    "quickstart_url": "https://pirateweather.net/en/latest/API/"
  },
  "pricing": {
    "pricing_model": "subscription",
    "has_published_pricing": true,
    "starting_price_usd": "2.0000",
    "price_basis": "month",
    "free_tier_available": true,
    "free_tier_limit": "10,000 calls/month",
    "free_tier_details": "Permanent free tier with 10,000 API calls per month; no time limit.",
    "minimum_commitment": null,
    "self_serve_signup": true,
    "requires_sales_call": false,
    "requires_verification": false,
    "enterprise_plan_available": null,
    "price_points": [
      {
        "plan": "Free",
        "item": "10,000 API calls/month",
        "amount_usd": "0.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://docs.pirateweather.net/en/latest/"
      },
      {
        "plan": "Supporter",
        "item": "20,000 API calls/month",
        "amount_usd": "2.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://docs.pirateweather.net/en/latest/"
      }
    ]
  },
  "compliance": {
    "soc2": null,
    "hipaa": null,
    "gdpr": null,
    "iso_27001": null,
    "pci_dss": null,
    "sla_published": false,
    "sla_url": null,
    "data_retention_policy_url": null,
    "documented_rate_limits": "Monthly quota enforced per API key (plan-dependent); 1-4 requests/second per API key depending on plan (added December 2024); 429 error returned when monthly quota exceeded.",
    "known_restrictions": [
      "Smoke data only available for US and parts of Canada, next 36 hours only",
      "Time Machine uses archived GFS data for last 10 days; ERA5 dataset for older historical data (approximately 10 days behind)",
      "Future time requests beyond 1 hour of present return 400 error",
      "API key required; up to 20 minutes propagation time after subscription",
      "Open-source; runs on AWS serverless infrastructure"
    ]
  },
  "developer": {
    "docs_url": "https://docs.pirateweather.net",
    "api_reference_url": null,
    "openapi_spec_url": null,
    "postman_collection_url": null,
    "changelog_url": null,
    "status_page_url": null,
    "llms_txt_url": null,
    "markdown_docs_url": null,
    "rendering": "static"
  },
  "adoption": {
    "launched_at": "2021-01-01",
    "ga_date": null,
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": [
      "Home Assistant",
      "MerrySky",
      "Breezy Weather",
      "Weathergraph",
      "KDE Plasma"
    ]
  },
  "scores": {
    "agent_friendliness": 40,
    "pricing_transparency": 100,
    "setup_speed": 75,
    "docs_quality": 15,
    "procurement_friction": 100,
    "trust_readiness": 0,
    "best_for": [
      "Prototypes and side projects - free to start, no sales call",
      "AI agents and automation - an agent-ready surface (MCP / llms.txt)",
      "Teams needing broad API coverage out of the box"
    ],
    "avoid_if": [
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "vendor_description",
      "url": "http://pirateweather.net/en/latest/",
      "excerpt": "A Modern, Developer-Centric, Open-Source, Extensively Documented Weather API",
      "confidence": "high"
    },
    {
      "field": "vendor_description",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "A Modern, Developer-Centric, Open-Source, Extensively Documented Weather API",
      "confidence": "high"
    },
    {
      "field": "primary_use_cases",
      "url": "https://docs.pirateweather.net/en/latest/ha/",
      "excerpt": "This integration is designed to replace the defunct Dark Sky integration in Home Assistant with a modified and updated, but fully compatible version that relies on the Pirate Weather API instead!",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://docs.pirateweather.net/en/latest/changelog/",
      "excerpt": "Add the hosted Pirate Weather MCP server for apps and agents using remote streamable HTTP MCP servers.",
      "confidence": "high"
    },
    {
      "field": "supported_regions",
      "url": "https://docs.pirateweather.net/en/latest/DataSources/",
      "excerpt": "Smoke data derives exclusively from HRRR model output. This represents a significant constraint, as smoke availability depends entirely on HRRR coverage areas.",
      "confidence": "high"
    },
    {
      "field": "input_types",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "https://api.pirateweather.net/forecast/[apikey]/[latitude],[longitude]",
      "confidence": "high"
    },
    {
      "field": "output_types",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "All responses return JSON containing: Current conditions, Minute-by-minute, hourly, and daily forecasts, Severe weather alerts, Metadata flags with source information",
      "confidence": "high"
    },
    {
      "field": "sandbox_available",
      "url": "https://pirateweather.net/en/latest/TryItNow/",
      "excerpt": "Your key is sent directly from your browser to the Pirate Weather API — it is never forwarded to any other server",
      "confidence": "medium"
    },
    {
      "field": "mcp_server_available",
      "url": "https://docs.pirateweather.net/en/latest/changelog/",
      "excerpt": "Add the hosted Pirate Weather MCP server for apps and agents using remote streamable HTTP MCP servers.",
      "confidence": "high"
    },
    {
      "field": "primary_use_cases",
      "url": "http://pirateweather.net/en/latest/",
      "excerpt": "This API is designed to be a drop in replacement/alternative to the Dark Sky API, and as a tool for assessing GFS, HRRR and NBM forecasts via a JSON API.",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "The possible values for language may be: ar, az, be, bg, bn, bs, ca, cs, cy, da, de, el, en, eo, es, et, fa, fi, fr, ga, gd, he, hi, hr, hu, id, is, it, ja, ka, kn, ko, kw, lv, ml, mr, nl, no, pa, pl, pt, ro, ru, sk, sl, sr, sv, ta, te, tet, tr, uk, ur, vi, x-pig-latin, zh, zh-tw",
      "confidence": "high"
    },
    {
      "field": "supported_regions",
      "url": "https://docs.pirateweather.net/en/latest/DataSources/",
      "excerpt": "HRRR: Continental US and Canadian population centers; 3 km resolution with 15-minute forecasts. GFS: Global; ~30 km resolution extending 240 hours. DWD MOSMIX: Worldwide station coverage; strongest in Europe with bias corrections based on historical station observations.",
      "confidence": "high"
    },
    {
      "field": "supported_languages",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "The possible values for language may be: ar, az, be, bg, bn, bs, ca, cs, cy, da, de, el, en, eo, es, et, fa, fi, fr, ga, gd, he, hi, hr, hu, id, is, it, ja, ka, kn, ko, kw, lv, ml, mr, nl, no, pa, pl, pt, ro, ru, sk, sl, sr, sv, ta, te, tet, tr, uk, ur, vi, x-pig-latin, zh, zh-tw",
      "confidence": "high"
    },
    {
      "field": "input_types",
      "url": "https://docs.pirateweather.net/en/latest/changelog/",
      "excerpt": "city/country location requests such as Ottawa,Canada, New%20York,US",
      "confidence": "high"
    },
    {
      "field": "webhooks_supported",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": null,
      "confidence": "medium"
    },
    {
      "field": "sdk_languages",
      "url": "https://github.com/Pirate-Weather/pirate-weather-python",
      "excerpt": "A Python library providing access to the Pirate Weather API, which offers detailed weather information globally as an alternative to the deprecated DarkSky API.",
      "confidence": "high"
    },
    {
      "field": "mcp_server_available",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "Hosted at https://mcp.pirateweather.net/mcp?apikey=<APIKEY> with tools for forecast, alerts, historical weather, and subscription status.",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "http://pirateweather.net/en/latest/",
      "excerpt": "Free tier: 10,000 API calls/month. $2/month subscription: increases limit to 20,000 calls/month.",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://docs.pirateweather.net/en/latest/Blog/indexv01/",
      "excerpt": "donations starting at $2 monthly unlocking increased API limits from 10,000 calls/ month to 20,000 calls per month",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "http://pirateweather.net/en/latest/",
      "excerpt": "Free tier: 10,000 API calls/month",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "API keys are obtained from https://pirateweather.net/ and 'needs to be subscribed to, by logging in and clicking subscribe.'",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": null,
      "confidence": "medium"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "Rate limiting uses monthly quotas specified in response headers: Ratelimit-Limit: Monthly call allowance, Ratelimit-Remaining: Calls left this month, Ratelimit-Reset: Seconds until reset",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "Setup requires up to 20 minutes for propagation. Time Machine API: Historical data (last 10 days via GFS; older via ERA5)",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://pirateweather.net/en/latest/API/",
      "excerpt": "Keep it secret, and do not have it hard-coded into an application's source.",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "https://api.pirateweather.net/forecast/[apikey]/[latitude],[longitude]",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://docs.pirateweather.net/en/latest/changelog/",
      "excerpt": "API Version 2.9.6 (June 10, 2026)",
      "confidence": "high"
    },
    {
      "field": "idempotency_supported",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": null,
      "confidence": "low"
    },
    {
      "field": "rate_limit_requests",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "Free tier supports 10,000 API calls per month.",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "A $2/month subscription increases the limit to 20,000 calls monthly.",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://docs.pirateweather.net/en/latest/Blog/indexv01/",
      "excerpt": "The most recent changelog entry is October 4, 2021, indicating this documentation was current through fall 2021. The service was operational by Spring 2021.",
      "confidence": "medium"
    },
    {
      "field": "notable_customers",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "The service powers several applications including MerrySky (Dark Sky-style forecasts), Breezy Weather, Weathergraph (iOS/Apple Watch graphical forecasts), Pirate Weather for KDE Plasma 6, a Chrome extension for precipitation alerts, and AccessiWeather.",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "Free tier supports 10,000 API calls per month. A $2/month subscription increases the limit to 20,000 calls monthly.",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "Free tier supports 10,000 API calls per month. A $2/month subscription increases the limit to 20,000 calls monthly.",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "Free tier supports 10,000 API calls per month.",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://docs.pirateweather.net/en/latest/",
      "excerpt": "Users can register directly at the platform without sales involvement. The site provides 'Get an API key' and 'Try It Now' options with links to registration and immediate testing capabilities.",
      "confidence": "high"
    },
    {
      "field": "requires_sales_call",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "Keys are obtained by signing up at pirateweather.net and subscribing to the forecast API.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://docs.pirateweather.net/en/latest/changelog/",
      "excerpt": "Added a per API key rate limit of 1 to 4/ per second (depending on the plan) to prevent instabililty.",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://docs.pirateweather.net/en/latest/DataSources/",
      "excerpt": "Smoke data derives exclusively from HRRR model output. This represents a significant constraint, as smoke availability depends entirely on HRRR coverage areas.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "API key-based authentication. Keys are obtained by signing up at pirateweather.net and subscribing to the forecast API. Can be passed via URL path or apikey header.",
      "confidence": "high"
    },
    {
      "field": "api_style",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "REST API designed as a drop-in replacement for the deprecated Dark Sky API, with open-source documentation.",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://pirateweather.net/en/latest/API/",
      "excerpt": "https://api.pirateweather.net/forecast/ (production), https://timemachine.pirateweather.net/forecast/ (historical data)",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "Current version is 'V2.9.6' (reported in response flags)",
      "confidence": "high"
    },
    {
      "field": "error_format",
      "url": "https://docs.pirateweather.net/en/latest/API/",
      "excerpt": "HTTP status codes with JSON payloads: 400: Invalid latitude/longitude, 401: Unauthorized (missing/invalid key), 404: Invalid route, 429: Monthly quota exceeded, 500: Server error (retry recommended)",
      "confidence": "high"
    },
    {
      "field": "rate_limit_requests",
      "url": "https://docs.pirateweather.net/en/latest/Blog/indexv01/",
      "excerpt": "donations starting at $2 monthly unlocking increased API limits from 10,000 calls/ month to 20,000 calls per month",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://docs.pirateweather.net/en/latest/Blog/indexv01/",
      "excerpt": "donations starting at $2 monthly unlocking increased API limits from 10,000 calls/ month to 20,000 calls per month",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://docs.pirateweather.net/en/latest/changelog/",
      "excerpt": "Version 1.0 (Winter 2022): Official V1.0 release. Version 2.4 (November 25, 2024): First Official Open Source Release!",
      "confidence": "medium"
    },
    {
      "field": "notable_customers",
      "url": "https://docs.pirateweather.net/en/latest/ha/",
      "excerpt": "This integration is designed to replace the defunct Dark Sky integration in Home Assistant with a modified and updated, but fully compatible version that relies on the Pirate Weather API instead!",
      "confidence": "high"
    }
  ],
  "fields_not_found": [
    "exact monthly call limits per paid tier beyond the base $2/month supporter level",
    "enterprise plan details",
    "soc2",
    "hipaa",
    "gdpr",
    "iso_27001",
    "pci_dss",
    "deprecation_policy_url",
    "sla_url",
    "data_retention_policy_url",
    "ga_date",
    "idempotency_supported",
    "webhook_signing",
    "webhook_events_url"
  ],
  "source_confidence": "high",
  "last_verified_at": "2026-06-14T00:00:00.000Z",
  "contribute": {
    "note": "This data is crowd-editable. Suggest corrections or leave a review via these endpoints - no auth required, requests are rate-limited, and every submission is reviewed before it goes live. For a field edit, {field} is any key in this response and a citation is required.",
    "endpoints": [
      {
        "action": "review",
        "label": "Leave a review or comment",
        "method": "POST",
        "url": "https://apio.sh/api/feedback/pirate-weather",
        "example_body": {
          "kind": "review",
          "rating": 5,
          "body": "Your experience with this API…"
        }
      },
      {
        "action": "field_edit",
        "label": "Suggest a correction to a field (cite a source)",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/pirate-weather/{field}",
        "example_body": {
          "value": "corrected value",
          "citations": [
            {
              "url": "https://source.example/page",
              "excerpt": "supporting quote"
            }
          ],
          "note": "what changed and why"
        }
      },
      {
        "action": "new_api",
        "label": "Suggest a new API to add",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/api",
        "example_body": {
          "value": {
            "name": "Acme API",
            "website_url": "https://acme.example"
          },
          "citations": [
            {
              "url": "https://acme.example"
            }
          ]
        }
      },
      {
        "action": "token",
        "label": "Optional - raise your rate limit",
        "method": "GET",
        "url": "https://apio.sh/api/feedback/token"
      }
    ]
  }
}