Developers

Public API

Read-only, JSON access to the live snow-cam network. Built for ski resorts, weather sites, dashboards, alerts, and hobbyist tinkerers.

Getting a key

  1. Subscribe to Pro (API access is included).
  2. Go to your profile and create a new key under API keys.
  3. Copy the full key (shown once) and store it somewhere safe. Only an SHA-256 hash is kept on our side.

Authentication

Send your key in the Authorization header (preferred):

Authorization: Bearer isn_live_YOUR_KEY_HERE

Or pass it as a query parameter (less secure — avoid in browser code):

?key=isn_live_YOUR_KEY_HERE

Rate limits

Each key includes 10,000 requests per calendar month (UTC). The counter resets at the start of each month. Every successful response includes:

  • X-RateLimit-Remaining — requests left this month
  • X-RateLimit-Reset — ISO timestamp when the quota resets

Over-quota requests return 429. Need more? Drop us a line.

Endpoints

GET /api/v1/feeds

List active webcam feeds. Supports ?snowingNow=true, ?country=Canada, and ?limit=100 (default 100, max 500).

GET /api/v1/feeds/{idOrSlug}

Fetch a single feed by id or URL slug. Returns the same shape as a list element.

GET /api/v1/snowing-now

Convenience: returns all currently-snowing feeds, sorted by 24-hour snowfall descending.

Example request (curl)

curl -H "Authorization: Bearer isn_live_YOUR_KEY_HERE" \
  https://isitsnowingthere.com/api/v1/feeds?snowingNow=true&limit=25

Example request (JavaScript)

const res = await fetch(
  'https://isitsnowingthere.com/api/v1/snowing-now',
  { headers: { Authorization: 'Bearer ' + process.env.ISN_API_KEY } }
);
const data = await res.json();
console.log(`${data.count} cams are snowing right now`);
data.feeds.forEach(f => console.log(f.name, f.snowfall24hInches));

Response shape

GET /api/v1/feeds returns { count, total, feeds: Feed[] }. GET /api/v1/snowing-now returns { count, feeds: Feed[] }.

A single Feed object:

{
  "id": "calgary-alberta",
  "slug": "calgary-alberta",
  "name": "Calgary, Alberta",
  "city": "Calgary",
  "region": "Alberta",
  "country": "Canada",
  "latitude": 51.0447,
  "longitude": -114.0719,
  "sourceType": "city",
  "isSnowing": true,
  "temperatureF": 28,
  "temperatureC": -2.2,
  "snowfall24hInches": 1.6,
  "conditions": "light snow",
  "lastWeatherCheckAt": "2026-05-22T14:02:11.000Z",
  "permalink": "https://isitsnowingthere.com/feed/calgary-alberta"
}

isSnowing may be true, false, or null (unknown). Use the permalink to deep-link users to a live webcam page.

Errors

  • 401 — missing or invalid key
  • 403 — key has been revoked
  • 404 — feed not found
  • 429 — monthly quota exceeded
  • 503 — API key service not configured (rare)

Fair use

Please cache responses where you can — webcam status only updates every few minutes. Don't scrape the underlying video streams; use the permalink to send users to the live webcam page instead.