August 7, 2026

CelesTrak / Space-Track: Intelligence Source Guide

0

CelesTrak and Space-Track are the two public front doors to the US-maintained satellite catalogue: mean orbital elements for tens of thousands of tracked objects, refreshed several times a day. Everything you can say publicly about where a satellite is starts here.

celestrak-space-track-intelligence-source-guide

CelesTrak and Space-Track are the two public front doors to the US-maintained satellite catalogue: mean orbital elements for tens of thousands of tracked objects, refreshed several times a day. Everything you can say publicly about where a satellite is starts here.

At a glance

Source CelesTrak / Space-Track
Category Aviation & Space › Satellite Tracking & Orbital Data
Homepage https://celestrak.org/
Machine interface https://celestrak.org/NORAD/elements/gp.php
Format JSON
Access Open — no account required
Disciplines Space Intelligence
Mission domains Space & Satellite Intel

Satellite catalog & orbital elements (TLE). — as catalogued in the platform’s own source registry.

This is one dataset with two distributors and two personalities. The underlying catalogue is produced by the United States Space Force – the Space Defense Squadron under the Combined Space Operations Center – from the Space Surveillance Network of radars and optical sensors. It assigns every tracked object a catalogue number and an international designator, and publishes a general perturbations element set describing its orbit. Space-Track.org is the official distribution point: free registration, a user agreement, a REST query API over named data classes including current and historical element sets, the satellite catalogue itself, decay and re-entry predictions, launch sites, and public conjunction data messages. CelesTrak is the long-running independent service run by T.S. Kelso that mirrors, curates and republishes the same element sets in far more usable shapes, adds supplemental elements supplied directly by some operators, groups objects into practical collections such as active payloads, stations, navigation constellations, weather satellites and specific debris clouds, and serves them without authentication. The historical container is the two-line element set, a fixed-column format that predates modern data engineering and encodes mean elements for the SGP4 propagator. The modern container is the Orbit Mean-Elements Message from the CCSDS standard, which carries the same numbers with names attached, in XML, KVN, JSON or CSV.

The analytical job this source does is unglamorous and irreplaceable: it converts a satellite name into a position you can compute at an arbitrary time. Nothing else in the open catalogue does that for the whole population of tracked objects. Every downstream space question rests on it. Was an imaging satellite overhead when the photograph was taken. Which constellation could have relayed that terminal's traffic at that hour. What passed over the launch site in the window between the two images. Which object is the piece of debris that just triggered a collision avoidance manoeuvre. Which satellite's ground track explains a burst of RF activity a receiver logged at a known time. The catalogue also carries an ownership and provenance layer that other space sources do not: launch date, launch site, registering country, object type, and decay date where applicable. That makes it the join key between the physical space picture and the legal and geopolitical one – a national registry entry, an ITU filing, an export-control question, a sanctions question about who really operates a spacecraft. For SPACEINT work this is the primary collection route; for GEOINT it is the tasking and validation layer that tells you whether an overhead collection opportunity was even possible.

Who publishes it, and why that matters

The two operators have genuinely different incentives and you should not treat them as interchangeable. Space-Track is a government service. Its purpose is to discharge a US policy commitment to share space situational awareness data, and its content is therefore shaped by what the United States is willing to publish, which is a policy decision that has changed before and can change again. Registration ties your identity to your queries, the user agreement constrains redistribution, and access is a privilege that can be withdrawn. CelesTrak is essentially a one-person institution with an enormous reputation, operated by an analyst who has been curating this data since the 1980s and who also works in the commercial conjunction assessment field. Its incentive is professional credibility, and its output quality reflects that: the groupings, format conversions and documentation are better than the official service's. The dependency risk is correspondingly personal rather than institutional. The practical posture is to build against CelesTrak for convenience and breadth of format, register on Space-Track for the classes CelesTrak does not carry – historical element sets, conjunction messages, decay predictions – and keep local mirrors of both, because neither is contractually obliged to keep serving you.

Provenance is the first question to ask of any dataset and the one most often skipped. Who collects it, what their incentive is, whether they publish a methodology, and whether they correct the record when they get something wrong all bear directly on how much weight a finding drawn from it can carry.

What a record actually contains

The fields you will be working with, what each one means, and whether it is something you can pivot on. Read the meanings carefully — more analysis is wrecked by misreading a field than by failing to find one, and a field that looks like an observation is often an inference.

Field Type What it means Pivot value
NORAD_CAT_ID int The catalogue number assigned when an object was first tracked and correlated. It is the durable primary key for an object, but it is not permanent for a spacecraft: a satellite that is never correlated has none, and the numbering scheme has been extended with an alphanumeric first character to get past the five-digit ceiling. Space-Track satcat record, CelesTrak group membership, historical element sets, decay and conjunction records.
OBJECT_ID string The international designator, also called the COSPAR ID: launch year, launch sequence number of that year, and a piece letter. Objects from the same launch share the first two components, which is how you reconstruct a launch stack from a debris field. Sibling objects from the same launch, UNOOSA registry submissions, launch vehicle identification, national registration filings.
OBJECT_NAME string The catalogue's name for the object. It is an operational label maintained by the catalogue holder, not a legal name; it changes when an operator renames a spacecraft, and debris carries the parent object's name plus a descriptor. Operator identification, mission literature, ITU filings – but always via the numeric identifiers, never by string match alone.
EPOCH timestamp The instant to which the element set applies, in UTC. This is the single most important field in the record. Accuracy is best at epoch and degrades away from it in both directions; an element set is a snapshot of a fit, not a validity window. Element set freshness assessment, manoeuvre detection by comparing consecutive epochs, propagation error budgeting.
MEAN_MOTION int Revolutions per day, expressed as a mean element in the SGP4 sense rather than an instantaneous orbital rate. It encodes the orbit size and is the field that moves first when a spacecraft raises or lowers its orbit. Semi-major axis and altitude derivation, manoeuvre detection, orbital regime classification.
INCLINATION int Orbital plane tilt relative to the equator, in degrees. Determines the latitude band an object can overfly and is the strongest single clue to mission type: sun-synchronous imaging, equatorial communications, high-inclination reconnaissance. Mission-type inference, ground track latitude limits, launch site inference from achievable inclinations.
RA_OF_ASC_NODE int Right ascension of the ascending node, in degrees – the orientation of the orbital plane in inertial space. Together with inclination it defines the plane; its drift rate is what makes a sun-synchronous orbit hold its local solar time. Plane matching between objects, constellation structure reconstruction, local time of ascending node derivation.
ECCENTRICITY int Orbit shape, dimensionless. Near zero for most operational LEO and GEO objects; high values indicate transfer orbits, Molniya-type orbits, or an object that has been perturbed or partially decayed. Orbital regime classification, transfer orbit and upper-stage identification, apogee and perigee derivation.
ARG_OF_PERICENTER int Angle from the ascending node to perigee, in degrees. Meaningful for eccentric orbits, effectively arbitrary and numerically unstable for near-circular ones, which is a common source of spurious change detection. Apogee latitude for eccentric orbits, Molniya dwell region identification.
MEAN_ANOMALY int Position of the object along its orbit at epoch, in degrees, in the mean rather than true sense. This is the phase term, and it is the fastest-changing and least durable number in the record. Phasing analysis within a constellation, along-track separation between objects sharing a plane.
BSTAR int A drag-like term in the SGP4 model. It is a fitted coefficient that absorbs whatever the fit could not otherwise explain, not a physical ballistic coefficient, and it can take implausible or negative values without indicating anything real about the object. Decay rate estimation for uncontrolled objects, atmospheric density event correlation – with heavy caveats.
CLASSIFICATION_TYPE enum Almost always unclassified in public data. Its presence is a reminder that the public catalogue is a filtered view of a larger internal one, and that filtering is the source's defining limitation. None directly; treat as a marker that withheld objects exist.
OBJECT_TYPE enum Payload, rocket body, debris, or to-be-assigned, from the satellite catalogue rather than the element set. The to-be-assigned state means the catalogue holder has not yet decided what the object is, and it is where new and interesting objects sit. Population filtering, debris-cloud attribution, identification of newly catalogued objects awaiting classification.
DECAY_DATE timestamp Date an object re-entered, in the satellite catalogue. A populated decay date means the object is gone; a null one means it is still catalogued, which is not the same as still functioning. Re-entry event timelines, debris population trend analysis, correlation with reported ground recoveries.

Coverage — and what is not in it

Coverage is the whole Earth orbital environment above the sensor network's detection threshold, which in practice means objects roughly the size of a softball or larger in low Earth orbit and considerably larger at geosynchronous altitude. That population runs to tens of thousands of tracked objects, the great majority of which are debris and spent rocket bodies rather than working spacecraft. Temporal coverage is continuous from the beginning of the space age: the catalogue includes decayed objects going back to 1957, and Space-Track carries historical element sets so you can reconstruct where an object was on a date decades ago. Update rhythm is the thing to internalise. Element sets are regenerated as new tracking data is fitted, which for most active LEO objects means several times per day and for high-altitude or poorly tracked objects can mean days between updates. Newly launched objects appear after they have been detected, correlated and assigned, which takes anywhere from hours to weeks, and large deployments of many similar satellites from a single launch take longer still because the correlation problem is genuinely hard. Geographic coverage of the sensor network is not uniform: it is stronger over the northern hemisphere and over the oceans the United States monitors, which shows up as uneven update latency rather than as missing objects.

Known blind spots

Absence of evidence here is not evidence of absence. These are the conditions under which CelesTrak / Space-Track will not show you something that is nevertheless real:

  • The public catalogue is a filtered version of the internal one. Objects associated with sensitive national security missions – reconnaissance satellites in particular – are routinely withheld or published without element sets, so a query returning nothing at an orbital regime does not mean nothing is there.
  • Uncorrelated tracks, sometimes called analyst objects, are tracked but not published, so a real object can be under active surveillance and completely absent from anything you can download.
  • Element sets contain no manoeuvre information whatsoever. A satellite that changes orbit is represented by a new fit some hours later, and the propagated position across the manoeuvre is silently and badly wrong with nothing in the record to warn you.
  • SGP4 mean elements cannot be converted to precise positions. Typical along-track error is kilometres within days of epoch, which is fine for pass prediction and useless for close-approach analysis, and no amount of care in your code changes that.
  • Debris below the tracking threshold – which is most debris by count and the population that actually causes mission-ending damage – is entirely invisible, so this source systematically understates the collision environment.
  • Objects in cislunar space, deep space trajectories and highly eccentric orbits beyond geosynchronous altitude are sparsely tracked and irregularly updated, so the catalogue thins out exactly where new activity is growing fastest.
  • The catalogue reflects what the United States chooses to share. Publication policy has been revised before, other nations maintain their own catalogues they do not share, and there is no guarantee that today's disclosure level persists.
  • Naming and ownership fields are administrative labels, not verified beneficial ownership. A spacecraft operated by one entity on behalf of another, or transferred after launch, keeps its original catalogue attribution until someone updates it.
  • Supplemental operator-provided element sets exist only for the operators who choose to provide them, so the best data in the catalogue is available for exactly the constellations that are already the most transparent.

Write the blind spot into the product. A statement that something “was not observed in CelesTrak / Space-Track” is defensible; a statement that it “did not happen” is not, and the difference is what survives cross-examination.

Access, licensing and what you may do with it

Access model: Open — no account required

CelesTrak needs no account. You request a group, a catalogue number or an international designator from the general perturbations endpoint and specify a format, and you get the data back immediately. The service is deliberately simple and the group names are stable enough to build against. Space-Track requires free registration with a real identity and acceptance of a user agreement; you authenticate by posting credentials to obtain a session cookie and then issue queries against named data classes with a predicate and ordering syntax in the URL path. Sessions are meant to be reused rather than re-established per request, and the service actively enforces this. In practice the correct architecture is a single scheduled job that logs in once, pulls the classes you need, writes them to your own store, and logs out – not a library that authenticates on every call. Keep credentials out of code and out of any repository, because a Space-Track account is tied to a named person who accepted an agreement, and its misuse is attributable to that person.

Licence

US Government works are generally not subject to domestic copyright, and the raw orbital data is public information, but that is not the whole answer and treating it as such has caused problems for other organisations. Space-Track access is governed by a user agreement you accept at registration, which historically has constrained onward redistribution of bulk data to third parties and required attribution; the current text is the authoritative statement and you should read it rather than rely on any summary including this one. CelesTrak publishes its own terms covering the reuse of its curated products and asks for attribution; the value it adds – grouping, format conversion, supplemental data – is its own work product even where the underlying numbers are not. If you intend to redistribute, resell, or build a commercial product that serves this data onward, get a written position on both agreements first. If you are merely computing positions for internal analysis, you are on comfortable ground with either.

Rate limits and fair use

Space-Track publishes explicit throttling guidance and enforces it; the documented limits are expressed per minute and per hour, and exceeding them will get an account suspended rather than merely rate-limited. The service's own advice is to pull broad queries on a schedule and filter locally rather than issuing many narrow queries, and to reuse an authenticated session instead of logging in repeatedly. CelesTrak's guidance is philosophically similar: element sets are regenerated a few times a day, so polling more often than that gains you nothing and costs the operator bandwidth, and clients that hammer the service are blocked. The correct pattern for both is a scheduled bulk pull of the groups or classes you care about, cached locally, with per-object queries reserved for genuine one-off lookups. If you need positions at high frequency, propagate locally from a cached element set – that is what SGP4 is for – rather than asking a remote service for a position every few seconds.

Licensing changes, and it changes without warning. A dataset that was free for research this year may not be free for commercial or evidential use next year. Confirm the current terms before you build a dependency on it, and record the terms you relied on alongside the data — the licence in force at the time of collection is part of the provenance.

Collecting it

How CelesTrak / Space-Track is actually pulled, in the order you would set it up. Prefer the bulk or export interface over per-item lookups wherever one exists: it is kinder to the publisher, faster for you, and gives a reproducible snapshot rather than a series of point-in-time answers you cannot reconstruct later.

Method Format Cadence Notes
CelesTrak group pull JSON two to four times daily The workhorse. Request a named group such as active payloads or a specific constellation, in JSON or CSV OMM form, and store the whole set. Cheaper and more useful than per-object queries.
CelesTrak per-object query JSON on demand By catalogue number or international designator, for lookups on a specific object of interest. Use sparingly; if you find yourself looping over it, pull the group instead.
Space-Track class query JSON daily For the classes CelesTrak does not republish: the full satellite catalogue with launch and decay metadata, historical element sets, decay predictions, and public conjunction data messages.
Historical element set retrieval JSON one-off per investigation Space-Track retains past element sets, which is how you compute where an object was on a date in the past rather than where the current fit says it would have been.
Supplemental operator elements JSON daily where available CelesTrak carries operator-supplied element sets for some constellations. These are more accurate and more current than the catalogue fit, and they exist only for cooperative operators.
Local mirror and diff JSONL every pull Append each pull to your own store with the retrieval time recorded. The diff between consecutive pulls is where manoeuvre detection and new-object detection actually live.

Ingesting it into the platform

Every step below is idempotent and cursor-based: interrupt one and it resumes from where it stopped rather than duplicating rows or losing progress. Collection is recorded per source, so a feed that quietly stops publishing shows up as a stale timestamp instead of silently thinning your coverage.

  1. Register both distributors as distinct sources — Record CelesTrak and Space-Track separately in sources.php even though they carry overlapping data, because their update latency, licence terms and coverage differ and a later analyst needs to see which one a given record came from.
  2. Schedule the bulk pull — Configure collect.php to fetch the groups and classes you need on a cadence matched to the update rhythm, and let cron.php own the schedule so a failed pull surfaces as a job failure rather than as quietly stale orbital data.
  3. Normalise to OMM semantics — During ingest.php, parse everything into named orbital elements rather than storing raw two-line strings. Keep the original text alongside the parsed record so a later format question can be answered from the source bytes.
  4. Key on the numeric identifiers — Use catalogue number and international designator as the identity anchors and treat the object name as a mutable attribute. Never join on name; names change, repeat across missions and vary in punctuation between distributors.
  5. Version every element set — Store each element set as a new row keyed on object plus epoch rather than updating in place. The history is the analytical product – without it you cannot detect a manoeuvre or reconstruct a past position.
  6. Enrich with catalogue metadata — Run enrich.php to attach launch date, launch site, registering country, object type and decay status from the satellite catalogue class, so an element set can be reasoned about as an asset rather than a number.
  7. Correlate against other collection — Use correlate.php to relate computed passes to timestamped observations from other sources – imagery acquisition times, RF logs, AIS gaps – and record the correlation as an inference with its error assumption attached.
  8. Build the case and alert — Push resolved objects and events into cases.php and timeline.php, and configure alert rules so that a new object at a watched inclination, or an element set change exceeding a manoeuvre threshold, raises a notification.

Registered sources and their last-collected state are listed in sources.php, and the scheduled chain that keeps them current is in automation.php.

How it is wrong, and how to tell

Every dataset is wrong in characteristic ways. Knowing which ways is the difference between using a source and being used by one, and it is the part of source evaluation most often skipped because it is the part that takes work.

For its intended purpose this is high-quality data with a precisely known failure mode, which is a better situation than most sources in this catalogue. The catalogue holder is a professional organisation with dedicated sensors, and the fits are generally sound. The quality question is not whether the numbers are right but whether they support the use you are putting them to. An element set propagated with SGP4 will typically place an object within a few kilometres along-track near epoch, with error growing roughly linearly and faster for low-perigee objects in periods of elevated atmospheric density. That is entirely adequate for predicting whether a satellite was above the horizon at a location, for computing an approximate ground track, and for constellation-level analysis. It is not adequate for conjunction assessment, for pointing a narrow-beam antenna without tracking feedback, or for any claim that depends on where an object was to within a hundred metres. Judge quality by epoch age first, then by orbital regime, then by whether the object is manoeuvrable. A three-hour-old element set for a passive LEO debris object is excellent. A three-day-old element set for an active spacecraft that raises its orbit weekly is close to worthless and will not tell you so.

Characteristic false positives

  • Propagating far from epoch produces a confident, precise, wrong position. The output of SGP4 carries no uncertainty estimate, so a two-week-old element set returns coordinates that look exactly as authoritative as a one-hour-old one.
  • Undetected manoeuvres are the classic failure. Between a manoeuvre and the next fitted element set, every computed position for that spacecraft is wrong, and the discrepancy is largest for exactly the active satellites analysts care most about.
  • Mean elements get mistaken for osculating elements. Feeding SGP4 mean motion into a general-purpose two-body propagator, or reading the elements as instantaneous Keplerian values, produces errors of tens of kilometres and is one of the most common mistakes in amateur space analysis.
  • Argument of perigee and mean anomaly are numerically unstable for near-circular orbits, so naive change-detection on those fields flags manoeuvres that did not happen for satellites that never moved.
  • Catalogue numbers are reused in analysis contexts and objects get re-designated after correlation is corrected, so a number recorded in an old report may not point at the same object today.
  • The BSTAR term is a fitting artefact rather than a physical quantity. Deriving a ballistic coefficient or a decay date from it directly, without treating it as a fitted nuisance parameter, produces re-entry predictions that are wrong by weeks.
  • New objects from a large multi-satellite deployment are frequently misassigned to the wrong spacecraft in the first days after launch, so early identification of a specific satellite within a batch is unreliable and often silently corrected later.
  • Absence in the public catalogue is routinely read as absence in orbit. For sensitive payloads this inverts the truth: the objects most likely to be missing are the ones most likely to matter.

None of these make the source unusable. They make it a source that requires corroboration before an assertion built on it goes into a product, which is true of every source and admitted by few.

Ageing

Ageing here is measured in hours, not months, and it is the defining property of the source. An element set begins degrading the moment it is issued. For a low Earth orbit object below about five hundred kilometres, useful accuracy is a day or two; for higher LEO, several days; for geosynchronous objects, longer but complicated by station-keeping manoeuvres that invalidate the fit without changing the orbit much. A stale record does not look stale. It looks like a perfectly well-formed set of numbers with an epoch field you did not check. The disciplined habit is to compute and carry epoch age as a first-class attribute on every derived position, to refuse to answer questions where the age exceeds a threshold you set in advance for that orbital regime, and to state the epoch alongside any position you report. Separately, the catalogue metadata ages on a different clock: ownership changes, operators go out of business, spacecraft are retired without a decay date, and an object listed as an active payload may have been dead for years. The element set tells you where a thing is; it never tells you whether it is working.

What this source feeds

A source is only worth what it lets you conclude. These are the disciplines that collect through it, the mission domains it serves and the data points it yields — every one is a tag, so you can follow any thread from here into the rest of the library.

Collected by these intelligence disciplines

Serves these mission domains

Yields these data points

How each sector uses CelesTrak / Space-Track

The same dataset is worked very differently depending on who you are, what authority you hold, and what you are ultimately producing. A military analyst is supporting a commander’s decision; a journalist is meeting a publication standard; an NGO caseworker is protecting a person. The records are shared — the constraints, thresholds and outputs are not.

🎖 Military and defence

This is the open baseline for space domain awareness and the reference against which any classified picture is compared. Practical uses are overhead pass prediction for camouflage, concealment and deception planning, characterising an adversary's imaging and signals collection cadence over an area of operations, understanding which communications and navigation assets are available in a theatre at a given hour, and maintaining a watch on newly catalogued objects at inclinations associated with reconnaissance. The critical discipline is knowing what the public catalogue omits: it is not a complete order of battle, and treating a gap as an absence is how planning assumptions get built on nothing. Use it for the reciprocal question too – what an adversary can compute about your own assets and timing from the same freely available data.

🕵 National intelligence

The strength is longitudinal and structural rather than tactical. Element set histories reveal constellation architecture, orbital plane phasing, replenishment tempo and the operational lifetime of a programme, and the satellite catalogue's launch site and registration fields connect the physical object to the state and organisation that put it there. Manoeuvre detection from epoch-to-epoch element changes is a genuine analytical product: unusual manoeuvring, plane changes, proximity operations and orbit raising all show up as patterns in the sequence even though no individual record mentions them. For SPACEINT collection management, the catalogue is also the honest statement of coverage – it tells you which objects you can reason about publicly and, by its silences, which you cannot.

👮 Law enforcement

The law enforcement use is narrow but real. Satellite communications terminals used in smuggling, illegal fishing and sanctions evasion have geometry constraints: a given terminal can only reach certain spacecraft from certain places at certain times, and the catalogue is how you test whether a claimed communication was physically possible. It also supports timeline validation in cases involving satellite imagery evidence – whether a specific spacecraft could have acquired a specific scene at a specific time. Treat all of this as corroborative geometry rather than as evidence of communication content, and expect the defensible version of the analysis to require a stated propagation error and a documented element set epoch.

🔍 Private investigation and corporate security

Corporate investigators encounter this source mainly through due diligence on space-sector companies and through imagery provenance questions. The catalogue lets you verify that a company's claimed constellation actually exists in orbit, how many of its satellites are catalogued, when they launched and from where, and whether any have decayed – all of which is a useful reality check against investor materials. It also lets you test whether a satellite image offered as evidence could plausibly have been taken by the platform claimed, at the time claimed. The limitation is that the catalogue tells you nothing about whether a spacecraft works, and a healthy-looking catalogue entry is compatible with a dead satellite and a failed company.

📰 Journalism and OSINT media

For reporting on space, this is the primary document. It supports concrete, checkable claims – a satellite launched on this date from this site, still in orbit, in this kind of orbit – and it lets you independently verify or refute company and government statements about deployments. It is also the standard tool for the imagery provenance question that comes up constantly in conflict reporting: was an imaging satellite in a position to see this place at this time. Two reporting cautions matter. First, the propagated position is an estimate and should be described as one, with the epoch stated. Second, the absence of an object from the public catalogue is a policy fact about the United States, not a fact about orbit, and writing it as the latter is a serious and common error.

🌍 NGO, humanitarian and human rights

Human rights and environmental monitoring organisations use the catalogue to plan and validate imagery-based documentation: when a given commercial imaging satellite will next pass over a site, and therefore when a tasking request can realistically be fulfilled and when an existing image was likely acquired. It also underpins the verification of satellite-derived evidence in reports that will be challenged – being able to state which platform, in which orbit, could have made an observation is the difference between an assertion and a demonstration. Because the data is free and unauthenticated at CelesTrak, it is accessible to organisations with no budget, and the whole workflow can be run offline once the element sets are cached.

🎓 University and research

The catalogue supports several distinct research programmes: orbital debris population modelling and long-term environment evolution, space traffic management and conjunction policy, the political economy of space transparency, and the methodological literature on manoeuvre detection from public element sets. It is a genuinely longitudinal dataset going back to the beginning of the space age, which is rare. Researchers should be explicit about two structural properties in any quantitative work: the catalogue is a censored sample with a policy-determined censoring mechanism, and its detection threshold has changed over time as sensors improved, so raw counts of catalogued objects across decades measure sensor capability as much as they measure the debris environment.

Playbook: working CelesTrak / Space-Track end to end

A repeatable sequence from first pull to finished product. Each phase states what you are trying to establish, not merely what to click — the objective is a defensible chain of reasoning, not a completed checklist.

Phase 1 — Fix the question to the accuracy the data can support

Decide up front whether you need a pass prediction, a ground track, a plane-level constellation description or a precise position. The first three are well supported and the fourth is not. If the answer changes when the object is two kilometres further along its track, this source alone cannot give you a defensible answer and you should say so before doing the work.

Phase 2 — Establish identity before geometry

Resolve the object to a catalogue number and an international designator, and record both. Names are ambiguous across distributors and across time, and a large fraction of published space analysis is wrong because it matched on a name. Where the object belongs to a multi-satellite launch, note that individual assignment within the batch may be provisional.

Phase 3 — Pull the element set with its epoch and keep them together

Retrieve from CelesTrak for convenience or Space-Track for historical depth, and store the epoch as a first-class field beside every element. From this point onwards, epoch age travels with every derived number you produce. An analysis that loses track of epoch has lost track of its own error bar.

Phase 4 — Choose the right element set for the time you care about

For a question about the past, retrieve the historical element set whose epoch is nearest the time in question rather than propagating today's set backwards. Backward propagation across a manoeuvre or across weeks of drag is the single largest avoidable error in this workflow, and Space-Track's historical classes exist precisely to avoid it.

Phase 5 — Propagate with SGP4 and nothing else

Use an SGP4 or SDP4 implementation from a maintained library. These are mean elements defined by the model that consumes them, and feeding them to a general Keplerian propagator produces plausible, wrong output. Verify your implementation against the published test cases before you trust a single result.

Phase 6 — Compute the observation geometry, not just the position

For most real questions the useful output is derived: elevation and azimuth from a ground point, the sub-satellite track, the illumination condition of the satellite and of the ground, and the access window. Compute these explicitly rather than eyeballing a position, and record the assumptions – horizon mask, minimum elevation, sensor field of regard – that turn geometry into an access claim.

Phase 7 — Attach an honest error estimate

Translate epoch age and orbital regime into a stated along-track uncertainty, and carry it into the finding. A pass window of ninety seconds computed from a five-day-old element set is really a window of several minutes. Analysts who skip this step produce findings that are precise, confident and occasionally embarrassing.

Phase 8 — Detect manoeuvres from the element set sequence

Compare consecutive element sets for the same object and look for step changes in mean motion, inclination and node beyond the fit noise. This is a real analytical product, but it requires a baseline of that object's normal fit variation, and it will not tell you when the burn occurred – only that it happened somewhere between two epochs.

Phase 9 — Cross-check against an independent observer

Where a finding matters, corroborate with an independent source: operator-supplied supplemental elements, amateur optical and radio observation networks, published launch and deployment reporting, or a national registry filing. Independent confirmation is what separates a catalogue lookup from an assessment.

Phase 10 — Reconcile the object with its legal and commercial identity

Use the launch date, launch site, registering country and object type to connect the spacecraft to its registry filing, its spectrum authorisation and its operator. This is where a space finding becomes a geopolitical, export-control or sanctions finding, and it is the step most technical analysts skip.

Phase 11 — Record the negative space

Write down what the catalogue does not show for your question: withheld objects, uncorrelated tracks, sub-threshold debris, and objects awaiting classification. A space assessment that does not state its censoring mechanism is overstating what open data can support, and reviewers in this field will notice.

Phase 12 — Package with reproducible parameters

Export the finding with the element set used, its epoch, the propagator and version, the observation geometry assumptions and the retrieval timestamp. Anyone re-running the analysis a month later with fresh element sets will get a different answer, and the record of what you used is what makes the original defensible.

The platform ships this as a step-checked workflow in playbooks.php, so progress is recorded against a case rather than held in someone’s head.

What to pair it with

No single source carries a finding. These are the datasets that corroborate, extend or contradict this one — and a source that contradicts is worth more than one that agrees, because it is the only thing that will tell you when you are wrong.

Source Relationship What it adds
N2YO extends Serves precomputed positions and pass predictions from the same underlying element sets, which saves implementing a propagator for casual lookups at the cost of not controlling the epoch or the assumptions.
NOAA Space Weather Prediction Center corroborates Atmospheric density driven by geomagnetic activity is the main cause of unexpected orbital decay and element set degradation in low Earth orbit, so space weather explains a large share of propagation error.
UNOOSA Register of Objects Launched into Outer Space extends The treaty-based registration record connecting a catalogued object to the state that registered it and the function it was declared to perform. The legal layer the catalogue lacks.
ITU space network filings extends Frequency and orbital slot filings identify who has authorisation to operate a spacecraft and on what spectrum, which is often more revealing about ownership than the catalogue name.
SatNOGS corroborates Distributed amateur ground station network that actually receives satellite transmissions, which is independent evidence that a catalogued object is alive and transmitting rather than merely present.
Jonathan McDowell's space reports corroborates Long-running independent chronology of launches, deployments and re-entries, maintained with a documented methodology and frequently ahead of catalogue assignment for new objects.
Heavens-Above extends Observer-oriented pass prediction and visual magnitude estimation, useful for planning or validating optical observation of a catalogued object.
CCSDS standards prerequisite The Orbit Mean-Elements Message specification defines the field semantics that make the modern formats interoperable, and it is the reference for what each element actually means.

Legal, ethical and operational constraints

The data itself is about as legally uncomplicated as anything in this catalogue – it is public information published by a government for the express purpose of being used – but three constraints deserve attention. First, the Space-Track user agreement is a contract you accepted, and its redistribution provisions bind you regardless of the underlying data's copyright status; read the current text before republishing bulk data or serving it onward to customers. Second, in most jurisdictions the analysis you build from this data can attract export control or national security attention when it concerns foreign military space assets, particularly if you combine it with other collection to characterise capability; know your own regime's rules on space situational awareness products before publishing detailed assessments of another state's reconnaissance architecture. Third, and less obviously, using orbital data to plan or validate imagery collection over private property or over people engages the same privacy and proportionality tests as any other surveillance-adjacent activity – the fact that the geometry is public does not make the resulting observation automatically proportionate. None of this makes the source difficult to use; it makes the products you build from it worth a legal read before they go out.

Operational security

CelesTrak queries are unauthenticated but not anonymous: the operator sees your address, timing and exactly which catalogue numbers or groups you asked for, and a pattern of repeated narrow queries against one object is a legible statement of interest. Space-Track is materially more exposing, because access is tied to a registered identity that a person accepted an agreement under, queries are logged against that account, and the account is held by a foreign government whose interest in who is asking about which objects is not hypothetical. If your interest in a particular spacecraft is itself sensitive, the correct pattern is to pull broad groups on a routine schedule and filter locally, so that the query log shows a standing collection rather than a targeting decision. Do not build a workflow whose query pattern spikes when your organisation becomes interested in something. Mirror locally, propagate locally, and treat every per-object lookup as a small disclosure.

Two rules that hold regardless of jurisdiction. Collection that is lawful is not automatically proportionate, and a dataset assembled for one purpose does not carry consent for another. Where the records concern identifiable people, the question is not only whether you may hold the data but whether holding it serves the purpose you are accountable for.

Is it earning its place?

Sources accumulate. Feeds get added during an incident and are never reviewed again, and a decade later the pipeline is carrying dead weight that nobody dares remove. These are the measures that show whether CelesTrak / Space-Track is contributing anything, and they are worth baselining now so the answer is available later.

  • Median epoch age of the element sets in your store at the moment of analysis, by orbital regime, which is the single best proxy for how much your derived positions can be trusted.
  • Proportion of watched objects for which the most recent element set is older than the threshold you set for that regime, tracked over time as a collection health indicator rather than a source defect.
  • Number of manoeuvres detected from element set sequences that were subsequently corroborated by an independent source, against the number flagged, as a direct measure of your detection threshold's calibration.
  • Latency between a publicly reported launch and the appearance of correlated objects in the catalogue, which tells you how long your blind window is for new deployments.
  • Rate of provisional identity reassignment within multi-satellite launches, measured by comparing your recorded assignment against the catalogue a month later.
  • Count of findings in which a computed pass window was corroborated by an independent observation – imagery timestamp, RF log, ground observer – as the practical validation of your whole propagation chain.
  • Share of your analysis that depends on objects the public catalogue does not carry, estimated honestly, as the running statement of how much of the picture you are missing.

Beware of volume. Indicator counts rise easily and say almost nothing. Unique contribution — findings this source produced that no other source in your stack would have — is the measure that matters, and it is usually far lower than anyone expects.

Tradecraft notes

The distinctions that separate a competent analyst from a fast one:

  • Epoch is the field. Any position, pass or ground track you produce is a claim about a moment, computed from a fit made at another moment, and the distance between them is your error budget. An analyst who quotes a position without an epoch has not finished the analysis.
  • Use historical element sets for historical questions. Propagating the current set backwards across days or weeks is the most common serious error in this workflow, and Space-Track's history classes exist specifically so you do not have to.
  • Mean elements are defined by their propagator. They are not Keplerian osculating elements and are only meaningful inside SGP4 or SDP4. If your tool does not name SGP4, it is the wrong tool.
  • Manoeuvre detection needs a per-object baseline. Every object has a characteristic fit noise level, and a threshold that works for a stable GEO satellite will fire constantly on a low-perigee LEO object during elevated solar activity.
  • A catalogued object is not a working object. There is no health field. Confirm liveness through an independent channel – received transmissions, operator statements, observed station-keeping – before describing a spacecraft as operational.
  • Absence is a policy statement, not a physical one. When the catalogue is silent about an orbital regime you expect to be populated, the finding is about disclosure policy, and it should be written that way.
  • Prefer group pulls to per-object queries, for accuracy as well as etiquette. Working from a consistent snapshot of a whole population avoids the subtle errors that come from mixing element sets retrieved at different times.
  • Supplemental operator elements beat catalogue fits when they exist, and their existence is itself informative: it tells you which operators are cooperating with the space traffic management ecosystem and which are not.
  • Record the propagator version. Implementations differ at the margins, the reference implementation has been revised, and a finding that cannot be reproduced because nobody wrote down which library was used is not a finding.

Questions analysts actually ask

Should I use CelesTrak or Space-Track?

Both, for different jobs. CelesTrak is faster to work with, needs no account, and its grouped, format-converted products cover most operational needs. Space-Track is the official source and carries what CelesTrak does not republish: the full catalogue with launch and decay metadata, historical element sets, decay predictions and public conjunction messages. Build against CelesTrak, register on Space-Track, mirror both.

How accurate is a position computed from a TLE?

Typically within a few kilometres near epoch, degrading roughly linearly with time and considerably faster for low-perigee objects during geomagnetic storms. It is more than adequate for pass prediction, ground tracks and constellation analysis, and it is not adequate for conjunction assessment or any claim that turns on hundreds of metres. The data carries no uncertainty estimate, so you must supply one.

Can I see military reconnaissance satellites?

Some, partially, and the most sensitive ones not at all. The public catalogue is filtered, objects associated with sensitive missions are routinely withheld or published without element sets, and uncorrelated tracks are never published. Independent amateur observation networks fill part of this gap, and their results should be treated as unofficial observations rather than catalogue data.

Why did a satellite's position suddenly jump between two of my queries?

Almost always because a new element set was fitted after a manoeuvre or after a significant tracking update. The jump is not the spacecraft moving instantaneously; it is your model being corrected. Comparing the two element sets tells you roughly how much the orbit changed, but not when within the interval it changed.

How soon after a launch do new objects appear?

Anywhere from hours to weeks. The objects must be detected, tracked long enough to fit an orbit, and correlated to a launch, and multi-satellite deployments take longer because separating many similar objects is genuinely difficult. Early assignments within a batch are provisional and are quietly corrected later, so do not build a finding on which specific satellite of twenty a given catalogue number represents in the first weeks.

Can I use this to prove a satellite photographed a specific place?

You can establish whether the geometry permitted it, which is a meaningful and often decisive negative test. You cannot establish that a collection occurred, because tasking, sensor pointing, cloud cover and operator decisions are not in this data. State it as an access opportunity with a propagation uncertainty, never as an observation.

Is it legal to redistribute this data?

The underlying US Government data is public information, but Space-Track access is governed by a user agreement with redistribution provisions and CelesTrak publishes its own terms for its curated products. Read the current text of both before republishing in bulk or building a commercial service. For internal analysis you are on comfortable ground.

What is the difference between a TLE and an OMM?

They carry substantially the same mean elements. The two-line element set is a fixed-column text format with implicit decimal points, a five-character catalogue field and no room for extension. The Orbit Mean-Elements Message is the CCSDS standard carrying named fields in XML, KVN, JSON or CSV. Build new work against OMM; the legacy format's field widths are a real constraint the catalogue has already had to work around.

Why does my old code break on some catalogue numbers?

Because the five-digit field ran out. The catalogue adopted an alphanumeric encoding of the first character to extend the range, so parsers that assume five numeric digits fail on newer objects. Longer-term the community is moving to a wider identifier entirely. Parse the catalogue number as a string, not an integer, and validate against the current documentation.

Standards, formats and interoperability

What this source speaks natively, and what it has to be translated into before a partner can consume it. Work that arrives in a recognised format is easier to defend, easier to hand over and easier to automate against:

  • The two-line element set format is a fixed-column legacy encoding with implicit decimal points, checksums and a five-character catalogue number field; its constraints explain most of the identifier awkwardness in this domain.
  • The CCSDS Orbit Mean-Elements Message defines the modern named-field representation of the same data, with KVN, XML, JSON and CSV serialisations, and is what new integrations should target.
  • SGP4 and SDP4 are the simplified perturbations models these mean elements are defined against; the published reference implementation and its test vectors are the standard for verifying your own propagation chain.
  • The international designator follows the COSPAR convention of launch year, launch number and piece letter, which is the durable link between an orbital object and its launch event.
  • The UN Registration Convention obliges launching states to register space objects, producing the legal record that the catalogue's launch and country fields should be reconciled against.
  • Conjunction Data Messages, also a CCSDS standard, express close-approach information and are the format in which the public conjunction feed is expressed.
  • The platform exports derived space entities and events in STIX 2.1, MISP, CSV, JSON and JSONL, so a spacecraft or a pass event travels into a case alongside any other observable.

References

Primary documentation and authoritative references for this source. Publishers revise and retire material, so treat the retrieval date as part of the citation and re-check before relying on any of it in a formal product.

  1. CelesTrak — CelesTrak. The service itself. Start with the current element set groups to see what collections exist and how they are organised.
  2. CelesTrak general perturbations endpoint — CelesTrak. The query interface for element sets by group, catalogue number or international designator, with format selection. The single most useful URL in the space catalogue.
  3. CelesTrak NORAD element sets index — CelesTrak. The catalogue of available groups. Reading this list is the fastest way to understand how the object population is partitioned in practice.
  4. Space-Track.org — United States Space Force. The official distribution service. Registration, the user agreement, the API documentation and the data classes that CelesTrak does not republish.
  5. CCSDS Publications — Consultative Committee for Space Data Systems. Where the Orbit Mean-Elements Message and Conjunction Data Message standards live. The authoritative definition of field semantics.
  6. United Nations Office for Outer Space Affairs — UNOOSA. The Register of Objects Launched into Outer Space and the treaty framework behind it – the legal counterpart to the technical catalogue.
  7. International Telecommunication Union — ITU. Space network filings and spectrum authorisations, which frequently identify the real operator of a spacecraft more clearly than its catalogue name.
  8. SatNOGS — Libre Space Foundation. Open ground station network and observation database. Independent evidence of whether a catalogued object is actually transmitting.
  9. Jonathan's Space Report — Jonathan McDowell. Independently maintained launch and orbital chronology with a documented methodology, often the best available account of a new deployment before the catalogue settles.
  10. Heavens-Above — Heavens-Above. Observer-oriented pass and visibility prediction, useful for planning optical confirmation of a catalogued object.
  11. python-sgp4 — Brandon Rhodes. A maintained implementation of the reference propagator with the official test vectors, which is how you verify that your propagation chain is correct before trusting any output.
  12. Skyfield — Brandon Rhodes. Practical astronomy library for turning element sets into observer-relative geometry – elevation, azimuth, illumination and access windows – without writing the coordinate transforms yourself.

Link integrity: every reference above was verified with a live request when this page was generated. Where a publisher had moved or withdrawn a document, the link was repointed at a preserved copy in the Internet Archive and marked as archived. Anything with no reachable copy anywhere had its link removed rather than left to rot — the source is still credited, it simply cannot be linked.

Put it into practice

The Quantus Intel threat intelligence platform operationalises this source: it registers both distributors as distinct sources, versions every element set by epoch so manoeuvres and past positions remain recoverable, and carries the propagation uncertainty through to the finished assessment rather than dropping it at the first calculation.. Browse the full source catalogue, or follow any tag above into the rest of the library.

Leave a Reply

Your email address will not be published. Required fields are marked *