Documentation Index Fetch the complete documentation index at: https://mintlify.com/ManiFed/TTN/llms.txt
Use this file to discover all available pages before exploring further.
Public endpoints require no authentication and are intended for use by the marketing site, community dashboards, third-party integrations, and anyone curious about The Telescope Net’s live science output. They cover the active observing target queue with composite scores, historical photometry for any named variable star, real-time network health, astronomy weather forecasts, sky brightness data, public object catalogue lookups, and the email subscribe flow. All responses are JSON and include permissive CORS headers so browser clients can call them directly.
GET /api/v1/targets
Retrieve the active target queue with current observability scores. Returns up to 200 targets sorted by best composite score descending, including the science program classification and a per-score-component explanation.
Auth: NoneNo query parameters required.
200 OK Array of active target objects. Unique target identifier.
Target name as used in AAVSO, e.g. "SS_CYG".
Right ascension in decimal degrees (J2000).
Declination in decimal degrees (J2000).
Classification: SN, CV, TDE, VAR, EB, AGN, GRB, NOVA, EXOPLANET, or unknown.
Latest reported magnitude.
Scientific value baseline, 0–1.
true for targets requiring rapid cadence (supernovae, GRBs, novae).
Highest composite observability score across all active nodes.
Node with the highest score for this target.
Mapped program name: "transient_follow_up", "variable_stars", "exoplanet_transits", or "other".
Per-component score breakdown from the best-scoring node.
Alert broker sources that contributed this target, e.g. ["alerce", "gaia"].
Total photometry measurements collected for this target.
ISO 8601 UTC timestamp of first alert.
curl https://api.thetelescope.net/api/v1/targets
{
"targets" : [
{
"target_id" : "tgt_ss_cyg" ,
"name" : "SS_CYG" ,
"ra_deg" : 325.679 ,
"dec_deg" : 43.587 ,
"target_type" : "CV" ,
"mag" : 11.4 ,
"priority" : 0.85 ,
"time_critical" : false ,
"best_score" : 0.91 ,
"best_node_id" : "node_a3f9b2c1" ,
"science_program" : "variable_stars" ,
"sources" : [ "aavso_alerts" ],
"n_measurements" : 4821 ,
"discovered_at" : "2024-03-01T00:00:00+00:00"
}
]
}
GET /api/v1/lightcurves/
Retrieve the historical photometry light curve for a named target. All measurements from all network nodes are returned, giving a multi-site composite view of the target’s brightness history.
Auth: NoneTarget name, e.g. SS_Cyg or SN2024abc. URL-encode spaces and special characters.
Look-back window in days. Default 365. Use smaller values (e.g. 30) for responsive real-time plots.
200 OK Target name as requested.
Number of data points returned.
Array of photometry points. 1-σ photometric uncertainty.
Node that produced this measurement.
"good", "acceptable", or "poor".
"consistent", "outlier", or "single" from cross-validation.
1 if this point was sent to AAVSO.
curl "https://api.thetelescope.net/api/v1/lightcurves/SS_Cyg?days=30"
{
"target" : "SS_Cyg" ,
"n" : 312 ,
"points" : [
{
"bjd" : 2460476.5123 ,
"magnitude" : 11.42 ,
"uncertainty" : 0.018 ,
"filter" : "CV" ,
"node_id" : "node_a3f9b2c1" ,
"quality_flag" : "good" ,
"validation_status" : "consistent" ,
"aavso_submitted" : 1
}
]
}
GET /api/v1/lightcurves//consensus
Retrieve an inverse-variance-weighted consensus light curve for epochs where two or more nodes observed the same target within the same ~43-minute co-temporal window. Each consensus point reports how many nodes contributed and which nodes they were.
Auth: NoneLook-back window in days. Default 365.
200 OK Target name as requested.
Number of consensus epochs.
Weighted consensus photometry points with n_nodes and node_ids fields showing network coverage.
curl "https://api.thetelescope.net/api/v1/lightcurves/SS_Cyg/consensus?days=90"
{
"target" : "SS_Cyg" ,
"n" : 47 ,
"points" : [
{
"bjd" : 2460476.515 ,
"magnitude" : 11.441 ,
"uncertainty" : 0.009 ,
"filter" : "CV" ,
"n_nodes" : 3 ,
"node_ids" : [ "node_a3f9b2c1" , "node_b7e2d4f0" , "node_c1a9e3b5" ]
}
]
}
GET /api/v1/network/status
Retrieve a live snapshot of the network’s node count, observation totals, and node locations. Used by the marketing site to display the live statistics ticker.
Auth: NoneNo query parameters required.
200 OK Total registered node count.
Nodes currently heartbeating (active within the last 15 minutes).
Active targets in the science queue.
Lifetime photometry measurement count.
Measurements received in the past 24 hours.
Total measurements submitted to AAVSO WebObs.
Public view of all node records (no API keys or owner emails).
ISO 8601 UTC timestamp of this response.
curl https://api.thetelescope.net/api/v1/network/status
{
"nodes_total" : 28 ,
"nodes_online" : 12 ,
"active_targets" : 47 ,
"measurements_total" : 84203 ,
"measurements_24h" : 1423 ,
"aavso_submitted" : 76421 ,
"server_time" : "2026-06-15T03:00:00.000000+00:00" ,
"nodes" : [
{
"node_id" : "node_a3f9b2c1" ,
"latitude" : 30.2672 ,
"longitude" : -97.7431 ,
"city" : "Austin" ,
"online" : true
}
]
}
GET /api/v1/network/activity
Retrieve a public activity feed of recent observations, AAVSO submissions, new node registrations, and transient interrupts. Useful for live dashboards and community feeds.
Auth: NoneMaximum number of events to return. Default 50, maximum 200.
200 OK Array of activity events sorted by time descending, covering up to the last 14 days. Event type: "measurement", "aavso_submission", "node_joined", or "transient_interrupt".
ISO 8601 UTC timestamp of the event.
Node ID for observation and registration events.
Target name for observation and interrupt events.
Human-readable one-line description of the event.
Expiry timestamp for transient_interrupt events.
ISO 8601 UTC timestamp of this response.
curl "https://api.thetelescope.net/api/v1/network/activity?limit=10"
{
"events" : [
{
"type" : "aavso_submission" ,
"at" : "2026-06-15T03:10:00.000000+00:00" ,
"node_id" : "node_a3f9b2c1" ,
"target" : "SS_Cyg" ,
"summary" : "SS_Cyg 11.420±0.018 CV"
},
{
"type" : "node_joined" ,
"at" : "2026-06-14T18:00:00.000000+00:00" ,
"node_id" : "node_d4c1a2b3" ,
"summary" : "New node joined in Austin, US."
}
],
"server_time" : "2026-06-15T03:15:00.000000+00:00"
}
GET /api/v1/health
Verify that the API server and its database connection are healthy. Use this endpoint in uptime monitors and deployment health checks.
Auth: NoneNo query parameters required.
200 OK — Database is reachable.503 Service Unavailable — Database connection failed.true when the database is accessible.
Database connectivity check result.
curl https://api.thetelescope.net/api/v1/health
{
"ok" : true ,
"db" : true ,
"server_time" : "2026-06-15T03:00:00.000000+00:00"
}
GET /api/v1/weather
Retrieve an astronomy-optimised weather forecast for any coordinates. Data is sourced from the 7timer ASTRO product, which provides 3-hour forecast slots for cloud cover, atmospheric seeing, transparency, lifted index, wind speed, and humidity — the parameters that matter most for photometric quality.
Auth: NoneLatitude in decimal degrees, e.g. 30.2672.
Longitude in decimal degrees, e.g. -97.7431.
200 OK Data source identifier: "7timer_astro".
Array of 3-hour forecast slots. ISO 8601 UTC start time of this slot.
Cloud cover percentage (0–100).
Atmospheric seeing index (7timer scale: 1=excellent, 8=very bad).
Atmospheric transparency index.
Lifted index — negative values indicate atmospheric instability.
Relative humidity percentage.
400 is returned when lat or lon are missing or non-numeric.503 is returned when the upstream weather provider is unavailable.curl "https://api.thetelescope.net/api/v1/weather?lat=30.2672&lon=-97.7431"
{
"source" : "7timer_astro" ,
"latitude" : 30.2672 ,
"longitude" : -97.7431 ,
"slots" : [
{
"time" : "2026-06-15T21:00:00+00:00" ,
"cloud_cover_pct" : 5.0 ,
"seeing" : 2 ,
"transparency" : 7 ,
"lifted_index" : 2.0 ,
"wind_kmh" : 8.0 ,
"humidity_pct" : 38.0
}
]
}
GET /api/v1/light-pollution
Retrieve sky brightness data for any coordinates. Returns the magnitude-per-square-arcsecond (mpsas) reading and Bortle scale classification. The server caches results per location to avoid upstream rate limits.
Auth: NoneLatitude in decimal degrees.
Longitude in decimal degrees.
200 OK Sky brightness in magnitudes per square arcsecond. Higher is darker: rural skies typically 21–22, suburban 18–20, urban under 17.
Bortle scale classification, 1 (darkest) to 9 (inner city).
Data source used, e.g. "light_pollution_map" or "viirs".
Raw radiance value in nW/cm²/sr if available from the data source.
curl "https://api.thetelescope.net/api/v1/light-pollution?lat=30.2672&lon=-97.7431"
{
"latitude" : 30.2672 ,
"longitude" : -97.7431 ,
"mpsas" : 18.9 ,
"bortle" : 6 ,
"source" : "light_pollution_map" ,
"radiance_nw_cm2_sr" : 1.42
}
GET /api/v1/sky-quality
Retrieve sky brightness (mpsas and Bortle scale) for any coordinates. This is a lightweight alternative to /api/v1/light-pollution used by the Start Tonight sheet and mobile app location picker.
Auth: NoneLatitude in decimal degrees.
Longitude in decimal degrees.
200 OK Sky brightness in magnitudes per square arcsecond.
Bortle scale classification (1–9).
400 is returned when lat or lon are missing or non-numeric.curl "https://api.thetelescope.net/api/v1/sky-quality?lat=41.6611&lon=-77.8202"
{ "mpsas" : 21.8 , "bortle" : 2 }
GET /api/v1/objects/
Retrieve public catalogue details for any astronomical object by name. The server queries the CDS Sesame name resolver and, for planetary systems, the NASA Exoplanet Archive. Results are merged into a single response.
Auth: NoneObject name, e.g. SS_Cyg, SN2024abc, or HD 189733 b. URL-encode as needed.
200 OK Canonical name from Sesame.
Right ascension (J2000) from Sesame.
Declination (J2000) from Sesame.
Sesame object type string.
Band-keyed magnitude dictionary, e.g. {"V": "8.12", "B": "9.04"}.
Up to 12 known aliases from Sesame.
List of data source names used to build this response.
Non-fatal errors from individual lookups (e.g. a source being temporarily unavailable).
curl https://api.thetelescope.net/api/v1/objects/SS_Cyg
{
"name" : "SS_Cyg" ,
"canonical_name" : "SS Cyg" ,
"ra_deg" : 325.6785 ,
"dec_deg" : 43.5861 ,
"object_type" : "CV*" ,
"magnitudes" : { "V" : "7.70" , "B" : "8.41" },
"aliases" : [ "CSS_J214143.5+433512" , "AAVSO 2138+43" ],
"public_sources" : [ "CDS Sesame" ],
"errors" : []
}
GET /api/v1/telescopes
Retrieve the public telescope spec catalog used by the app’s model picker. Each entry includes physical specifications and the derived parameters (pixel scale, FOV, magnitude limits) computed from the hardware specs.
Auth: NoneNo query parameters.
200 OK Array of telescope catalog entries, each with model name, specs, and derived parameters.
curl https://api.thetelescope.net/api/v1/telescopes
{
"telescopes" : [
{
"model" : "ZWO Seestar S50" ,
"aperture_mm" : 50 ,
"focal_length_mm" : 250 ,
"fov_deg" : 1.27 ,
"pixel_scale_arcsec" : 2.4 ,
"mag_faint_limit" : 15.5
}
]
}
GET /api/v1/site/config
Retrieve public site configuration, currently the displayed member count shown on the tour page.
Auth: NoneNo query parameters.
200 OK The publicly displayed member count.
curl https://api.thetelescope.net/api/v1/site/config
POST /api/v1/subscribe
Subscribe an email address to The Telescope Net waitlist. If the email is new, an activation code is generated and stored. Returns the same code idempotently for existing subscribers.
Auth: NoneValid email address to subscribe.
Referral source identifier, e.g. "tour" (default) or "social". Maximum 64 characters.
Equipment description, e.g. "ZWO Seestar S50". Maximum 64 characters.
200 OK true when the subscription is recorded.
Activation code in BS-YYYY-XXXXXXXX format assigned to this subscriber.
true when this is a new subscription; false when the email was already subscribed.
400 is returned when the email is missing or invalid.curl -X POST https://api.thetelescope.net/api/v1/subscribe \
-H "Content-Type: application/json" \
-d '{"email": "jane@example.com", "equipment": "ZWO Seestar S50"}'
{
"ok" : true ,
"code" : "BS-2026-WXYZ9876" ,
"new" : true
}