crowdsky-client
A lightweight Python client for the CrowdSky data API — discover and download crowd-sourced Seestar S50 stacked frames. Built as the shared contract between CrowdSky, the scientists writing CrowdSci analysis modules, and the CrowdSci runner on Zeus, so a pipeline behaves identically on a laptop and in production.
Deliberately light: it depends only on requests, astropy, and astropy-healpix — not the
stacking engine (opencv/astroalign/sep).
Install
pip install crowdsky-client
Authenticate
Mint a personal API key at https://crowdsky.univie.ac.at/account.php (log in → Account →
Create key). The secret is shown once — store it safely. Pass it directly or via the
CROWDSKY_API_KEY environment variable.
from crowdsky_client import Client
c = Client(api_key="csk_…") # or: export CROWDSKY_API_KEY=csk_…; Client()
Use
# All frames imaging a target (cone-search over NSIDE=128 RING tiles, deduped by id):
frames = c.frames_for_target(159.6998, 53.5095, radius_deg=0.75, filter_name="IRCUT")
# Frames in a single HEALPix tile with server-side filters:
frames = c.frames_by_healpix(49152, start="2026-07-01T00:00:00Z", min_exptime=120)
# Download a stacked FITS by its unique id (bytes, or straight to disk):
fits_bytes = c.download_frame(frames[0]["id"])
c.download_frame_to(frames[0]["id"], "frame.fits")
# A frame's SEP + Gaia star table:
stars = c.star_data(frames[0]["id"])
# Public sky-coverage feed (no key needed) as an astropy Table:
coverage = c.sky_coverage()
Every data request sends Authorization: Bearer <api_key>; a revoked/expired/invalid key returns
HTTP 401, surfaced as CrowdSkyError.
Develop / test
pip install -e ".[dev]"
pytest
Tests run fully offline via an injected fake session — no network, no key required.
Metadata
Release files for crowdsky-client 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crowdsky_client-0.1.0.tar.gz | 37.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crowdsky_client-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.9 kB
Release files / crowdsky_client-0.1.0.tar.gz
| Download URL | crowdsky_client-0.1.0.tar.gz |
|---|---|
| Size | 37.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2dc202252588a8d5584c04ce5d12929d78b29e87b48aea36653759b9cd344307
|
|
BLAKE2b-256 checksum How to use checksums |
06990f847a1d4cf9fe223457ae0c8a5ea159bc16f048e8a431925d93837278f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / crowdsky_client-0.1.0-py3-none-any.whl
| Download URL | crowdsky_client-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5d794c6f0caf3e108336db6c10b5934de6e92376fdd699137f968fc7909285cb
|
|
BLAKE2b-256 checksum How to use checksums |
0ff5b4f5b8f754e0cc66a74d7eddcec1a2e2c56e06b1c167db29b07f7096fe22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|