SkySight satellite tiles
The two SkySight calls the satellite cloud overlay
needs. The forecast catalogue, regions and layers are in SkySight layers and
vulture-web /api/skysight; the cloud overlay uses none of them.
Sign in
Section titled “Sign in”POST https://skysight.io/api/auth
| Header | Value |
|---|---|
X-API-KEY | Vulture (the app’s static key) |
Content-Type | application/json |
{ "username": "pilot@example.com", "password": "…" }Success (200):
{ "key": "<session key>", "allowed_regions": ["EUROPE", "…"] }Any failure is shown as skysight.error.labels.invalid (“The given credentials are incorrect.”).
The session key is only needed for the forecast API (X-API-KEY: <key>); the satellite tiles
do not use it.
iOS source: vulture-ios/Packages/SkySight/Sources/SkySight/Requests/Authenticate/SkySightAuthenticationRequest.swift,
vulture-ios/Modules/App/Sources/Services/SkySight/SkySightManager.swift (authenticate).
Satellite tile
Section titled “Satellite tile”GET https://satellite.skysight.io/tiles/{z}/{x}/{y}@2x?date={yyyy}/{MM}/{dd}/{HHmm}&mtg=true
dateis the frame time in UTC,yyyy/MM/dd/HHmm(slashes not escaped).mtg=trueasks for the Meteosat Third Generation imagery (clouds with rain).- Response:
200 image/jpeg, 512 × 512, roughly 10–100 KB. A tile the archive does not have is404. iOS also treats a body of 100 bytes or less as a failure. - No key, no cookie. Checked on 2026-10-19: the tile answers
200with and withoutOrigin: https://skysight.io. iOS adds the header to every*.skysight.iorequest anyway (SkySightHttpInterceptor.swift); doing the same is harmless.
Which tiles and dates to ask for: Satellite cloud frames.
iOS source: vulture-ios/Packages/Flights/Sources/Flights/Satellite/SatelliteTileManager.swift
(tileURL, tileURLTemplate), base URL Vulture.satelliteBaseURL
(vulture-ios/Packages/Preferences/Sources/Preferences/Vulture.swift).
