Frequently Asked Questions


How much does it cost to use the Dark Sky Forecast API?
You get 1,000 API calls for free each day. After that, we prorate each additional call at a rate of $0.0001 per call. The counter resets every day at midnight UTC. As long as you make fewer than 1,000 calls each day, the API is free.
Which forms of payment can I use?
We accept all major credit and debit cards, including Visa, MasterCard, American Express, JCB, Discover, and Diners Club.
Why can't I make more than 1,000 calls per day?
If you have not added a credit card with us, you're bound by the free call limit of 1,000 per day. This limit automatically resets each day at midnight UTC.
If you have gone over the 1,000 free call limit but have not paid your outstanding balance, we will lock your account. If your account has been locked and you would like it to be unlocked, please contact us at
Can I require my users to sign up for a developer's API key?
No, your end-users should not sign up for Dark Sky API keys as a means for you to circumvent the daily cap of 1,000 free calls. The 1,000 free calls per day are intended for one developer or company to explore the API.
Can I put the “Powered by Dark Sky” badge in the settings or about page of my app?
Yes. Provided that you attribute us in your application—be it in an about, partners, or settings page—that's fine. We just ask that there's attribution in the application itself as close to the data as possible, and not in documentation separate from the application.
If attribution is not possible, contact us at

API Features

Where do I find the icons?
The API itself doesn't come with any icons: instead, we provide a generic icon property so you can select whatever icons you like! If you want to use the same icon set we use on, check out our Skycons library. We also really like Adam Whitcroft's Climacons.
How do you determine the value for the icon property on daily data points?
Our system is presently very simple: it finds the “worst” weather condition that will happen during the day (4AM to 4AM), and uses the icon for it. The only case where a daily icon will show a *-night value is partly-cloudy-night, and this is done to match the daily summary text. We already have intentions to change this behavior, because it is confusing.
In the meantime, you can assume that if partly-cloudy-night is the worst weather condition that was found, that it was clear during the day. So you can just treat partly-cloudy-night as an alias for clear-day.
Why shouldn't I use the summary field for “automated purposes?”
The algorithm that generates a human-readable summary is complex and can produce millions of possible summaries—too many to be practical for automated processing. Moreover, we're constantly tweaking the logic, so any pattern-matching you do against our summaries today could easily break tomorrow! By contrast, we promise to keep the values of icon property documented and warn you of any changes to that list.
Do you have a call that returns the latitude and longitude for a given address?
Unfortunately not. This is the function of a Geocoding API, like the Google Maps API or the Mapbox API. (Or, if you're developing for a smartphone, the platform SDK should include a Geocoding API for you.) Licensing restrictions prevent us from including geocoding results in our API. Sorry!
I asked for the current weather, but the timestamp in your forecast is for yesterday/tomorrow!
This means that you're converting UNIX timestamps to local times incorrectly. For each UNIX timestamp, there is a corresponding local time for each and every different timezone. For example, the UNIX time 1466892000 corresponds to 6PM (18:00) in New York, 10PM (22:00) GMT, and midnight (00:00) of the following day in Amsterdam. When converting UNIX timestamps to local times, always use the timezone property of the API response, so that your software knows which timezone is the right one.
Why do I get the error No 'Access-Control-Allow-Origin' header is present on the requested resource when I try to call the API?

We take security very seriously at Dark Sky. As a security precaution we have disabled cross-origin resource sharing (CORS) on our servers.

Your API call includes your secret API key as part of the request. If you were to make API calls from client-facing code, anyone could extract and use your API key, which would result in a bill that you'd have to pay. We disable CORS to help keep your API secret key a secret.

To prevent API key abuse, you should set up a proxy server to make calls to our API behind the scenes. Then you can provide forecasts to your clients without exposing your API key.

Data Availability and Accuracy

Why is the daily probability of precipitation higher than any of hourly probabilities for the same day?

This is one confusing part of probability. While there may be just a small chance of precipitation during any individual hour, there are many chances for precipitation throughout the entire day. Because there are more chances for precipitation, the probability for the whole day will be higher than for any single hour.

The more hours you wait, the more likely it will rain during at least one of them.

Are historical reports based on observational data?
Usually, but we sometimes fill in data from other sources if no observations are available.
Why do historical reports sometimes change from the last time I requested them?
Several of our data sources aren’t real-time, and flow into our system after the fact. As a result, our historical data may continue changing for up to two weeks after a time has occurred. (In most cases, the changes are very minor!)
Why are weather conditions sometimes missing from historical responses?
We omit weather data that we do not have. This may be because there aren't any weather stations near you, or the weather stations that are near you are missing sensors for the kind of weather that you care about, or the weather stations that are near you have those sensors but are producing suspect data (in which case we ignore it).
Why isn't precipProbability always 0 or 1 for historical responses?
We don't have perfect historical data—weather stations don't cover every square inch of the planet!—and so these probabilities reflect our uncertainty about what happened.
Can I get your previous forecasts instead of weather station observations?
Unfortunately, we do not have the storage capacity to store previous forecasts. Sorry!
How often is your data updated?
Next-hour minutely forecast data is updated every five minutes. Hourly and daily forecast data are updated every hour. Severe weather alerts are updated in real-time.