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 2026-08-20

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 2026-08-20, 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

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