{
  "meta": {
    "category": "weather",
    "label": "Weather",
    "icon": "🌤️",
    "color": "#a78bfa",
    "count": 56,
    "generated": "2026-03-30T23:25:37.747Z",
    "source": "https://apimap.dev"
  },
  "apis": [
    {
      "id": "openweathermap",
      "name": "OpenWeatherMap API",
      "provider": "OpenWeatherMap",
      "category": "weather",
      "description": "Current conditions, hourly & 16-day forecasts, historical data, and weather maps globally.",
      "longDescription": "OpenWeatherMap provides weather data from 40,000+ stations and weather models covering 200,000 cities. Access current conditions, 5-day/3-hour forecasts, hourly 4-day forecasts, 16-day daily forecasts, historical data going back 40 years, and weather alert polygons.",
      "color": "#eb6e4b",
      "tags": [
        "current",
        "forecast",
        "historical",
        "air-quality",
        "alerts"
      ],
      "authType": "api-key",
      "authDescription": "Include your API key as the appid query parameter.",
      "authExample": "?appid=your_api_key",
      "baseUrl": "https://api.openweathermap.org/data/3.0",
      "docsUrl": "https://openweathermap.org/api",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": 1000,
          "unit": "calls",
          "period": "day"
        },
        "tiers": [
          {
            "name": "Free",
            "monthlyCents": 0,
            "included": "1,000 calls/day, 60/min"
          },
          {
            "name": "Startup",
            "monthlyCents": 4000,
            "included": "100,000 calls/day"
          },
          {
            "name": "Developer",
            "monthlyCents": 18000,
            "included": "300,000 calls/day"
          },
          {
            "name": "Professional",
            "monthlyCents": 47000,
            "included": "Unlimited calls"
          }
        ],
        "details": "Free: 1k calls/day. Startup: $40/mo (100k/day). Developer: $180/mo (300k/day). Professional: $470/mo (unlimited). Historical data extra."
      },
      "rateLimit": "60 calls/min (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/onecall",
          "description": "One-call API: current, minutely, hourly, daily, alerts"
        },
        {
          "method": "GET",
          "path": "/onecall/timemachine",
          "description": "Historical weather for a specific date"
        },
        {
          "method": "GET",
          "path": "/onecall/day_summary",
          "description": "Daily weather aggregates for any date"
        },
        {
          "method": "GET",
          "path": "/air_pollution",
          "description": "Current air quality index and pollutants"
        },
        {
          "method": "GET",
          "path": "/air_pollution/forecast",
          "description": "Forecasted air pollution data"
        }
      ],
      "sampleRequest": "curl \"https://api.openweathermap.org/data/3.0/onecall?lat=51.5074&lon=-0.1278&units=metric&exclude=minutely&appid=$OWM_API_KEY\"",
      "sampleResponse": "{\n  \"lat\": 51.5074,\n  \"lon\": -0.1278,\n  \"timezone\": \"Europe/London\",\n  \"current\": {\n    \"temp\": 12.5,\n    \"feels_like\": 10.2,\n    \"humidity\": 78,\n    \"wind_speed\": 5.4,\n    \"weather\": [{\"main\": \"Clouds\", \"description\": \"overcast clouds\"}]\n  },\n  \"daily\": [{\"dt\": 1680825600, \"temp\": {\"day\": 14, \"night\": 9}, \"summary\": \"Overcast clouds\"}]\n}",
      "scoreDepth": 78,
      "scoreLatency": 45,
      "scorePricing": 90,
      "score": 72,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:17:50.638Z",
      "verifiedStatus": 401,
      "latencyMs": 496
    },
    {
      "id": "tomorrow-io",
      "name": "Tomorrow.io API",
      "provider": "Tomorrow.io",
      "category": "weather",
      "description": "Hyper-accurate weather data with minute-level precision, severe event alerts, and 6-hour nowcasts.",
      "longDescription": "Tomorrow.io (formerly ClimaCell) delivers hyperlocal weather intelligence sourced from proprietary IoT sensor networks, radar, satellites, and ML models. Get precipitation-level precision, severe weather alerts, timeline forecasts, and custom weather event triggers for automation.",
      "color": "#0ea5e9",
      "tags": [
        "nowcast",
        "timeline",
        "events",
        "hyperlocal",
        "alerts"
      ],
      "authType": "api-key",
      "authDescription": "Pass your API key in the apikey query parameter or the x-api-key header.",
      "authExample": "x-api-key: your-api-key",
      "baseUrl": "https://api.tomorrow.io/v4",
      "docsUrl": "https://docs.tomorrow.io/reference",
      "hasFreeTier": true,
      "pricing": {
        "model": "pay-as-you-go",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "500 calls/day"
        },
        "tiers": [],
        "details": "Free: 500 calls/day. Developer: $99/mo. Startup: $299/mo. Enterprise: custom pricing for high-volume and custom data layers."
      },
      "rateLimit": "3 requests/s (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/weather/realtime",
          "description": "Real-time weather conditions at a location"
        },
        {
          "method": "GET",
          "path": "/weather/forecast",
          "description": "Hourly/daily forecast up to 6 months"
        },
        {
          "method": "GET",
          "path": "/weather/history/recent",
          "description": "Historical weather (last 6 hours)"
        },
        {
          "method": "POST",
          "path": "/events/search",
          "description": "Search for weather events matching criteria"
        }
      ],
      "sampleRequest": "curl \"https://api.tomorrow.io/v4/weather/realtime?location=42.3478,-71.0466&units=metric\" \\\n  -H \"x-api-key: $TOMORROW_API_KEY\"",
      "sampleResponse": "{\n  \"data\": {\n    \"time\": \"2024-01-18T12:00:00Z\",\n    \"values\": {\n      \"temperature\": 5.2,\n      \"humidity\": 62,\n      \"precipitationIntensity\": 0,\n      \"windSpeed\": 8.1,\n      \"weatherCode\": 1100\n    }\n  },\n  \"location\": {\"lat\": 42.3478, \"lon\": -71.0466, \"name\": \"Boston, MA\"}\n}",
      "scoreDepth": 72,
      "scoreLatency": 45,
      "scorePricing": 75,
      "score": 65,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:17:50.613Z",
      "verifiedStatus": 404,
      "latencyMs": 470
    },
    {
      "id": "weatherapi",
      "name": "WeatherAPI",
      "provider": "WeatherAPI.com",
      "category": "weather",
      "description": "Current weather, 14-day forecasts, historical data, astronomy, and air quality for any location.",
      "longDescription": "WeatherAPI.com provides a simple, affordable weather API covering real-time conditions, 14-day hourly forecasts, 30+ years of historical weather data, marine weather, astronomy data (sunrise/sunset/moonphase), and air quality index. Supports lookup by city name, ZIP code, IP address, UK postcode, and lat/lon coordinates. Covers 2 million+ locations globally with data from 200+ weather stations and models.",
      "color": "#4f86f7",
      "tags": [
        "weather",
        "forecast",
        "historical",
        "air-quality",
        "astronomy",
        "marine",
        "global"
      ],
      "authType": "api-key",
      "authDescription": "Pass your API key as the key query parameter. Register for a free key at weatherapi.com.",
      "authExample": "?key=YOUR_API_KEY",
      "baseUrl": "https://api.weatherapi.com/v1",
      "docsUrl": "https://www.weatherapi.com/docs/",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": 1000000,
          "unit": "calls",
          "period": "month"
        },
        "tiers": [
          {
            "name": "Free",
            "monthlyCents": 0,
            "included": "1M calls/mo, 3-day forecast"
          },
          {
            "name": "Starter",
            "monthlyCents": 400,
            "included": "2M calls/mo, history, astronomy"
          },
          {
            "name": "Standard",
            "monthlyCents": 1200,
            "included": "5M calls/mo, bulk queries"
          },
          {
            "name": "Business",
            "monthlyCents": 19900,
            "included": "Unlimited calls/mo"
          }
        ],
        "details": "Free: 1M calls/mo (3-day forecast, no history). Starter: $4/mo. Standard: $12/mo. Business: $199/mo."
      },
      "rateLimit": "1,000,000 calls/month (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/current.json",
          "description": "Current weather conditions for any location"
        },
        {
          "method": "GET",
          "path": "/forecast.json",
          "description": "Up to 14-day hourly and daily forecast"
        },
        {
          "method": "GET",
          "path": "/history.json",
          "description": "Historical weather data from 2010 onward (paid plans)"
        },
        {
          "method": "GET",
          "path": "/search.json",
          "description": "Location autocomplete for search boxes"
        },
        {
          "method": "GET",
          "path": "/astronomy.json",
          "description": "Sunrise, sunset, moonrise, moonset, and moon phase"
        },
        {
          "method": "GET",
          "path": "/marine.json",
          "description": "Marine/surf conditions including tide and swell"
        }
      ],
      "sampleRequest": "curl \"https://api.weatherapi.com/v1/forecast.json?key=$WEATHER_API_KEY&q=London&days=3&aqi=yes\"",
      "sampleResponse": "{\n  \"location\": { \"name\": \"London\", \"country\": \"United Kingdom\", \"lat\": 51.52, \"lon\": -0.11 },\n  \"current\": {\n    \"temp_c\": 12.0,\n    \"condition\": { \"text\": \"Partly cloudy\" },\n    \"wind_mph\": 9.4,\n    \"humidity\": 76\n  },\n  \"forecast\": {\n    \"forecastday\": [{ \"date\": \"2024-03-15\", \"day\": { \"maxtemp_c\": 14.0, \"mintemp_c\": 8.0 } }]\n  }\n}",
      "scoreDepth": 86,
      "scoreLatency": 38,
      "scorePricing": 90,
      "score": 73,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:17:53.711Z",
      "verifiedStatus": 401,
      "latencyMs": 721
    },
    {
      "id": "climate-fieldview-platform-apis",
      "name": "Climate FieldView Platform APIs",
      "provider": "Climate FieldView Platform APIs",
      "category": "weather",
      "description": "Last Modified: Wed Jan  4 12:47:29 UTC 2023\n\nAll endpoints are only accessible via HTTPS.\n\n All API endpoints are located at https://platform.climate.com (e.g.\nhttps://platform.climate.com/v4/fields).\n\n The authorization token endpoint is located at\n`https://api.climate.com/api/oauth/toke",
      "longDescription": "Last Modified: Wed Jan  4 12:47:29 UTC 2023\n\nAll endpoints are only accessible via HTTPS.\n\n All API endpoints are located at https://platform.climate.com (e.g.\nhttps://platform.climate.com/v4/fields).\n\n The authorization token endpoint is located at\n`https://api.climate.com/api/oauth/toke",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "climate"
      ],
      "authType": "api-key",
      "authDescription": "API key in the request header (X-Api-Key)",
      "authExample": "X-Api-Key: YOUR_API_KEY",
      "baseUrl": "https://platform.climate.com/",
      "docsUrl": "https://platform.climate.com/",
      "hasFreeTier": false,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Paid agtech platform. Climate FieldView (Bayer) farmer data API; pricing on request."
      },
      "rateLimit": "Based on contract",
      "endpoints": [
        {
          "method": "POST",
          "path": "/v4/boundaries",
          "description": "Upload a boundary"
        },
        {
          "method": "POST",
          "path": "/v4/boundaries/query",
          "description": "Retrieve Boundaries in batch"
        },
        {
          "method": "GET",
          "path": "/v4/boundaries/{boundaryId}",
          "description": "Retrieve a Boundary by ID"
        },
        {
          "method": "POST",
          "path": "/v4/exports",
          "description": "Initiate a new export request."
        },
        {
          "method": "GET",
          "path": "/v4/exports/{exportId}/contents",
          "description": "Retrieve the binary contents of a processed export request."
        },
        {
          "method": "GET",
          "path": "/v4/exports/{exportId}/status",
          "description": "Retrieve the status of an Export."
        },
        {
          "method": "GET",
          "path": "/v4/farmOrganizations/{farmOrganizationType}/{farmOrganizationId}",
          "description": "Retrieve a specific farm organization by organization type and ID"
        },
        {
          "method": "GET",
          "path": "/v4/fields",
          "description": "Retrieve list of Fields"
        }
      ],
      "sampleRequest": "curl -X GET 'https://platform.climate.com//v4/boundaries' \\\n  -H 'X-Api-Key: YOUR_API_KEY'",
      "sampleResponse": "{}",
      "scoreDepth": 72,
      "scoreLatency": 30,
      "scorePricing": 28,
      "score": 46,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:17:57.700Z",
      "verifiedStatus": 403,
      "latencyMs": 1543
    },
    {
      "id": "groundhog-day",
      "name": "Groundhog Day API",
      "provider": "Groundhog Day",
      "category": "weather",
      "description": "This API returns all of North America’s prognosticating animals and their yearly weather predictions.",
      "longDescription": "This API returns all of North America’s prognosticating animals and their yearly weather predictions.",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "groundhog-day"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://virtserver.swaggerhub.com/pcraig3/groundhog-day-api/1.2.1",
      "docsUrl": "https://groundhog-day.com/api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/v1",
          "description": "Root"
        },
        {
          "method": "GET",
          "path": "/api/v1/groundhogs",
          "description": "Get all groundhogs"
        },
        {
          "method": "GET",
          "path": "/api/v1/groundhogs/{slug}",
          "description": "Get a groundhog by slug"
        },
        {
          "method": "GET",
          "path": "/api/v1/predictions",
          "description": "Get predictions for a given year"
        },
        {
          "method": "GET",
          "path": "/api/v1/spec",
          "description": "Get JSON schema"
        }
      ],
      "sampleRequest": "curl -X GET 'https://virtserver.swaggerhub.com/pcraig3/groundhog-day-api/1.2.1/api/v1' \\\n  -H '# No auth required'",
      "sampleResponse": "{}",
      "scoreDepth": 57,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 37,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:03.645Z",
      "verifiedStatus": 404,
      "latencyMs": 2880
    },
    {
      "id": "odweather",
      "name": "ODWeather",
      "provider": "ODWeather",
      "category": "weather",
      "description": "This is the api to access the ODWeather API information",
      "longDescription": "This is the api to access the ODWeather API information",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "oceandrivers"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://api.oceandrivers.com/",
      "docsUrl": "https://api.oceandrivers.com/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/v1.0/compareStation/{stationName}/",
          "description": "Get forecast and realtime information for known points<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getAemetStation/{stationName}/{period}/",
          "description": "Get data from the aemet stations<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getEasyWind/{easywindId}/",
          "description": "Get data from the easywind weather stations<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getEventStations/{eventId}/",
          "description": "Get stations in an event<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getForecastPoints/{yatchclubid}/language/{language}",
          "description": "Get forecast points of a yatchclub<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getForecastTimeSeries/{latitude}/{longitude}/",
          "description": "Get timeseries forecast information<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getForecastTimeSeriesWrf/{latitude}/{longitude}/",
          "description": "Get timeseries forecast information<br/>None"
        },
        {
          "method": "GET",
          "path": "/v1.0/getSocibWeatherStation/{stationName}/{period}/",
          "description": "Get data from the socib bahia de palma buoy<br/>None"
        }
      ],
      "sampleRequest": "curl -X GET 'https://api.oceandrivers.com//v1.0/compareStation/{stationName}/' \\\n  -H '# No auth required'",
      "sampleResponse": "{}",
      "scoreDepth": 61,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 45,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:07.651Z",
      "verifiedStatus": 200,
      "latencyMs": 2389
    },
    {
      "id": "openuv-global-real-time-uv-index-forecas",
      "name": "OpenUV - Global Real-Time UV Index Forecast API",
      "provider": "OpenUV - Global Real-Time UV Index Forecast",
      "category": "weather",
      "description": "The missing minimalistic JSON real-time UV Index API for awesome Developers, Innovators and Smart Home Enthusiasts",
      "longDescription": "The missing minimalistic JSON real-time UV Index API for awesome Developers, Innovators and Smart Home Enthusiasts",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "openuv"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://api.openuv.io/api/{version}",
      "docsUrl": "https://api.openuv.io/api/{version}",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/forecast",
          "description": "Get hourly UV Index Forecast by location and date. Optional altitude, ozone leve"
        },
        {
          "method": "GET",
          "path": "/protection",
          "description": "Get daily protection time by location, UV Index from and UV Index to with 10 min"
        },
        {
          "method": "GET",
          "path": "/uv",
          "description": "Get real-time UV Index by location. Optional altitude, ozone level and datetime "
        }
      ],
      "sampleRequest": "curl -X GET 'https://api.openuv.io/api/{version}/forecast' \\\n  -H '# No auth required'",
      "sampleResponse": "{}",
      "scoreDepth": 45,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 32,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:07.475Z",
      "verifiedStatus": 404,
      "latencyMs": 2143
    },
    {
      "id": "storm-glass-marine-weather",
      "name": "Storm Glass Marine Weather",
      "provider": "Storm Glass Marine Weather",
      "category": "weather",
      "description": "Global marine weather data from multiple sources in one single API with hourly resolution. Get your API key by visiting the Storm Glass web site.",
      "longDescription": "Global marine weather data from multiple sources in one single API with hourly resolution. Get your API key by visiting the Storm Glass web site.",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "stormglass"
      ],
      "authType": "api-key",
      "authDescription": "API key in the request header (Authentication-Token)",
      "authExample": "Authentication-Token: YOUR_API_KEY",
      "baseUrl": "https://api.stormglass.io/",
      "docsUrl": "https://api.stormglass.io/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Marine and terrestrial weather API. Free: 10 points/day. Hobbyist $9/mo (200 points/day). Developer $59/mo (unlimited points). Enterprise custom."
      },
      "rateLimit": "10 points/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/forecast",
          "description": "Get hourly forecasts by coordinates"
        }
      ],
      "sampleRequest": "curl -X GET 'https://api.stormglass.io//forecast' \\\n  -H 'Authentication-Token: YOUR_API_KEY'",
      "sampleResponse": "{}",
      "scoreDepth": 28,
      "scoreLatency": 10,
      "scorePricing": 28,
      "score": 23,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:18.073Z",
      "verifiedStatus": 404,
      "latencyMs": 5786
    },
    {
      "id": "weatherbit-interactive-swagger-ui-docume",
      "name": "Weatherbit - Interactive Swagger UI Documentation",
      "provider": "Weatherbit - Interactive Swagger UI Documentation",
      "category": "weather",
      "description": "This an interactive version of the documentation for the Weatherbit API.  The base URL for the API is http://api.weatherbit.io/v2.0/ or https://api.weatherbit.io/v2.0/. Below is the Swagger UI documentation for the API. All API requ",
      "longDescription": "This an interactive version of the documentation for the Weatherbit API.  The base URL for the API is http://api.weatherbit.io/v2.0/ or https://api.weatherbit.io/v2.0/. Below is the Swagger UI documentation for the API. All API requ",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "weatherbit"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://api.weatherbit.io/v2.0",
      "docsUrl": "https://api.weatherbit.io/v2.0",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/alerts?lat={lat}&lon={lon}",
          "description": "Returns severe weather alerts issued by meteorological agencies - Given a lat/lon."
        },
        {
          "method": "GET",
          "path": "/bulk/files/{file}",
          "description": "Download pre-generated bulk datasets"
        },
        {
          "method": "GET",
          "path": "/current/airquality?city={city}&country={country}",
          "description": "Returns current air quality conditions - Given City and/or State, Country."
        },
        {
          "method": "GET",
          "path": "/current/airquality?city_id={city_id}",
          "description": "Returns current air quality conditions - Given a City ID."
        },
        {
          "method": "GET",
          "path": "/current/airquality?lat={lat}&lon={lon}",
          "description": "Returns current air quality conditions - Given a lat/lon."
        },
        {
          "method": "GET",
          "path": "/current/airquality?postal_code={postal_code}",
          "description": "Returns current air quality conditions - Given a Postal Code."
        },
        {
          "method": "GET",
          "path": "/current?cities={cities}",
          "description": "Returns a group of observations given a list of cities"
        },
        {
          "method": "GET",
          "path": "/current?city={city}&country={country}",
          "description": "Returns a Current Observation - Given City and/or State, Country."
        }
      ],
      "sampleRequest": "curl -X GET 'https://api.weatherbit.io/v2.0/alerts?lat={lat}&lon={lon}' \\\n  -H '# No auth required'",
      "sampleResponse": "{}",
      "scoreDepth": 72,
      "scoreLatency": 30,
      "scorePricing": 28,
      "score": 46,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:21.503Z",
      "verifiedStatus": 400,
      "latencyMs": 1490
    },
    {
      "id": "dflight",
      "name": "DFlight API",
      "provider": "DFlight",
      "category": "weather",
      "description": "DFlight API supplies the up-to-date information needed for compliance with UAV preflight assessment requirements. Separate endpoints are available for each of the following information categories:\n- Airspace\n- Weather\n- Temporary Flight Restrictions\n- Special",
      "longDescription": "DFlight API supplies the up-to-date information needed for compliance with UAV preflight assessment requirements. Separate endpoints are available for each of the following information categories:\n- Airspace\n- Weather\n- Temporary Flight Restrictions\n- Special",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "ljaero"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://dflight-api.ljaero.com/",
      "docsUrl": "https://dflight-api.ljaero.com/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "POST",
          "path": "/us/v1/aerodromes/distance-query",
          "description": "Retrieve aerodromes within given distance of location."
        },
        {
          "method": "POST",
          "path": "/us/v1/aerodromes/polygon-query",
          "description": "Retrieve aerodromes located within given area."
        },
        {
          "method": "POST",
          "path": "/us/v1/aerodromes/route-query",
          "description": "Retrieve aerodromes found along a route."
        },
        {
          "method": "POST",
          "path": "/us/v1/airspace/distance-query",
          "description": "Retrieve all requested types of airspace located within given distance of location."
        },
        {
          "method": "POST",
          "path": "/us/v1/airspace/polygon-query",
          "description": "Retrieve all requested types of airspace located within given GeoJSON Polygon."
        },
        {
          "method": "POST",
          "path": "/us/v1/airspace/route-query",
          "description": "Retrieve all requested types of airspace traversed by route."
        },
        {
          "method": "POST",
          "path": "/us/v1/obstacles/distance-query",
          "description": "Retrieve obstacles within given distance of location."
        },
        {
          "method": "POST",
          "path": "/us/v1/obstacles/polygon-query",
          "description": "Retrieve obstacles located within given area."
        }
      ],
      "sampleRequest": "curl -X GET 'https://dflight-api.ljaero.com//us/v1/aerodromes/distance-query' \\\n  -H '# No auth required'",
      "sampleResponse": "{}",
      "scoreDepth": 72,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 43,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:37.638Z",
      "verifiedStatus": 200,
      "latencyMs": 7916
    },
    {
      "id": "cfb-v3-scores",
      "name": "CFB v3 Scores",
      "provider": "CFB v3 Scores",
      "category": "weather",
      "description": "CFB schedules, scores, team stats, odds, weather, and news API.",
      "longDescription": "CFB schedules, scores, team stats, odds, weather, and news API.",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "sportsdata"
      ],
      "authType": "api-key",
      "authDescription": "API key in the request header (Ocp-Apim-Subscription-Key)",
      "authExample": "Ocp-Apim-Subscription-Key: YOUR_API_KEY",
      "baseUrl": "http://azure-api.sportsdata.io/v3/cfb/scores",
      "docsUrl": "http://azure-api.sportsdata.io/v3/cfb/scores",
      "hasFreeTier": false,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Paid sports data API. SportsData.io CFB plans from $9/mo (trial) to enterprise."
      },
      "rateLimit": "Based on plan",
      "endpoints": [
        {
          "method": "GET",
          "path": "/{format}/AreAnyGamesInProgress",
          "description": "Are Games In Progress"
        },
        {
          "method": "GET",
          "path": "/{format}/CurrentSeason",
          "description": "Current Season"
        },
        {
          "method": "GET",
          "path": "/{format}/CurrentSeasonDetails",
          "description": "Current Season Details"
        },
        {
          "method": "GET",
          "path": "/{format}/CurrentSeasonType",
          "description": "Current SeasonType"
        },
        {
          "method": "GET",
          "path": "/{format}/CurrentWeek",
          "description": "Current Week"
        },
        {
          "method": "GET",
          "path": "/{format}/Games/{season}",
          "description": "Schedules"
        },
        {
          "method": "GET",
          "path": "/{format}/GamesByDate/{date}",
          "description": "Games by Date"
        },
        {
          "method": "GET",
          "path": "/{format}/GamesByWeek/{season}/{week}",
          "description": "Games by Week"
        }
      ],
      "sampleRequest": "curl -X GET 'http://azure-api.sportsdata.io/v3/cfb/scores/{format}/AreAnyGamesInProgress' \\\n  -H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY'",
      "sampleResponse": "{}",
      "scoreDepth": 61,
      "scoreLatency": 10,
      "scorePricing": 28,
      "score": 36,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:45.353Z",
      "verifiedStatus": 404,
      "latencyMs": 7602
    },
    {
      "id": "visual-crossing-weather",
      "name": "Visual Crossing Weather API",
      "provider": "Visual Crossing Weather",
      "category": "weather",
      "description": "Weather Forecast and Historical Weather Data via RESTful API.",
      "longDescription": "Weather Forecast and Historical Weather Data via RESTful API.",
      "color": "#0ea5e9",
      "tags": [
        "weather",
        "visualcrossing"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://weather.visualcrossing.com",
      "docsUrl": "https://www.visualcrossing.com/weather-api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/VisualCrossingWebServices/rest/services/timeline/{location}",
          "description": "Historical and Forecast Weather API"
        },
        {
          "method": "GET",
          "path": "/VisualCrossingWebServices/rest/services/timeline/{location}/{startdate}",
          "description": "Historical and Forecast Weather API"
        },
        {
          "method": "GET",
          "path": "/VisualCrossingWebServices/rest/services/timeline/{location}/{startdate}/{enddate}",
          "description": "Historical and Forecast Weather API"
        },
        {
          "method": "GET",
          "path": "/VisualCrossingWebServices/rest/services/weatherdata/forecast",
          "description": "Weather Forecast API"
        },
        {
          "method": "GET",
          "path": "/VisualCrossingWebServices/rest/services/weatherdata/history",
          "description": "Retrieves hourly or daily historical weather records."
        }
      ],
      "sampleRequest": "curl -X GET 'https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/{location}' \\\n  -H '# No auth required'",
      "sampleResponse": "{}",
      "scoreDepth": 53,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 36,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:18:45.875Z",
      "verifiedStatus": 200,
      "latencyMs": 6983
    },
    {
      "id": "breezometer-pollen",
      "name": "BreezoMeter Pollen API",
      "provider": "BreezoMeter Pollen",
      "category": "weather",
      "description": "Daily Forecast pollen conditions data for a specific location",
      "longDescription": "Daily Forecast pollen conditions data for a specific location",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://docs.breezometer.com",
      "docsUrl": "https://docs.breezometer.com/api-documentation/pollen-api/v2/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "BreezoMeter environmental data (pollen, air quality, weather). Free trial available. Starter from $99/mo. Pro $499/mo. Enterprise custom."
      },
      "rateLimit": "Varies by plan",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://docs.breezometer.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.265Z",
      "verifiedStatus": 200,
      "latencyMs": 2007
    },
    {
      "id": "carbon-interface",
      "name": "Carbon Interface API",
      "provider": "Carbon Interface",
      "category": "weather",
      "description": "API to calculate carbon (C02) emissions estimates for common C02 emitting activities",
      "longDescription": "API to calculate carbon (C02) emissions estimates for common C02 emitting activities",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://docs.carboninterface.com",
      "docsUrl": "https://docs.carboninterface.com/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Carbon emission calculations API. Free: 100 requests/month. Basic $50/mo (2,000 req/mo). Pro $200/mo (10K req/mo). Scale $800/mo. Enterprise custom."
      },
      "rateLimit": "100 req/month (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://docs.carboninterface.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 76,
      "scorePricing": 28,
      "score": 38,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:07.228Z",
      "verifiedStatus": 200,
      "latencyMs": 868
    },
    {
      "id": "climatiq",
      "name": "Climatiq API",
      "provider": "Climatiq",
      "category": "weather",
      "description": "Calculate the environmental footprint created by a broad range of emission-generating activities",
      "longDescription": "Calculate the environmental footprint created by a broad range of emission-generating activities",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://docs.climatiq.io",
      "docsUrl": "https://docs.climatiq.io",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Carbon emissions data API. Free: 1K requests/month (trial). Starter $49/mo (10K req). Growth $149/mo (50K req). Scale $499/mo. Enterprise custom."
      },
      "rateLimit": "1K req/month (free trial)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://docs.climatiq.io'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:10.344Z",
      "verifiedStatus": 200,
      "latencyMs": 3951
    },
    {
      "id": "cloverly",
      "name": "Cloverly API",
      "provider": "Cloverly",
      "category": "weather",
      "description": "API calculates the impact of common carbon-intensive activities in real time",
      "longDescription": "API calculates the impact of common carbon-intensive activities in real time",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.cloverly.com",
      "docsUrl": "https://www.cloverly.com/carbon-offset-documentation",
      "hasFreeTier": false,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Pay-as-you-go. Carbon offset API; pricing per metric ton of CO2 offset."
      },
      "rateLimit": "Not officially published",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.cloverly.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.580Z",
      "verifiedStatus": 200,
      "latencyMs": 2134
    },
    {
      "id": "co2-offset",
      "name": "CO2 Offset API",
      "provider": "CO2 Offset",
      "category": "weather",
      "description": "API calculates and validates the carbon footprint",
      "longDescription": "API calculates and validates the carbon footprint",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://co2offset.io",
      "docsUrl": "https://co2offset.io/api.html",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://co2offset.io'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 40,
      "scorePricing": 90,
      "score": 45,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.956Z",
      "verifiedStatus": 200,
      "latencyMs": 2501
    },
    {
      "id": "danish-data-service-energi",
      "name": "Danish data service Energi API",
      "provider": "Danish data service Energi",
      "category": "weather",
      "description": "Open energy data from Energinet to society",
      "longDescription": "Open energy data from Energinet to society",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://www.energidataservice.dk",
      "docsUrl": "https://www.energidataservice.dk/",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.energidataservice.dk'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 30,
      "scorePricing": 90,
      "score": 42,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.426Z",
      "verifiedStatus": 404,
      "latencyMs": 1814
    },
    {
      "id": "luchtmeetnet",
      "name": "Luchtmeetnet API",
      "provider": "Luchtmeetnet",
      "category": "weather",
      "description": "Predicted and actual air quality components for The Netherlands (RIVM)",
      "longDescription": "Predicted and actual air quality components for The Netherlands (RIVM)",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://api-docs.luchtmeetnet.nl",
      "docsUrl": "https://api-docs.luchtmeetnet.nl/",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://api-docs.luchtmeetnet.nl'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 60,
      "scorePricing": 90,
      "score": 52,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.454Z",
      "verifiedStatus": 200,
      "latencyMs": 1807
    },
    {
      "id": "pm2-5-open-data-portal",
      "name": "PM2.5 Open Data Portal API",
      "provider": "PM2.5 Open Data Portal",
      "category": "weather",
      "description": "The PM2.5 Open Data Portal offers the access to PM2.5 Open Data for LASS/EDIMAX AirBox and EPA devices.\r\n\tThe API provides both in descriptive and diagnostic data. The data visualization tools such as sensor dashboards and professional diagrams\r\n\tare also available to access through this site. We welcome everyone to join the Micro PM2.5 Self-sensing Project!",
      "longDescription": "The PM2.5 Open Data Portal offers the access to PM2.5 Open Data for LASS/EDIMAX AirBox and EPA devices.\r\n\tThe API provides both in descriptive and diagnostic data. The data visualization tools such as sensor dashboards and professional diagrams\r\n\tare also available to access through this site. We welcome everyone to join the Micro PM2.5 Self-sensing Project!",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://pm25.lass-net.org",
      "docsUrl": "https://pm25.lass-net.org/#apis",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://pm25.lass-net.org'",
      "sampleResponse": "{}",
      "scoreDepth": 31,
      "scoreLatency": 60,
      "scorePricing": 90,
      "score": 57,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.658Z",
      "verifiedStatus": 200,
      "latencyMs": 1972
    },
    {
      "id": "pvwatts",
      "name": "PVWatts API",
      "provider": "PVWatts",
      "category": "weather",
      "description": "Energy production photovoltaic (PV) energy systems",
      "longDescription": "Energy production photovoltaic (PV) energy systems",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://developer.nrel.gov",
      "docsUrl": "https://developer.nrel.gov/docs/solar/pvwatts/v6/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — PVWatts API by NREL (National Renewable Energy Laboratory). Estimates solar photovoltaic energy production. No cost, requires API key."
      },
      "rateLimit": "1K req/hour (with API key)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://developer.nrel.gov'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:09.571Z",
      "verifiedStatus": 200,
      "latencyMs": 2852
    },
    {
      "id": "srp-energy",
      "name": "Srp Energy API",
      "provider": "Srp Energy",
      "category": "weather",
      "description": "Hourly usage energy report for Srp customers",
      "longDescription": "Hourly usage energy report for Srp customers",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://srpenergy-api-client-python.readthedocs.io",
      "docsUrl": "https://srpenergy-api-client-python.readthedocs.io/en/latest/api.html",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free with SRP account. Salt River Project utility energy usage API."
      },
      "rateLimit": "Not officially published",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://srpenergy-api-client-python.readthedocs.io'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 32,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.882Z",
      "verifiedStatus": 200,
      "latencyMs": 1994
    },
    {
      "id": "uk-carbon-intensity",
      "name": "UK Carbon Intensity API",
      "provider": "UK Carbon Intensity",
      "category": "weather",
      "description": "The Official Carbon Intensity API for Great Britain developed by National Grid",
      "longDescription": "The Official Carbon Intensity API for Great Britain developed by National Grid",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://carbon-intensity.github.io",
      "docsUrl": "https://carbon-intensity.github.io/api-definitions/#carbon-intensity-api-v1-0-0",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://carbon-intensity.github.io'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 30,
      "scorePricing": 90,
      "score": 43,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:08.214Z",
      "verifiedStatus": 404,
      "latencyMs": 1231
    },
    {
      "id": "weatherstack",
      "name": "Weatherstack API",
      "provider": "Weatherstack",
      "category": "weather",
      "description": "Real-Time & Historical World Weather Data API",
      "longDescription": "Real-Time & Historical World Weather Data API",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://weatherstack.com",
      "docsUrl": "https://weatherstack.com/?utm_source=Github&utm_medium=Referral&utm_campaign=Public-apis-repo-Best-sellers",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 1,000 requests/month (current weather, HTTP only). Standard $9.99/mo (50K req/mo, historical). Professional $39.99/mo. Business $89.99/mo. Enterprise custom."
      },
      "rateLimit": "1,000 req/month (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://weatherstack.com'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 32,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:46.668Z",
      "verifiedStatus": 200,
      "latencyMs": 1539
    },
    {
      "id": "aemet",
      "name": "Aemet API",
      "provider": "Aemet",
      "category": "weather",
      "description": "Weather and forecast data from Spain",
      "longDescription": "Weather and forecast data from Spain",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://opendata.aemet.es",
      "docsUrl": "https://opendata.aemet.es/centrodedescargas/inicio",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free with API key. Spanish State Meteorological Agency open data."
      },
      "rateLimit": "Not officially published",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://opendata.aemet.es'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 0,
      "scorePricing": 28,
      "score": 14,
      "reachable": false,
      "verifiedAt": "2026-03-29T20:19:54.766Z",
      "verifiedStatus": null,
      "latencyMs": null
    },
    {
      "id": "aqicn",
      "name": "AQICN API",
      "provider": "AQICN",
      "category": "weather",
      "description": "Air Quality Index Data for over 1000 cities",
      "longDescription": "Air Quality Index Data for over 1000 cities",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://aqicn.org",
      "docsUrl": "https://aqicn.org/api/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Air quality index data (AQICN/World AQI). Free with API token for non-commercial. Commercial licensing required for business use. Contact for enterprise pricing."
      },
      "rateLimit": "1K req/hour (with token)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://aqicn.org'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 20,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:50.076Z",
      "verifiedStatus": 200,
      "latencyMs": 4501
    },
    {
      "id": "aviationweather",
      "name": "AviationWeather API",
      "provider": "AviationWeather",
      "category": "weather",
      "description": "NOAA aviation weather forecasts and observations",
      "longDescription": "NOAA aviation weather forecasts and observations",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://www.aviationweather.gov",
      "docsUrl": "https://www.aviationweather.gov/dataserver",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.aviationweather.gov'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 40,
      "scorePricing": 90,
      "score": 45,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:48.881Z",
      "verifiedStatus": 200,
      "latencyMs": 3251
    },
    {
      "id": "euskalmet",
      "name": "Euskalmet API",
      "provider": "Euskalmet",
      "category": "weather",
      "description": "Meteorological data of the Basque Country",
      "longDescription": "Meteorological data of the Basque Country",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://opendata.euskadi.eus",
      "docsUrl": "https://opendata.euskadi.eus/api-euskalmet/-/api-de-euskalmet/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free and open. Basque Meteorology Agency open weather data."
      },
      "rateLimit": "Not officially published",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://opendata.euskadi.eus'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 20,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:50.193Z",
      "verifiedStatus": 200,
      "latencyMs": 4490
    },
    {
      "id": "hg-weather",
      "name": "HG Weather API",
      "provider": "HG Weather",
      "category": "weather",
      "description": "Provides weather forecast data for cities in Brazil",
      "longDescription": "Provides weather forecast data for cities in Brazil",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://hgbrasil.com",
      "docsUrl": "https://hgbrasil.com/status/weather",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Brazilian weather API (HG Brasil). Free: 10 requests/day. Basic R$29.90/mo (500 req/day). Starter R$49.90/mo (2K req/day). Pro R$149.90/mo. Brazil-focused."
      },
      "rateLimit": "10 req/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://hgbrasil.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 76,
      "scorePricing": 28,
      "score": 38,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:46.684Z",
      "verifiedStatus": 200,
      "latencyMs": 927
    },
    {
      "id": "hong-kong-obervatory",
      "name": "Hong Kong Obervatory API",
      "provider": "Hong Kong Obervatory",
      "category": "weather",
      "description": "Provide weather information, earthquake information, and climate data",
      "longDescription": "Provide weather information, earthquake information, and climate data",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://www.hko.gov.hk",
      "docsUrl": "https://www.hko.gov.hk/en/abouthko/opendata_intro.htm",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.hko.gov.hk'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 20,
      "scorePricing": 90,
      "score": 40,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:50.316Z",
      "verifiedStatus": 200,
      "latencyMs": 4555
    },
    {
      "id": "oikolab",
      "name": "Oikolab API",
      "provider": "Oikolab",
      "category": "weather",
      "description": "70+ years of global, hourly historical and forecast weather data from NOAA and ECMWF",
      "longDescription": "70+ years of global, hourly historical and forecast weather data from NOAA and ECMWF",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://docs.oikolab.com",
      "docsUrl": "https://docs.oikolab.com",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Weather and climate data API. Free: 100 requests/month. Standard $29/mo (1K req/mo). Business $99/mo (5K req/mo). Enterprise custom. Historical reanalysis data."
      },
      "rateLimit": "100 req/month (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://docs.oikolab.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 34,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:47.489Z",
      "verifiedStatus": 200,
      "latencyMs": 1698
    },
    {
      "id": "open-meteo",
      "name": "Open-Meteo API",
      "provider": "Open-Meteo",
      "category": "weather",
      "description": "Global weather forecast API for non-commercial use",
      "longDescription": "Global weather forecast API for non-commercial use",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://open-meteo.com",
      "docsUrl": "https://open-meteo.com/",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://open-meteo.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 60,
      "scorePricing": 90,
      "score": 52,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:47.477Z",
      "verifiedStatus": 200,
      "latencyMs": 1686
    },
    {
      "id": "opensensemap",
      "name": "openSenseMap API",
      "provider": "openSenseMap",
      "category": "weather",
      "description": "Data from Personal Weather Stations called senseBoxes",
      "longDescription": "Data from Personal Weather Stations called senseBoxes",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://api.opensensemap.org",
      "docsUrl": "https://api.opensensemap.org/",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://api.opensensemap.org'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 20,
      "scorePricing": 90,
      "score": 40,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:49.967Z",
      "verifiedStatus": 200,
      "latencyMs": 4075
    },
    {
      "id": "rainviewer",
      "name": "RainViewer API",
      "provider": "RainViewer",
      "category": "weather",
      "description": "Radar data collected from different websites across the Internet",
      "longDescription": "Radar data collected from different websites across the Internet",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://www.rainviewer.com",
      "docsUrl": "https://www.rainviewer.com/api.html",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.rainviewer.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 60,
      "scorePricing": 90,
      "score": 52,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:47.707Z",
      "verifiedStatus": 200,
      "latencyMs": 1806
    },
    {
      "id": "tomorrow",
      "name": "Tomorrow API",
      "provider": "Tomorrow",
      "category": "weather",
      "description": "Weather API Powered by Proprietary Technology",
      "longDescription": "Weather API Powered by Proprietary Technology",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://docs.tomorrow.io",
      "docsUrl": "https://docs.tomorrow.io",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Tomorrow.io weather API (formerly ClimaCell). Free: 500 calls/day. Developer $19/mo (25K calls/day). Production plans from $179/mo. Enterprise custom."
      },
      "rateLimit": "500 calls/day (free) · 25 calls/s (paid)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://docs.tomorrow.io'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 20,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:50.261Z",
      "verifiedStatus": 200,
      "latencyMs": 4303
    },
    {
      "id": "visual-crossing",
      "name": "Visual Crossing API",
      "provider": "Visual Crossing",
      "category": "weather",
      "description": "Global historical and weather forecast data",
      "longDescription": "Global historical and weather forecast data",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.visualcrossing.com",
      "docsUrl": "https://www.visualcrossing.com/weather-api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 1,000 records/day (current, 15-day forecast, historical). Basic $35/mo (50K records). Standard $175/mo (250K records). Pro $575/mo. Enterprise custom."
      },
      "rateLimit": "1,000 records/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.visualcrossing.com'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 32,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:48.116Z",
      "verifiedStatus": 200,
      "latencyMs": 1680
    },
    {
      "id": "iqair",
      "name": "IQAir API",
      "provider": "IQAir",
      "category": "weather",
      "description": "Air quality and weather data",
      "longDescription": "Air quality and weather data",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.iqair.com",
      "docsUrl": "https://www.iqair.com/air-pollution-data-api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "AirVisual API for air quality data. Free: 10K API calls/month (community). Startup $19/mo (30K calls). Business $75/mo (100K calls). Enterprise custom."
      },
      "rateLimit": "10K calls/month (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.iqair.com'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 38,
      "scorePricing": 28,
      "score": 25,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:52.641Z",
      "verifiedStatus": 429,
      "latencyMs": 715
    },
    {
      "id": "openaq",
      "name": "OpenAQ API",
      "provider": "OpenAQ",
      "category": "weather",
      "description": "Open air quality data",
      "longDescription": "Open air quality data",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for auth details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://docs.openaq.org",
      "docsUrl": "https://docs.openaq.org/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — OpenAQ is an open-source air quality database. API access is completely free. Funded by grants. Aggregates air quality data from governments worldwide."
      },
      "rateLimit": "10 req/s (no key) · 60 req/s (with API key)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://docs.openaq.org'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 76,
      "scorePricing": 28,
      "score": 37,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:19:52.570Z",
      "verifiedStatus": 200,
      "latencyMs": 549
    },
    {
      "id": "meteorologisk-institutt",
      "name": "Meteorologisk Institutt API",
      "provider": "Meteorologisk Institutt",
      "category": "weather",
      "description": "Weather and climate data",
      "longDescription": "Weather and climate data",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "none",
      "authDescription": "No authentication required",
      "authExample": "# No auth required",
      "baseUrl": "https://api.met.no",
      "docsUrl": "https://api.met.no/weatherapi/documentation",
      "hasFreeTier": true,
      "pricing": {
        "model": "freemium",
        "startingCentsPerMonth": 0,
        "freeQuota": {
          "amount": null,
          "unit": null,
          "period": "month",
          "note": "Completely free"
        },
        "tiers": [],
        "details": "Free — open public API, no authentication required."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://api.met.no'",
      "sampleResponse": "{}",
      "scoreDepth": 14,
      "scoreLatency": 40,
      "scorePricing": 90,
      "score": 45,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:09.895Z",
      "verifiedStatus": 200,
      "latencyMs": 2196
    },
    {
      "id": "digitalocean-spaces",
      "name": "DigitalOcean Spaces API",
      "provider": "DigitalOcean Spaces",
      "category": "weather",
      "description": "DigitalOcean Spaces API. See documentation for full details.",
      "longDescription": "DigitalOcean Spaces API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.digitalocean.com",
      "docsUrl": "https://www.digitalocean.com/products/spaces",
      "hasFreeTier": false,
      "pricing": {
        "model": "pay-as-you-go",
        "startingCentsPerMonth": 400,
        "freeQuota": {
          "amount": 20000,
          "unit": "credit-cents",
          "period": "signup",
          "note": "$200 credit for 60 days (new users)"
        },
        "tiers": [
          {
            "name": "Droplet (Basic)",
            "monthlyCents": 400,
            "included": "1 vCPU, 512MB RAM, 10GB SSD"
          },
          {
            "name": "Managed DB (Basic)",
            "monthlyCents": 1500,
            "included": "1 vCPU, 1GB RAM, MySQL/PG/Redis"
          },
          {
            "name": "Spaces Storage",
            "monthlyCents": 500,
            "included": "250 GB + 1 TB transfer/mo"
          }
        ],
        "details": "Droplets from $4/mo. Managed databases from $15/mo. Spaces object storage: $5/mo for 250GB. Kubernetes: $12/mo per node. PAYG pricing."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.digitalocean.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 60,
      "scorePricing": 75,
      "score": 48,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:09.866Z",
      "verifiedStatus": 200,
      "latencyMs": 1638
    },
    {
      "id": "accuweather",
      "name": "AccuWeather API",
      "provider": "AccuWeather",
      "category": "weather",
      "description": "AccuWeather API. See documentation for full details.",
      "longDescription": "AccuWeather API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://developer.accuweather.com",
      "docsUrl": "https://developer.accuweather.com/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 50 calls/day (rolling 24hr). Limited $2/mo (250 calls/day). Plus $25/mo (2.5K calls/day). Pro $50/mo (25K calls/day). Enterprise custom. 14-day trial."
      },
      "rateLimit": "50 calls/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://developer.accuweather.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:12.838Z",
      "verifiedStatus": 200,
      "latencyMs": 3216
    },
    {
      "id": "aerisweather",
      "name": "AerisWeather API",
      "provider": "AerisWeather",
      "category": "weather",
      "description": "AerisWeather API. See documentation for full details.",
      "longDescription": "AerisWeather API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.aerisweather.com",
      "docsUrl": "https://www.aerisweather.com",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free developer plan: 10K API calls/month, 3 endpoints. Starter $25/mo (50K calls/mo). Plus $75/mo (200K calls). Premium $200/mo. Enterprise custom."
      },
      "rateLimit": "1K calls/day (free dev) · Scales with plan",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.aerisweather.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:12.998Z",
      "verifiedStatus": 200,
      "latencyMs": 3357
    },
    {
      "id": "weather-source",
      "name": "Weather Source API",
      "provider": "Weather Source",
      "category": "weather",
      "description": "Weather Source API. See documentation for full details.",
      "longDescription": "Weather Source API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "http://weathersource.com",
      "docsUrl": "http://weathersource.com/weather-api",
      "hasFreeTier": false,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Paid. Historical and forecast weather data; pricing on request for commercial use."
      },
      "rateLimit": "Based on plan",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'http://weathersource.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:11.987Z",
      "verifiedStatus": 200,
      "latencyMs": 2332
    },
    {
      "id": "digital-ocean",
      "name": "Digital Ocean API",
      "provider": "Digital Ocean",
      "category": "weather",
      "description": "Digital Ocean API. See documentation for full details.",
      "longDescription": "Digital Ocean API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://developers.digitalocean.com",
      "docsUrl": "https://developers.digitalocean.com/",
      "hasFreeTier": false,
      "pricing": {
        "model": "pay-as-you-go",
        "startingCentsPerMonth": 400,
        "freeQuota": {
          "amount": 20000,
          "unit": "credit-cents",
          "period": "signup",
          "note": "$200 credit for 60 days (new users)"
        },
        "tiers": [
          {
            "name": "Droplet (Basic)",
            "monthlyCents": 400,
            "included": "1 vCPU, 512MB RAM, 10GB SSD"
          },
          {
            "name": "Managed DB (Basic)",
            "monthlyCents": 1500,
            "included": "1 vCPU, 1GB RAM, MySQL/PG/Redis"
          },
          {
            "name": "Spaces Storage",
            "monthlyCents": 500,
            "included": "250 GB + 1 TB transfer/mo"
          }
        ],
        "details": "Droplets from $4/mo. Managed databases from $15/mo. Spaces object storage: $5/mo for 250GB. Kubernetes: $12/mo per node. PAYG pricing."
      },
      "rateLimit": "See documentation",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://developers.digitalocean.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 75,
      "score": 42,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:12.695Z",
      "verifiedStatus": 200,
      "latencyMs": 2988
    },
    {
      "id": "caiyun-weather",
      "name": "Caiyun Weather API",
      "provider": "Caiyun Weather",
      "category": "weather",
      "description": "Caiyun Weather API. See documentation for full details.",
      "longDescription": "Caiyun Weather API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://caiyunapp.com",
      "docsUrl": "https://caiyunapp.com/index.html#api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 1,000 req/day. Paid from ¥49/mo (50,000 req/day). Chinese weather API."
      },
      "rateLimit": "1,000 req/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://caiyunapp.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:14.272Z",
      "verifiedStatus": 200,
      "latencyMs": 3651
    },
    {
      "id": "heweather",
      "name": "heweather API",
      "provider": "heweather",
      "category": "weather",
      "description": "heweather API. See documentation for full details.",
      "longDescription": "heweather API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.heweather.com",
      "docsUrl": "https://www.heweather.com/documents/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 1,000 req/day. Developer ¥49/mo (50,000 req/day). Chinese weather service."
      },
      "rateLimit": "1,000 req/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.heweather.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:14.118Z",
      "verifiedStatus": 200,
      "latencyMs": 3271
    },
    {
      "id": "weather-underground",
      "name": "Weather Underground API",
      "provider": "Weather Underground",
      "category": "weather",
      "description": "Weather Underground API. See documentation for full details.",
      "longDescription": "Weather Underground API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.wunderground.com",
      "docsUrl": "https://www.wunderground.com/weather/api/",
      "hasFreeTier": false,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Paid. Personal Weather Station data API via IBM/Weather Company from $399/mo."
      },
      "rateLimit": "Based on plan",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.wunderground.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:13.714Z",
      "verifiedStatus": 200,
      "latencyMs": 2563
    },
    {
      "id": "weather-unlocked",
      "name": "Weather Unlocked API",
      "provider": "Weather Unlocked",
      "category": "weather",
      "description": "Weather Unlocked API. See documentation for full details.",
      "longDescription": "Weather Unlocked API. See documentation for full details.",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://developer.weatherunlocked.com",
      "docsUrl": "https://developer.weatherunlocked.com/documentation",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 1,000 req/day. Basic $99/mo (10,000 req/day), Pro $299/mo (50,000 req/day)."
      },
      "rateLimit": "1,000 req/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://developer.weatherunlocked.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 28,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:14.263Z",
      "verifiedStatus": 200,
      "latencyMs": 2502
    },
    {
      "id": "bluesky-api",
      "name": "BlueSky API API",
      "provider": "BlueSky API",
      "category": "weather",
      "description": "Global weather data, both live forecasts and forecast history, free tier available. | N/A |",
      "longDescription": "Global weather data, both live forecasts and forecast history, free tier available. | N/A |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://blueskyapi.io",
      "docsUrl": "https://blueskyapi.io/docs/api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free and open. BlueSky/AT Protocol social network API; no paid tiers."
      },
      "rateLimit": "5,000 req/hour (authenticated)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://blueskyapi.io'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 34,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:20.020Z",
      "verifiedStatus": 200,
      "latencyMs": 1048
    },
    {
      "id": "seniverse",
      "name": "Seniverse API",
      "provider": "Seniverse",
      "category": "weather",
      "description": "Weather information of China.(Missing English Docs)",
      "longDescription": "Weather information of China.(Missing English Docs)",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.seniverse.com",
      "docsUrl": "https://www.seniverse.com/doc",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: 1,000 req/day. Paid from ¥49/mo for higher limits. Chinese weather API."
      },
      "rateLimit": "1,000 req/day (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.seniverse.com'",
      "sampleResponse": "{}",
      "scoreDepth": 18,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 22,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:21.838Z",
      "verifiedStatus": 403,
      "latencyMs": 2277
    },
    {
      "id": "airvisual",
      "name": "AirVisual API",
      "provider": "AirVisual",
      "category": "weather",
      "description": "Air quality and weather data                                                      | apiKey |  Yes  | Unknown |",
      "longDescription": "Air quality and weather data                                                      | apiKey |  Yes  | Unknown |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://airvisual.com",
      "docsUrl": "https://airvisual.com/api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "IQAir/AirVisual air quality API. Free: 10K API calls/month. Startup $19/mo (30K calls/mo). Business $75/mo (100K calls). Enterprise custom."
      },
      "rateLimit": "10K calls/month (free)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://airvisual.com'",
      "sampleResponse": "{}",
      "scoreDepth": 21,
      "scoreLatency": 20,
      "scorePricing": 28,
      "score": 23,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:24.334Z",
      "verifiedStatus": 429,
      "latencyMs": 3024
    },
    {
      "id": "7timer",
      "name": "7Timer! API",
      "provider": "7Timer!",
      "category": "weather",
      "description": "Weather, especially for Astroweather                                                                                           |    No    |  No   | Unknown |",
      "longDescription": "Weather, especially for Astroweather                                                                                           |    No    |  No   | Unknown |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "http://www.7timer.info",
      "docsUrl": "http://www.7timer.info/doc.php?lang=en",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — 7Timer! is a free weather forecast API (ASTRO7, CIVIL7, etc.). No authentication required. Provides 7-day forecasts globally."
      },
      "rateLimit": "Reasonable use enforced",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'http://www.7timer.info'",
      "sampleResponse": "{}",
      "scoreDepth": 25,
      "scoreLatency": 76,
      "scorePricing": 28,
      "score": 41,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:24.813Z",
      "verifiedStatus": 200,
      "latencyMs": 743
    },
    {
      "id": "dwd",
      "name": "DWD API",
      "provider": "DWD API",
      "category": "weather",
      "description": "API of the German Weather Service (DWD): weather data, data from specific weather stations, warnings (local, coast, sea, alps) |    No    |  Yes  | Unknown |",
      "longDescription": "API of the German Weather Service (DWD): weather data, data from specific weather stations, warnings (local, coast, sea, alps) |    No    |  Yes  | Unknown |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://dwd.api.bund.dev",
      "docsUrl": "https://dwd.api.bund.dev/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — Deutscher Wetterdienst (German Meteorological Service). Open data API. No authentication required. German weather observations and forecasts."
      },
      "rateLimit": "Reasonable use enforced",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://dwd.api.bund.dev'",
      "sampleResponse": "{}",
      "scoreDepth": 25,
      "scoreLatency": 90,
      "scorePricing": 28,
      "score": 45,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:24.546Z",
      "verifiedStatus": 200,
      "latencyMs": 436
    },
    {
      "id": "meteoblue",
      "name": "Meteoblue API",
      "provider": "Meteoblue",
      "category": "weather",
      "description": "Global weather data with 100+ weather variables, 14 days ahead and 4 days of history data.                                     | apiKey |  Yes  |   Yes   |",
      "longDescription": "Global weather data with 100+ weather variables, 14 days ahead and 4 days of history data.                                     | apiKey |  Yes  |   Yes   |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://content.meteoblue.com",
      "docsUrl": "https://content.meteoblue.com/en/business-solutions/weather-apis",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free: Basic weather data (limited). Meteoblue package from $19.90/mo for extended forecasts. Climate data, ensemble models, API points system."
      },
      "rateLimit": "Depends on API package",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://content.meteoblue.com'",
      "sampleResponse": "{}",
      "scoreDepth": 25,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 36,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:26.127Z",
      "verifiedStatus": 200,
      "latencyMs": 1931
    },
    {
      "id": "noaa-climate-data",
      "name": "NOAA Climate Data API",
      "provider": "NOAA Climate Data",
      "category": "weather",
      "description": "Weather and climate data                                                                                                       | apiKey |  Yes  | Unknown |",
      "longDescription": "Weather and climate data                                                                                                       | apiKey |  Yes  | Unknown |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "https://www.ncdc.noaa.gov",
      "docsUrl": "https://www.ncdc.noaa.gov/cdo-web/",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free — NOAA Climate Data Online (CDO) is a free US government service. API key required. Provides historical US climate data going back 100+ years."
      },
      "rateLimit": "5 req/s · 10K req/day (with token)",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'https://www.ncdc.noaa.gov'",
      "sampleResponse": "{}",
      "scoreDepth": 25,
      "scoreLatency": 60,
      "scorePricing": 28,
      "score": 36,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:26.003Z",
      "verifiedStatus": 200,
      "latencyMs": 1748
    },
    {
      "id": "ais-hub",
      "name": "AIS Hub API",
      "provider": "AIS Hub",
      "category": "weather",
      "description": "Real-time data of any marine and inland vessel equipped with AIS tracking system | apiKey | No | Unknown |",
      "longDescription": "Real-time data of any marine and inland vessel equipped with AIS tracking system | apiKey | No | Unknown |",
      "color": "#0ea5e9",
      "tags": [
        "weather"
      ],
      "authType": "api-key",
      "authDescription": "See documentation for authentication details",
      "authExample": "Authorization: Bearer YOUR_TOKEN",
      "baseUrl": "http://www.aishub.net",
      "docsUrl": "http://www.aishub.net/api",
      "hasFreeTier": true,
      "pricing": {
        "model": "subscription",
        "startingCentsPerMonth": null,
        "freeQuota": null,
        "tiers": [],
        "details": "Free with AIS-catcher account. Vessel tracking via AIS data sharing network."
      },
      "rateLimit": "Not officially published",
      "endpoints": [
        {
          "method": "GET",
          "path": "/",
          "description": "See documentation for endpoint reference"
        }
      ],
      "sampleRequest": "curl 'http://www.aishub.net'",
      "sampleResponse": "{}",
      "scoreDepth": 21,
      "scoreLatency": 40,
      "scorePricing": 28,
      "score": 29,
      "reachable": true,
      "verifiedAt": "2026-03-29T20:20:27.221Z",
      "verifiedStatus": 200,
      "latencyMs": 2961
    }
  ]
}