Transients.fyi

What am I looking at?

Every night the Rubin (LSST) and ZTF telescopes image the sky and flag anything that changed since last time: a supernova going off, a star flaring, an asteroid passing through. Each flag is an alert. The Fink broker classifies them, and this site shows what they are and where. Transients the two surveys miss, reported by others to the Transient Name Server, are here too.

Sources

  • ZTF and Rubin: objects the surveys alerted on. Each detection is an alert, with the broker's classification, a reliability score and three image cutouts.
  • TNS: transients reported to the Transient Name Server that neither survey alerted on, among them nearly every bright one south of −30°, which ZTF cannot see. Each detection is a report: the magnitudes reported to TNS (the discovery, and any later ones), each in its reporter's filter, then ATLAS's measurements (c and o bands) for two months while it is brighter than 19. A nova or CV brighter than 14 also gets AAVSO's observers' V for two months: the median of a sample of each night's observations (the tooltip says of how many). Reported by names the surveys (ATLAS, GOTO, Pan-STARRS, …). When ZTF or Rubin later alerts on one, it becomes their object.
  • CBAT: reports on the Central Bureau's Transient Object Confirmation Page that neither the surveys nor TNS have, mostly bright Galactic novae (PNV J…) and dwarf novae in outburst (TCP J…). An object that matches a TOCP entry shows its designation.
  • ASAS-SN: discoveries on the All-Sky Automated Survey for Supernovae's list of transients that nothing above has, mostly cataclysmic variables in outburst (ASASSN-26fg). Each detection is a magnitude the list quotes, in g. An object that matches one shows its ASAS-SN name.
  • A TNS type (SN Ia, Nova, AGN, …) decides an object's class whoever saw it; without one, the broker's label does.
  • An object is active while it has detections in the window. A TNS, CBAT or ASAS-SN object neither ATLAS nor AAVSO measures (fainter than 19, older than two months, or not yet measured) is active only while the window holds its last report, so it leaves the short windows a week later.

Pages

  • Dashboard: how many alerts and objects arrived in a window, what kinds, where on the sky, and the brightest new supernova candidates.
  • Sky: the map. Most of what follows is about it.
  • Objects: the same objects as a table you can sort, filter by the broker's label or TNS type, and page through; click one for its light curve and images.
  • Tonight: a planner for your telescope. Pick your site and telescope, and it lists the supernovae, novae and new objects seen this week that are above your horizon while it is dark and bright enough to see, sorted by when each is best placed, with finder charts, a CSV export, target lists for your software and a printable list.

Search

  • An object id (ZTF26abvkmbu, a Rubin id, or the first few characters), a TNS name (SN 2026abc), coordinates (35.71 -4.75 or 02:22:50 -04:45:00, add r=10' for a radius), a deep-drilling field (COSMOS), a class (SN Ia, EclBin) or any name astronomers use (M31).

On the map: zoom to go deeper

  • Whole sky (wider than 20°): a heatmap of how many objects were seen in each patch of sky.
  • Region (1°–20°): a finer heatmap plus numbered badges. The number is the count of objects, the color is their most common class, and a white ring means something new in the last night.
  • Objects (under 1°): one dot per object. A white ring means it was seen last night, and a white center means it has been detected only once so far. Click a dot for its light curve, classification and images.

Drag to pan, scroll or pinch to zoom, or click a badge to zoom into it.

Filters

  • Window: how far back to look, from last night to a year.
  • Active / new: objects detected in the window, or only those first seen in it.
  • Class: most alerts are solar-system objects (asteroids). Pick Non-Solar System to hide them and see what else is out there.
  • Brightness (≤ 20, ≤ 18, ≤ 16): only objects at least that bright. Smaller magnitudes are brighter. An object marked faded was last seen fainter than in the survey's reference image, so it has no brightness of its own and counts only under any mag.
  • History (2+ nights, …): only objects seen on several nights, which filters out one-off artifacts.
  • More filters (Objects only): discovered within some nights, a redshift ceiling, a declination band, a faint limit past your saturation, one-night objects, rising ones, a reporting survey, or those an AAVSO campaign asks for. A view can be named, and its Subscribe panel gives it as a feed and as JSON.

Observing from your site

  • Your site: an observatory from the list, or your latitude and longitude (typed, or Use my location). A position is rounded to half a degree, and the site is remembered in this browser only.
  • Object panel: when the object is up tonight, its altitude through the night with the moon, the next 60 nights, and a Finder chart with a link to AAVSO's comparison stars.
  • Objects: Visible from… keeps what is above your limit in tonight's dark window, with when and how high.
  • Sky: Observer… shades what is below your horizon at a time you pick; the counts do not change.
  • Tonight: Subscribe gives your setup as an RSS feed or, signed in, by email: one a night with the picks and each group's best, once the data through the night before are in (or three hours before dark), or at a time you choose on the site's clock. A condition (novae, rare types, something brighter than a magnitude) leaves nights without a match out, so nothing comes on those. Your account page lists the emails, sets their time, sends one now to see it, and each email has a link to stop it. The plan is also JSON, for scripts and robotic telescopes. A feed's address holds your rounded site and setup: a reader you give it to keeps it.
  • Targets (Objects, Tonight, your watchlist, and Target on an object's panel): the list as a file for the program you observe with: a TOM, N.I.N.A. (Legacy Sequencer or Target Scheduler), ACP (an observing plan of 60 s exposures: set your filter), Stellarium or Cartes du Ciel (observing lists). Each row's ⓘ says where the file goes. SkySafari cannot place an object that is not in its catalogs, so it has no file: centre it on the coordinates (Settings → Coordinates) or send them to your mount instead.
  • Where your data count: the surveys measure their own objects every few nights, but a TNS, CBAT or ASAS-SN object gets only ATLAS's photometry while it is brighter than 19, and AAVSO's nightly V if it is a nova or CV brighter than 14. Unconfirmed marks one reported on a single night in the last two weeks: a detection confirms it, and a deep non-detection is news too. No recent data marks one seen on two or more nights that nothing has measured for four nights or more: a magnitude fills the gap in its light curve. Requested marks one an AAVSO observing campaign asks observers to measure; Campaigns tonight lists the other campaign stars that are up.
  • Report an observation (object panel): where your photometry and spectra go (AAVSO for stars and Galactic novae, TNS for supernovae and novae in nearby galaxies, CBAT for an unconfirmed TOCP entry; an AGN only to AAVSO when VSX lists it, and to TNS when it flares), the name to file them under from AAVSO's VSX, and an AAVSO file formatted from what you type. Nothing is sent from the site; your observer code stays in this browser.

Dark means the sun more than 12° below the horizon (18° if you choose). Positions ignore refraction and precession, a few tenths of a degree: enough to plan, not to point. Airmass comes from the altitude (Kasten and Young's formula): 2.0 at 30°, 1.5 at 42°, the night's least at the best time. Hours up are the hours above the least altitude you set: at 30°, the hours below airmass 2.

Classes

  • SN candidate
  • AGN / nuclear
  • Variable star
  • Solar system
  • Cataloged
  • Unknown
  • Low reliability
  • Other

Data credits

See Data Sources.

Everything here is also available via a JSON API.

The data is refreshed nightly. Every view is a link: on the map the URL records the position, zoom, filters and selected object, so Copy link shares exactly what you see.

Contact us

Sign in

Data and API

Everything the site shows is also JSON, from a public API: no key, no account, GET only, open to any origin. The data are refreshed several times a day, and run through the night of 2026-11-14.

Sources and Credits

ZTF and Rubin objects come from the Fink broker's alerts; transients neither survey alerted on come from the Transient Name Server, CBAT's Transient Object Confirmation Page and ASAS-SN's list of transients, measured by ATLAS and, for bright novae and CVs, by AAVSO's observers. Each provider's data stay under its own terms, and each asks to be credited as below when you use them.

Fink: ZTF and Rubin alerts: classifications, light curves, limits and cutouts
Möller et al. 2021, MNRAS 501, 3272.
Zwicky Transient Facility (ZTF): the ZTF public alert stream, through Fink
Based on observations obtained with the Samuel Oschin Telescope 48-inch and the 60-inch Telescope at the Palomar Observatory as part of the Zwicky Transient Facility project; Bellm et al. 2019, PASP 131, 018002.
Vera C. Rubin Observatory: the Rubin LSST alert stream and forced photometry, through Fink
The Vera C. Rubin Observatory Legacy Survey of Space and Time; Ivezić et al. 2019, ApJ 873, 111.
Transient Name Server (TNS): names, types and discovery reports of transients from every survey
The IAU Transient Name Server, operated by the Weizmann Institute of Science; reports by the surveys named on each object.
CBAT: the Transient Object Confirmation Page: bright novae and other transients reported to the Central Bureau
Central Bureau for Astronomical Telegrams, Transient Object Confirmation Page (TOCP).
ASAS-SN: the All-Sky Automated Survey for Supernovae's list of transients: its discoveries, mostly CV candidates, with the magnitudes it quotes
The All-Sky Automated Survey for Supernovae (ASAS-SN); Shappee et al. 2014, ApJ 788, 48; Kochanek et al. 2017, PASP 129, 104502.
ATLAS: forced photometry of TNS objects, from the ATLAS forced-photometry server
Tonry et al. 2018, PASP 130, 064505; Smith et al. 2020, PASP 132, 085002; Shingles et al. 2021, TNS AstroNote 2021-7.
AAVSO: observers' V photometry of bright novae and CVs (a median a night), observing campaigns that ask for observations, and VSX's names
We acknowledge with thanks the variable star observations from the AAVSO International Database contributed by observers worldwide and used in this research, the AAVSO's observing campaigns, and the International Variable Star Index (VSX).
HyperLEDA: host galaxies: names, sizes, magnitudes, redshifts and distances
We acknowledge the usage of the HyperLEDA database (http://leda.univ-lyon1.fr); Makarov et al. 2014, A&A 570, A13.
CDS, Strasbourg: sky imagery (HiPS), finder charts (hips2fits) and name resolution (Sesame)
This research has made use of the CDS services, Strasbourg Astronomical Observatory, France.

The API

Base URL https://transients.fyi/api. The interactive documentation, with every parameter and a “Try it out” button, is at /api/docs; the schema at /api/openapi.json. A source is ztf, lsst (Rubin), tns, cbat or asassn.

PathReturns
/objectsa sorted, filtered page of objects (at most 100) with the exact total: the Objects page's query
/objects/export/objects' view in one answer: its first 10,100 rows in the same order, and truncated when more match (six a minute)
/objects/{source}/{id}one object's row: position, class, TNS name and type, first and last detection, peak; a TNS, TOCP or ASAS-SN designation another object carries now answers 307 to that object
/objects/{source}/{id}/detectionsa TNS, CBAT or ASAS-SN object's detections and limits, with each point's filter, system and telescope, and the reported points of the designations an object carries, each with its designation (ZTF's and Rubin's own are Fink's)
/objects/lookup?ids=up to 100 objects by key in one call (ztf:ZTF26abcdef, tns:2026abc): each one's position, class, TNS name and type, last magnitude and night, hot or archived; a designation another object carries now answers that object as moved
/objects/search?q=up to 8 objects by id prefix, TNS name or TOCP designation
/campaignsAAVSO's running observing campaigns' targets, with positions and the objects each matched
/sky/density, /sky/clustersthe map's regional counts per HEALPix pixel and its badges
/sky/markersthe objects in a cone (r up to 45′), brightest first: the map's markers
/manifest, /stats, /labels, /healththe current data release: its nights and cuts, the dashboard's numbers, labels with counts

Every response carries X-Data-Through (the data's last night, UTC) and X-Build (when the data were last updated); /objects also returns them in its body as data_through and generated_at, for scripts that keep the JSON. The Objects page's URL keys are close to the API's: a view's filters carry over.

curl

# supernova candidates first seen in the last 7 nights, 18 mag or brighter
curl 'https://transients.fyi/api/objects?window=7d&measure=new&bucket=sn_candidate&mag=18&limit=50'

# one object, and a TNS object's photometry
curl 'https://transients.fyi/api/objects/ztf/ZTF26abxkuhv'
curl 'https://transients.fyi/api/objects/tns/2026yjv/detections'

Python

import time

import pandas as pd
import requests

API = "https://transients.fyi/api"
params = {"window": "1M", "tns": "any", "sort": "last_mjd", "limit": 100}
rows, offset = [], 0
while True:
    r = requests.get(f"{API}/objects", params={**params, "offset": offset}, timeout=30)
    r.raise_for_status()
    page = r.json()
    rows += page["rows"]
    offset += len(page["rows"])
    if not page["rows"] or offset >= page["total"]:
        break
    time.sleep(1)  # one request a second, please

df = pd.DataFrame(rows)
print(f"{len(df)} objects, data through {page['data_through']}")

Or the view in one request: /objects/export takes the same keys without offset and returns its first 10,100 rows, with truncated true when more match.

A ZTF or Rubin object's alerts, light curve and cutouts are Fink's: its API (api.ztf.fink-portal.org, api.lsst.fink-portal.org; documented for ZTF and Rubin) serves them without a key, and the object panel reads them from there.

Feeds and exports

Both exports come in two forms written from one list of columns. The CSV is plain, for spreadsheets, and its name carries the night the data run to. The ECSV has the same columns with units and descriptions, and a header saying what the object or view is, which night the data run to and when they were generated, how the fluxes and times are defined, and whom to credit. Fluxes are signed differences in nJy (AB zero point 31.4); Rubin's times are TAI, and a utc column gives every time in UTC.

from astropy.table import Table

lc = Table.read("ztf-ZTF26abxkuhv-lightcurve-2026-09-29.ecsv")
print(lc.meta["object"]["name"], lc.meta["data_through"], lc.meta["credits"])
det = lc[lc["kind"] == "det"]      # detections; "limit" rows carry lim_mag (5 sigma)
print(det["mjd", "band", "mag", "mag_err"])

Forced photometry of any position

The site shows what the surveys detected. To measure a position on every image, detected or not, ask the surveys' own services, each with an account of your own:

Limits and etiquette

How to cite

Name the site and the data's date: Transients.fyi (https://transients.fyi), data through 2026-11-14. Credit the providers whose data you use, with the references above: Fink for ZTF and Rubin alerts (and ZTF and Rubin themselves), the TNS and the reporting surveys for reports, CBAT for TOCP entries, ASAS-SN for its discoveries, ATLAS for its photometry, AAVSO (and its observers) for theirs.

Changelog

2026-10-18
/objects' reasons= now matches rows with all of the reasons given, not any of them (one reason: no change).
2026-10-18
Host galaxies from HyperLEDA. host_name is now the host's name: the TNS host's, else the HyperLEDA galaxy the object lies inside (within two radii of its D25 ellipse), else Mangrove's, which counts only inside two radii where HyperLEDA has its galaxy (Fink's match as it came is mangrove_name and mangrove_dist_mpc on /objects/{source}/{id}). /objects rows gain host_source (tns, leda or mangrove), host_d25 (arcmin), host_bmag, distance_mpc and distance_z (abs_peak's distance and the redshift behind it); distance_source gains leda; filters host_size_min and host_mag_max, sort host_d25. /objects/{source}/{id} also gives host_pgc, host_sep, host_dlr, host_ratio, host_pa, host_type, host_z, host_dist_source, abs_peak, distance_source, distance_mpc and distance_z; host_dist_mpc is now the host's distance. Target lists beside the TOM CSV, from the same URL keys: /objects.nina.csv, /objects.acp.txt, /objects.sol and /objects.cdc.txt, and the same on /tonight.
2026-10-17
TNS's spectra. /objects and /objects/{source}/{id} rows gain tns_spectra (how many spectra TNS lists for the object's TNS designation; 0 for none, null without a TNS name or before we have asked TNS: the newest objects first, all of them by about the end of October), spectrum_first_mjd (usually the classifying spectrum), spectrum_last_mjd and spectrum_last_by (its instrument and group).
2026-10-14
Host context and Fink's anomaly score. /objects rows gain host_context (galaxy, point, nuclear, offset or none_seen: what lies under and around an object, from Pan-STARRS1, Mangrove, the Legacy Survey and Fink's ELEPHANT test), host_name (Mangrove's nearest galaxy) and anomaly_score (ZTF; lower is more unusual); filters host_context (repeat the key) and anomaly_max, sort anomaly_score. /objects/{source}/{id} also gives host_dist_mpc, ps1_sep, ps1_sgscore, ps1_rmag, host_pstar, hostless_ks and hostless_ks_sci.
2026-10-10
Version 2.0, paths named after the site's pages: /table is /objects and /table/export /objects/export; /object/{source}/{id} is /objects/{source}/{id}; /search/objects is /objects/search; the map's layers are /sky/density, /sky/clusters and /sky/markers (the cone that was /objects). The survey key is source, and a region's radius is r in arcminutes (was radius, in arcseconds), as on the Objects page; responses echo source and r. Rows keep their survey column.
2026-10-08
A reason, fresh: young, and a non-detection deeper than the earliest detection at most 3 days before the first one (a new explosion, not just a new report). /table rows gain first_det_mag; the non-detection columns now cover one-night objects too.
2026-10-08
/table rows gain ebv and ext_mag (SFD's Galactic E(B-V) and the extinction in the peak band, now taken off abs_peak) and fit_peak_mjd, fit_peak_mag, fit_rms, fit_points (a parabola's peak in the best-sampled band).
2026-10-08
/table rows gain nondet_mjd, nondet_mag and nondet_days (the last non-detection before the first detection: ZTF's from Fink, a report object's as reported) and distance_source (abs_peak's distance: TNS, the TNS host, Fink's Mangrove host, or Rubin's Legacy Survey photo-z); sort nondet_days, filter nondet_max.
2026-10-08
Derived light-curve features on /table rows for objects first seen within 90 nights on 2+ nights: peak_mjd, peak_band, rise_rate, decline_rate, trend_14d (mag/day, negative while brightening), last_gr and gr_days, and an approximate abs_peak (no K-correction or extinction), trend_nights; sorts on each and trend_max, gr_max, abs_max. The rising reason (and rising=true) is now the trend: below -0.05 mag/day on 3+ nights, seen within 7.
2026-10-08
/table rows gain reasons (/tonight's: bright, young, unclassified, rising, rare, outburst, nova, requested, unconfirmed, unmeasured), tonight_group and asassn_name; reasons= filters on any of them and lim= sets the limit bright counts from (default 17). rising=true is now the rising reason: 3+ nights, discovered within 21.
2026-10-07
/table/export: /table's filters and sort, its first 10,100 rows in one answer (no total; truncated says whether more match), for a file instead of a page loop. The Objects page downloads a whole view from it (/objects.csv, /objects.ecsv).
2026-10-02
/objects/lookup: up to 100 objects by key (source:id, designations too) in one call, each found, moved (a designation another object carries now: that object) or missing.
2026-10-02
An absorbed designation resolves: /object/tns/2026abc (and cbat, asassn) answers 307 to the object that carries it now, and so does its /detections (both were 404). An alert object's /detections returns its designations' reported points (TNS's, ATLAS's and AAVSO's, as when it was a report object), each with a new designation field (was 404); they are shown, never counted. /table's tns=named selects everything reported to TNS, typed or not.
2026-10-01
A fifth source, asassn: discoveries on ASAS-SN's list of transients that nothing else has (mostly CV candidates), with the magnitudes the list quotes as detections and limits (origin asassn); object rows add asassn_name, and /search/objects finds ASAS-SN names.
2026-10-01
/detections adds origin aavso: a bright nova's or CV's V a night from AAVSO's observers (the median of a sample, the sample in a new remark field, "median of 20 of 165 V observations"), and nights of "fainter than" reports as limits; the object row adds aavso_name, the star's VSX name.
2026-09-30
/table's research filters (disc_days, tns=none, z_max, dec_min and dec_max, mag_min, nights_max, rising, reporter, requested) and sort=discovered; rows gain the redshifts, reported_by and an AAVSO campaign; /campaigns.
2026-09-30
/detections adds limits (TNS's reported non-detections, ATLAS's nights under S/N 5) and each detection's filter, mag_system, approx, lim_mag, instrument and telescope; a Vega magnitude is converted to AB by its band's offset.
2026-09-30
Version 1.0: the documentation at /api/docs, the X-Data-Through and X-Build headers, data_through and generated_at in /table's body, and a rate limit. Today's paths are version 1.