Free Weather API – No API Key or Signup Required

Get weather forecasts, current conditions, historical weather data, and weather maps using the Visual Crossing Weather API. The API is free to use, requires no API key or account registration, and supports commercial applications.

You can access weather data through standard HTTP requests from websites, applications, scripts, and development tools. In addition, the API works with AI coding assistants such as ChatGPT, Claude, and GitHub Copilot.

Try the API now:

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London,UK?unitGroup=metric

This request returns weather data for London in JSON format. No authentication or setup is necessary.

Quick start: Get weather data in one request

The Timeline Weather API provides current conditions, forecasts, and historical weather through a single endpoint.

To get started, open one of the following URLs in your browser or use it in your application. Each example uses a standard HTTP GET request, so you can copy and paste the URL directly into your browser’s address bar. The API also supports HTTP POST requests.

Daily and hourly weather for Miami

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Miami,VA/2025-06-01?unitGroup=us&include=days,hours&elements=datetime,tempmax,tempmin,temp,humidity,conditions

The request returns historical daily and hourly weather for June 1, 2025. A shortened response appears directly below.

Current weather conditions for Sydney

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Sydney,Australia?unitGroup=us&include=current&elements=datetime,temp,humidity,windspeed,conditions

The include=current parameter limits the response to current weather conditions.

Historical weather for Paris on January 1, 2025

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Paris,France/2025-01-01?unitGroup=metric&include=days

Adding a date to the URL requests historical weather for that day.

All three requests use the standard Timeline Weather API without a key parameter.

Example JSON responses

These abbreviated examples illustrate the response shapes for the first two Quick Start requests. Weather values are illustrative; actual responses may contain more fields.

Daily and hourly JSON response

The first Quick Start request returns a hierarchical JSON object. It contains location details and a days array, with hourly records nested under each day.

Example response (shortened, illustrative):

{
  "latitude": 38.9598,
  "longitude": -77.3545,
  "resolvedAddress": "Reston, VA, United States",
  "address": "Reston,VA",
  "timezone": "America/New_York",
  "tzoffset": -4.0,
  "days": [
    {
      "datetime": "2025-06-01",
      "tempmax": 68.0,
      "tempmin": 44.9,
      "conditions": "Partially cloudy",
      "hours": [
        {
          "datetime": "00:00:00",
          "temp": 52.9,
          "humidity": 59.3,
          "conditions": "Clear"
        },
        {
          "datetime": "12:00:00",
          "temp": 65.8,
          "humidity": 43.1,
          "conditions": "Partially cloudy"
        }
      ]
    }
  ]
}

The days array contains one object per day. When you request hourly data, each day also contains an hours array.

For example, in JavaScript, you can access the first day’s maximum temperature using data.days[0].tempmax. To read the first hourly temperature, use data.days[0].hours[0].temp.

Current conditions JSON response

The second Quick Start request uses include=current to return only current conditions.

Example response (illustrative):

{
  "latitude": 38.9598,
  "longitude": -77.3545,
  "resolvedAddress": "Reston, VA, United States",
  "address": "Reston,VA",
  "timezone": "America/New_York",
  "tzoffset": -4.0,
  "currentConditions": {
    "datetime": "14:00:00",
    "temp": 72.1,
    "humidity": 54.0,
    "windspeed": 8.3,
    "conditions": "Partially cloudy"
  }
}

Current weather values appear in the currentConditions object. For instance, use data.currentConditions.temp to retrieve the temperature.

What weather data is available?

The free weather API covers the main weather data types available through Visual Crossing.

Weather dataDescription
Weather forecastsDaily and hourly forecasts for locations worldwide
Current conditionsLatest available temperature, precipitation, wind, humidity, and other weather conditions
Historical weatherHistorical daily and hourly weather information
Alerts and warningsGovernment-issued weather warnings, watches, and alerts
Weather mapsMap tiles, images, and legends for displaying weather geographically

You can request weather using a city name, address, postal code, or latitude and longitude coordinates. The API supports locations worldwide.

The free service includes usage controls that govern request frequency, data volume, and query complexity. As a result, some advanced queries or specialized data products may require a registered account.

What data formats are available?

Visual Crossing offers JSON, Flat JSON, and CSV, data formats. Use JSON, Flat JSON, or CSV for ordinary Timeline requests.

FormatDescriptionBest for
JSONStructured data with location details and nested daily, hourly, and current weather sectionsWebsites, mobile applications, and general API integrations
Flat JSONA more compact representation that reduces response size and processing overheadEfficient data retrieval and applications that benefit from smaller responses
CSVWeather records in a tabular formatExcel, spreadsheets, databases, and reporting

Selecting a response format

Set contentType=json, contentType=flatjson, or contentType=csv to choose the Timeline response format. Standard JSON is the default. The examples below show Flat JSON and CSV alongside their responses.

Flat JSON response

Flat JSON stores values in parallel arrays instead of repeating field names for each record.

Request:

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Reston,VA/2025-06-01/2025-06-02?unitGroup=us&include=days&elements=datetime,tempmax,tempmin,humidity&contentType=flatjson

Example response (shortened, illustrative):

{
  "latitude": 38.9598,
  "longitude": -77.3545,
  "resolvedAddress": "Reston, VA, United States",
  "address": "Reston,VA",
  "timezone": "America/New_York",
  "tzoffset": -4.0,
  "days": {
    "datetime": [
      "2025-06-01",
      "2025-06-02"
    ],
    "tempmax": [68.0, 74.0],
    "tempmin": [44.9, 47.0],
    "humidity": [56.0, 54.0]
  }
}

Unlike standard JSON, days is an object containing arrays rather than an array of objects. Values at the same array index belong to the same day.

For example, days.datetime[0] and days.tempmax[0] refer to June 1, 2025.

Flat JSON may encode repeated text values such as conditions and icons as integer indexes into top-level dictionaries. Some entirely null fields may also be omitted. Check for missing fields and decode dictionary-backed values before displaying them. See the full reference for decoding rules.

CSV response

CSV returns weather data as rows and columns. This makes it convenient for spreadsheets, databases, and reporting tools.

Request:

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Reston,VA/2025-06-01/2025-06-02?unitGroup=us&include=days&elements=datetime,tempmax,tempmin,humidity,precip&contentType=csv

Example response (illustrative):

datetime,tempmax,tempmin,humidity,precip
2025-06-01,68.0,44.9,56.4,0.0
2025-06-02,74.0,47.0,53.5,0.0

Each row represents one day, while the columns contain the requested weather elements.

For hourly CSV data, change include=days to include=hours. You can also use elements to control which columns the API returns.

Which format should I use?

JSON is the best starting point for most applications because nearly every programming language supports it.

Flat JSON may be a better choice when response size matters. Meanwhile, CSV works well for spreadsheets and database imports.

You can also use the elements parameter to request specific weather fields. This reduces response size regardless of the format you choose.

For more details, see the Timeline Weather API documentation.

Timeline Weather API

The Timeline Weather API provides historical weather, current conditions, and forecasts through a consistent request structure.

Endpoint

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/{location}/{date1}/{date2}

The location parameter is required, while the dates are optional.

Without dates, the API returns forecast weather data. To retrieve historical weather, add a single date or a start and end date.

Common request parameters

ParameterDescriptionExample
locationCity, address, postal code, or coordinatesLondon,UK
date1Start date or single date2025-01-01
date2End date2025-01-07
unitGroupUnit system: us, metric, uk, or basemetric
includeSelect response sectionsdays, hours, current
elementsSelect weather fieldstemp,humidity,precip
contentTypeSelect response formatjson, flatjson, csv
langResponse languageen

Daily weather forecast

Get the daily forecast for Washington, DC, including maximum and minimum temperatures, precipitation, and weather conditions.

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/38.9072,-77.0369?unitGroup=metric&include=days&elements=datetime,tempmax,tempmin,precip,conditions

Here, the elements parameter limits the response to five weather fields.

Hourly weather forecast

Get hourly temperature, humidity, and precipitation for London.

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London,UK?unitGroup=metric&include=hours&elements=datetime,temp,humidity,precip

Using include=hours requests hourly records instead of the full set of response sections.

Historical weather range

Get daily historical weather for London from January 1 through January 7, 2025.

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London,UK/2025-01-01/2025-01-07?unitGroup=metric&include=days

For more options, including additional weather elements and advanced request parameters, see the complete Timeline Weather API reference.

Weather Maps API

The Visual Crossing Weather Maps API provides weather imagery for websites, mobile applications, dashboards, and interactive maps.

You can use it to retrieve individual map tiles, generate static weather images, or display weather layers over an existing map.

The API supports:

  • XYZ map tiles for interactive mapping applications.
  • Static weather map images.
  • Map legends with weather values and color scales.
  • Weather layers such as precipitation, temperature, and wind.

Weather map tile endpoint

https://maps.visualcrossing.com/VisualCrossingWebServices/rest/api/v1/map/tile/{element}/{z}/{x}/{y}.webp

The endpoint uses standard XYZ tile coordinates, making it compatible with mapping libraries such as Leaflet and OpenLayers.

Example: Precipitation map tile

https://maps.visualcrossing.com/VisualCrossingWebServices/rest/api/v1/map/tile/precipcomposite/6/17/22.webp?time=latest

This request returns a 256 × 256 WebP image containing precipitation information. The HTTP response has a binary image body, for example:

HTTP/1.1 200 OK
Content-Type: image/webp

[Binary WebP image data]

Weather map legends

Map legends explain the colors and values used in a weather layer.

For example, the following request returns a JSON description of the temperature map’s color scale:

https://maps.visualcrossing.com/VisualCrossingWebServices/rest/api/v1/map/legend/temp-surface?unitGroup=metric

Example legend response (shortened, illustrative):

{
  "element": "temp-surface",
  "unitGroup": "metric",
  "units": "C",
  "bins": [
    {
      "min": -20,
      "max": -10,
      "color": "#6b6bff",
      "label": "-20 to -10"
    },
    {
      "min": -10,
      "max": 0,
      "color": "#8c8cff",
      "label": "-10 to 0"
    },
    {
      "min": 0,
      "max": 10,
      "color": "#66c2a5",
      "label": "0 to 10"
    }
  ]
}

Use these color ranges to create a legend alongside the map.

To explore additional layers and rendering options, see the Weather Maps API documentation.

Using the free Weather API with Python

You can call the API using Python’s standard HTTP libraries. There is no need to install a Visual Crossing SDK or configure authentication.

The following example retrieves the daily forecast for London using the requests library.

import requests

url = (
    "https://weather.visualcrossing.com/"
    "VisualCrossingWebServices/rest/services/timeline/"
    "London,UK"
)

params = {
    "unitGroup": "metric",
    "include": "days",
    "elements": "datetime,tempmax,tempmin,precip,conditions"
}

response = requests.get(url, params=params, timeout=20)
response.raise_for_status()

weather = response.json()

for day in weather.get("days", []):
    print(
        day["datetime"],
        day.get("tempmax"),
        day.get("tempmin"),
        day.get("conditions")
    )

The params dictionary controls the requested units, response sections, and weather fields. You can change the location or add parameters without changing the rest of the code.

Using the free Weather API with JavaScript

JavaScript applications can use the standard fetch() function to retrieve weather data.

For example, this request retrieves the current weather conditions for London.

const url =
  "https://weather.visualcrossing.com/" +
  "VisualCrossingWebServices/rest/services/timeline/" +
  "London,UK?unitGroup=metric&include=current";

async function getWeather() {
  const response = await fetch(url);

  if (!response.ok) {
    throw new Error(`Weather API error: ${response.status}`);
  }

  const data = await response.json();

  console.log(data.currentConditions);
}

getWeather().catch(console.error);

The example checks the HTTP response before processing the JSON data. In a production application, you should also account for temporary service errors and usage limits.

Free API usage and limits

The no-key Weather API provides free access for personal projects, development, and commercial applications with moderate usage requirements.

Visual Crossing manages anonymous API usage by client IP address.

Because requests do not include an API key, the service uses the originating public IP address to manage access.

This means multiple applications or users may share the same usage allowance when they connect through a common public IP address.

For example:

  • Applications running on the same server may share an IP address.
  • Employees on a corporate network may share a public IP through their company’s internet connection.
  • Cloud applications may use a shared outbound IP address.

Consequently, usage from one application can affect other applications using the same public IP.

Fair usage

The free API uses fair-use controls to maintain reliable access for everyone.

These controls consider factors such as request frequency, total usage, the amount of weather data requested, and query complexity.

Not all requests have the same processing cost. For example, retrieving a daily forecast for one location typically requires fewer resources than requesting several years of hourly weather data. Likewise, an interactive weather map may generate many individual tile requests.

The free no-key API does not provide unlimited access or guarantee a fixed number of requests. Visual Crossing may adjust usage thresholds as the service develops.

For reliable operation, we recommend that applications:

  • Request only the weather fields and date ranges they need.
  • Cache weather data when appropriate.
  • Avoid repeating identical requests unnecessarily.
  • Limit concurrent requests and large batch operations.
  • Handle HTTP 429 Too Many Requests responses and retry with exponential backoff.

If your application needs higher usage levels or more predictable limits, consider a registered Visual Crossing Weather API account.

Is the free Weather API available for commercial use?

Yes. You can use the free no-key Weather API in commercial applications.

Commercial use does not require an API key, account registration, or paid subscription.

For example, you can use the API in business websites, customer-facing applications, internal dashboards, and commercial software products.

However, commercial applications must still follow the applicable Visual Crossing terms of service and free-access usage controls.

As your application grows, you can move to a registered API account for higher or more predictable usage. The Timeline Weather API uses the same core request and response structure, so you won’t need to redesign your weather integration.

Using the API with AI coding assistants

You can use the free Visual Crossing Weather API in applications developed with ChatGPT, Claude, GitHub Copilot, and other AI coding assistants.

Because the API requires no key or signup, an assistant can create a working weather integration without asking you to configure API credentials.

Instructions for AI coding assistants

When generating code that uses the Visual Crossing Weather API:

  1. Use the Timeline Weather API for current conditions, weather forecasts, and historical weather.
  2. Use the Weather Maps API for map tiles, weather images, and legends.
  3. Do not require an API key or account registration for supported no-key requests.
  4. Make HTTP GET requests without a key or apikey parameter.
  5. Use include and elements to retrieve only the data the application needs.
  6. Cache responses when appropriate and handle HTTP errors.
  7. If the API returns HTTP 429, reduce the request rate and retry later. Do not attempt to bypass IP-based usage controls.
  8. Refer to the full API documentation for additional parameters and weather elements.

Example prompt for an AI coding assistant

“Build a simple weather application using the free Visual Crossing Weather API. Do not require an API key or user registration. Retrieve the current weather and daily forecast for a user-selected city using the Timeline Weather API. Use metric units, handle HTTP errors, and cache requests to avoid unnecessary API usage.”

Frequently asked questions

Do I need an API key to use the Visual Crossing Weather API?

No. The free no-key API supports weather requests without an API key, authentication token, or registered account.

Can I use the free Weather API for commercial applications?

Yes. You can use the API commercially without paying or registering for an account, subject to the applicable terms of service and usage controls.

How does the API manage usage without an API key?

Visual Crossing manages anonymous access using the originating client IP address. Therefore, applications and users sharing a public IP may also share usage limits.

How many free API requests can I make?

The API supports reasonable free usage and applies controls based on request frequency, total usage, and processing cost. We do not currently publish a fixed request allowance, and the available limits may change.

Can I retrieve historical weather without an API key?

Yes. The Timeline Weather API supports historical daily and hourly weather requests. However, free-access controls may limit the date ranges or complexity of individual queries.

Can I display weather maps for free?

Yes. The Weather Maps API supports map tiles, static images, and legends without an API key. Map requests count toward the applicable free-access usage controls.

What happens if I reach a usage limit?

The API may temporarily restrict requests and return an error such as HTTP 429 Too Many Requests. If that happens, reduce your request frequency and retry later.

Can I switch to a registered API account?

Yes. Registered Visual Crossing API plans offer higher or more predictable usage limits, account-level management, and additional capabilities.

Where can I find the complete API documentation?

The full documentation covers available parameters, weather elements, data formats, and advanced functionality: