BYTETOOLS

7Timer! API

Free 7Timer! API with no key: astronomical seeing, transparency and cloud cover forecasts for stargazing, plus general weather. No signup. Tested example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 20 Aug 2026

What is the 7Timer! API?

7Timer! is a free, key-free forecast API offering an unusual astronomy product — cloud cover, atmospheric seeing, transparency and lifted index — designed specifically for planning astronomical observation, alongside general weather forecasts.

Most weather APIs tell you whether it will rain. 7Timer's `astro` product tells you whether the sky will be worth pointing a telescope at, forecasting atmospheric seeing and transparency alongside cloud cover — parameters no general weather API provides.

Its values use index scales rather than physical units: seeing is banded in arcseconds, transparency in magnitudes per square arcsecond, and cloud cover on a 1-9 scale. You have to read the documentation's conversion tables to interpret them, which is the main barrier to using it.

Quick facts

Base URL
https://www.7timer.info/bin/api.pl
Authentication
No API key required.
Rate limit
No published limit; the service asks for reasonable use.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the 7Timer! API

Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Fetch an astronomy forecast

GET https://www.7timer.info/bin/api.pl?lon=113.17&lat=23.09&product=astro&output=json

curl
curl 'https://www.7timer.info/bin/api.pl?lon=113.17&lat=23.09&product=astro&output=json'
JavaScript (fetch)
const res = await fetch("https://www.7timer.info/bin/api.pl?lon=113.17&lat=23.09&product=astro&output=json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.7timer.info/bin/api.pl?lon=113.17&lat=23.09&product=astro&output=json", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "product": "astro",
  "init": "2026081912",
  "dataseries": [
    {
      "timepoint": 3,
      "cloudcover": 4,
      "seeing": 7,
      "transparency": 4,
      "lifted_index": -1,
      "rh2m": 8,
      "wind10m": {
        "direction": "SE",
        "speed": 2
      },
      "temp2m": 31,
      "prec_type": "none"
    },
    {
      "timepoint": 6,
      "cloudcover": 3,
      "seeing": 7,
      "transparency": 4,
      "lifted_index": -1,
      "rh2m": 9,
      "wind10m": {
        "direction": "SE",
        "speed": 2
      },
      "temp2m": 29,
      "prec_type": "none"
    },
    {
      "timepoint": 9,
      "cloudcover": 1,
      "seeing": 6,
      "transparency": 4,
      "lifted_index": -1,
      "rh2m": 10,
      "wind10m": {
        "direction": "NE",
        "speed": 2
      },
      "temp2m": 29,
      "prec_type": "none"
    },
    {
      "timepoint": 12,
      "cloudcover": 2,
      "seeing": 6,
      "transparency": 4,
      "lifted_index": -1,
      "rh2m": 8,
      "wind10m": {
        "direction": "E",
        "speed": 3
      },
      "temp2m": 29,
      "prec_type": "none"
    },
    {
      "timepoint": 15,
      "cloudcover": 6,
      "seeing": 6,
      "transparency": 3,
      "lifted_index": -1,
      "rh2m": 6,
      "wind10m": {
        "direction": "E",
        "speed": 3
      },
      "temp2m": 33,
      "prec_type": "none"
    },
    {
      "timepoint": 18,
      "cloudcover": 7,
      "seeing": 6,
      "transparency": 3,
      "lifted_index": -1,
      "rh2m": 4,
      "wind10m": {
        "direction": "E",
        "speed": 3

Parameters

ParameterTypeRequiredDescription
lat / lonfloatRequiredCoordinates in decimal degrees. 23.09
productstringRequiredastro, civil, civillight, meteo or two. astro
outputstringRequiredjson or xml. json
unitstringOptionalmetric or british. metric
tzshiftintegerOptionalTimezone offset in hours from UTC. 0

Response fields

productstring
Which forecast product was returned.
initstring
Model initialisation time as YYYYMMDDHH.
dataseries[].timepointinteger
Hours ahead of the init time — not a timestamp.
dataseries[].cloudcoverinteger
Cloud cover index 1-9, where 1 is clearest.
dataseries[].seeinginteger
Atmospheric seeing index — lower is steadier.
dataseries[].transparencyinteger
Sky transparency index — lower is clearer.
dataseries[].lifted_indexinteger
Atmospheric stability; strongly negative means storms.

What you can build with the 7Timer! API

  • Plan astronomical observing sessions around seeing and transparency
  • Build a stargazing forecast app
  • Decide when to run an automated telescope
  • Add astronomy-aware weather to an astrophotography tool

Common errors and how to fix them

timepoint is not a date

It is hours offset from `init`.

Fix: Parse `init` as YYYYMMDDHH and add `timepoint` hours to get the real time.

Index values look meaningless

Values are banded indices, not physical units.

Fix: Consult the documentation's conversion tables — cloudcover 1 means 0-6% cover, not 1%.

Empty dataseries

Malformed coordinates or an unknown product.

Fix: Check product is one of astro, civil, civillight, meteo or two.

7Timer! API — frequently asked questions

What makes 7Timer different from other weather APIs?

Its astro product forecasts atmospheric seeing and transparency — how steady and clear the sky will be for telescope observation — which general weather APIs do not provide at all.

Is 7Timer free?

Yes, free with no API key or registration.

How do I convert timepoint into an actual time?

Parse the `init` field as YYYYMMDDHH, then add `timepoint` hours. The values are offsets from model initialisation, not timestamps.

Why are the values small integers?

They are banded index scales, not physical measurements. Cloud cover 1 means 0-6% cover, seeing bands map to arcsecond ranges — the documentation has the conversion tables.

Tools that pair with this API

Alternatives to 7Timer! API

If 7Timer! does not fit, these weather apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
Open-MeteoFree weather forecast API with no API key and no signup. Hourly and daily forecasts worldwide, free for commercial use. Working curl example and live response.No keyYes19 Aug 2026
Open-Meteo Air QualityFree air quality API with no key: PM2.5, PM10, ozone, nitrogen dioxide, European and US AQI plus pollen forecasts worldwide. Tested curl example included.No keyYes19 Aug 2026
wttr.inwttr.in is a free console-oriented weather API with no key. Get weather as plain text, ASCII art, PNG or full JSON with one curl command. Live example included.No keyYes19 Aug 2026
Open-Meteo GeocodingFree geocoding API with no key: convert a city or place name into latitude and longitude, with population, country and timezone. Tested curl example and live JSON.No keyYes19 Aug 2026
Bright Sky (DWD)Free Bright Sky API with no key: current weather, hourly forecasts and historical records from Germany's national weather service, back to 2010. Tested.No keyNo20 Aug 2026
Open-Meteo Historical ArchiveFree historical weather API with no key: hourly and daily weather for any location worldwide going back to 1940, from ERA5 reanalysis data. Tested example.No keyNo20 Aug 2026
All Weather APIs

7Timer! is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.