{"title":"Sky","description":"\u003cp\u003eSky DataGrabs: satellite, orbital, and celestial data — ready to use, no plumbing required. Built for builders, not platform engineers.\u003c\/p\u003e","products":[{"product_id":"sky-starlink-viewer-datagrab-key","title":"Sky.Starlink.Viewer","description":"\u003cp\u003e\u003cstrong\u003eIs tonight the night? One call, and you'll know.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eStarlink trains are only visible in a narrow window — satellites still lit by a sun that's already set for you, in a sky dark enough to see them, on a night that isn't clouded over. Work it out yourself and you're propagating orbits, calculating twilight, and pulling a cloud forecast, then joining all three.\u003c\/p\u003e\n\u003cp\u003eAsk for a place. Get back whether it's worth going outside, and when.\u003c\/p\u003e\n\u003cp\u003e\u003ccode\u003ePortland, ME\u003c\/code\u003e is all it takes. Add days ahead if you want a longer horizon.\u003c\/p\u003e\n\u003cp\u003eHere's what comes back when the answer is no — which is the interesting case, so it's the one worth showing:\u003c\/p\u003e\n\u003cpre style=\"font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; line-height: 1.5; white-space: pre; overflow-x: auto; background: #F6F6F6; padding: 16px; border-radius: 8px;\"\u003e{\n  \"query\": { \"lat\": 43.65737, \"lng\": -70.2589, \"timezone\": \"America\/New_York\", \"daysAhead\": 14 },\n\n  \"isVisibleWithinRange\": false,\n  \"recommendedViewing\": null,\n  \"summary\": \"No Starlink train worth going outside for was found in the next 14 days.\",\n  \"whyNot\": [\n    \"A train was found but conditions during it were not good enough to recommend\",\n    \"Weather conditions were poor during the best pass windows\"\n  ],\n\n  \"upcomingCandidates\": [\n    {\n      \"date\": \"2026-10-06\",\n      \"peakTime\": \"2026-10-06T19:33:01-04:00\",\n      \"score\": 7.5,\n      \"conditions\": \"good\",\n      \"forecastConfidence\": \"low\",\n      \"direction\": \"NNW -\u0026gt; SSE\",\n      \"maxElevationDeg\": 77,\n      \"satellitesVisibleAtOnce\": 4,\n      \"trainType\": \"none\",\n      \"estimatedMagnitude\": 4.9,\n      \"cloudCoverPercent\": 0,\n      \"reason\": \"Pass reaches 77° elevation. Cloud cover forecast is 0%. Sky is dark\n                 during the viewing window. 4 satellites - too few for a real train.\n                 Look toward the NNW to start; it climbs to about 77° over the WSW and\n                 exits to the SSE, roughly 10 min across the sky. Estimated magnitude\n                 4.9 - on the faint side - easier in a dark sky\"\n    }\n    \/* ...four more, ranked by score *\/\n  ],\n\n  \"nextViewing\": {\n    \"date\": \"2026-09-27\",\n    \"peakTime\": \"2026-09-27T19:46:20-04:00\",\n    \"conditions\": \"not viewable\",\n    \"cloudCoverPercent\": 100\n    \/* ...same shape as a candidate *\/\n  },\n\n  \"denseTrainsInOrbit\": 1,\n  \"trainsInOrbit\": [\n    { \"trainId\": \"2026-181-2\", \"satelliteCount\": 5, \"altitudeKm\": 415, \"visibleFromHere\": false }\n  ],\n\n  \"launchCadence\": { \"launchesPerWeek\": 1.87, \"daysBetweenLaunches\": 3.8 },\n\n  \"dataProvidedBy\": \"Gimmee.info (CelesTrak, Open-Meteo)\",\n  \"dataPullDateTime\": \"2026-09-27T21:06:36.0484325Z\",\n  \"gimmeeVersion\": \"v1.0.0\"\n}\u003c\/pre\u003e\n\u003cp\u003e\u003cem\u003e(Trimmed. The full response carries every candidate in full, the recommended pass's detail when there is one, and more per-train data — it's all in the docs.)\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ccode\u003eisVisibleWithinRange\u003c\/code\u003e is the field that does the work. One boolean, and it already knows about the orbit, the twilight, the cloud cover and the satellite count. Wire a light to it, a push notification, a cell colour. Nobody has to interpret anything.\u003c\/p\u003e\n\u003cp\u003eWhen it's false you're not left guessing. \u003ccode\u003ewhyNot\u003c\/code\u003e names the reason in sentences you can show a user — here, a train was up there, but the weather wouldn't cooperate. \u003ccode\u003eupcomingCandidates\u003c\/code\u003e hands you the closest things to a yes anyway, ranked, so someone can decide for themselves. That's the difference between an empty result and an answer.\u003c\/p\u003e\n\u003cp\u003eEvery pass, recommended or not, carries a \u003ccode\u003ereason\u003c\/code\u003e written to be read out loud: which way to face, how high it climbs, where it exits, how long it's up, and how faint it'll be. Not a code you look up — a sentence you print.\u003c\/p\u003e\n\u003cp\u003e\u003ccode\u003enextViewing\u003c\/code\u003e is the very next pass, good or bad. Tonight's is fogged in, and it says so plainly instead of pretending there's nothing up there.\u003c\/p\u003e\n\u003cp\u003e\u003ccode\u003eforecastConfidence\u003c\/code\u003e is honesty about the weather half. A few days out is \u003ccode\u003ehigh\u003c\/code\u003e. Two weeks out is \u003ccode\u003elow\u003c\/code\u003e, and the field says so rather than letting a clean-looking score imply certainty it hasn't got.\u003c\/p\u003e\n\u003cp\u003e\u003ccode\u003etrainsInOrbit\u003c\/code\u003e tells you what's actually up there right now, even when none of it crosses your sky. And \u003ccode\u003elaunchCadence\u003c\/code\u003e answers the question that follows every no: \u003cem\u003ewhen should I check again?\u003c\/em\u003e Roughly two launches a week, each train dense for about two days. That's the check-back interval, computed, not guessed.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTwo sources, and the maths in between.\u003c\/strong\u003e Orbital elements from CelesTrak, so passes are propagated from the current elements rather than a stale table. Cloud cover from Open-Meteo. Twilight we compute ourselves, because the whole trick is the satellite being in sunlight while you're in the dark. Neither source knows about the other, or about your sky. Joining them is the product.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat you get:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e$9\/mo\u003c\/li\u003e\n\u003cli\u003e1,000 DataGrab calls a month\u003c\/li\u003e\n\u003cli\u003eYour API key, emailed the moment you check out\u003c\/li\u003e\n\u003cli\u003eSetup instructions in that same email\u003c\/li\u003e\n\u003cli\u003eFull docs - \u003ca href=\"https:\/\/api.gimmee.io\/docs\/sky-starlink-viewer.html\" rel=\"noopener\" target=\"_blank\"\u003eread them here\u003c\/a\u003e - so your agent or your IDE can wire it up without you.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eFull integration guide: \u003ca href=\"https:\/\/api.gimmee.io\/docs\/sky-starlink-viewer.html\" rel=\"noopener\" target=\"_blank\"\u003eapi.gimmee.io\/docs\/sky-starlink-viewer.html\u003c\/a\u003e\u003c\/p\u003e\n\u003ch3\u003eCheck out. Open the email. Paste the key. Off you go.\u003c\/h3\u003e","brand":"Gimmee Info, LLC","offers":[{"title":"Default Title","offer_id":53053424730336,"sku":"Sky.Starlink.Viewer","price":9.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0814\/3582\/0256\/files\/Sky.Starlink.Viewer.png?v=1785286285"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0814\/3582\/0256\/collections\/sky_topic.png?v=1785703950","url":"https:\/\/shop.gimmee.info\/collections\/sky.oembed","provider":"Gimmee Info, LLC","version":"1.0","type":"link"}