The Solar System OpenData
All planets and their moons, all dwarfs planets and the main asteroids.
Dimensions, mass, flattening, gravity, inclination and temperature.
Semimajor axis, perihelion, aphelion, eccentricity, orbital period and orbital speed.
Discovery circumstances, discoverer(s), year discovered and provisional designation.
For every body, all its satellites and the ability to navigate between satellites and the star.
Known count of each object type : planets, moons, asteroids, comets.
Allows you to obtain the position of celestial bodies in the sky for an observer's location.
Added of 128 Saturne's moons.
Removing rowData parameter.
This can be done client-side in JavaScript!
Addition of a new endpoint: /positions.
Allows you to obtain the position of the objcts in the sky for the location of an observer.
Added a mandatory bearer token for calling API.
Token and access keep free.
Added of 15 Jupiter's moons.
Added of 62 Saturne's moons.
Added bodyType.
Values massValue, massExponent, volValue, volExponent are permitted in Filters.
isplanet can be used with true or false value.
Added Mean temperature and orbital characteristics Mean anomaly, Longitude of ascending node and Argument of perihelion.
New endpoint /knowcount
Return the known count of each object type.
Added axial tilt for each planet.
Fix mean radius of the Sun.
Semimajor axis, perihelion and aphelion are now bigint.
Adding 20 Saturn's satellites.
Added temporary designations and English names for all bodies where those informations was missing.
brutData and datas are replaced by rowData and data.
Adding data : volume, density, gravity, escape speed, radius, dimension, perihelion, aphelion and rotation & revolution speed.
Adding mass with two values : mass and the exp 10nkg.
Creation of this website to describe the API. With release notes, API documentation, return data description and Swagger interface.
Adding asteroids and TNO. English names are authorized as keys with a 301 redirection to the French name.
First version of API online with planets and moons. The swagger documentation is online too.
No API with all Solar System data seems to exist. It's time to create one, isn't it?
An URL returns all bodies in the database with all data:
https://api.le-systeme-solaire.net/rest/bodies/
An URL returns all data of one body:
https://api.le-systeme-solaire.net/rest/bodies/{id}
An URL returns all known count for each object type :
https://api.le-systeme-solaire.net/rest/knowncount/
An URL returns known count for the object type :
https://api.le-systeme-solaire.net/rest/knowncount/{id}
Calculation of the astronomical positions of the Sun, Moon, and planets.
Right Ascension (HMS), Declination (DMS), Azimuth (DMS), Altitude (DMS)
Algorithms by Paul Schlyter, advanced corrections. Planetary perturbations. Topocentric corrections.
https://api.le-systeme-solaire.net/rest/positions
Identification is mandatory. Get a free token.
https://api.le-systeme-solaire.net/generatekey.html
All API calls must include an additional header.
Authorization: Bearer _UUID_
| # | Parameter | Action |
|---|---|---|
| 1 | data | The data you want to retrieve (comma separated). Example: data=id,semimajorAxis,isPlanet |
| 2 | exclude | One or more data you want to exclude (comma separated). Example: exclude=id,isPlanet |
| 3 | order | The sort order data you want to use and the sort direction (comma separated). Example: order=semimajorAxis,ascNB : Only one data is authorized. |
| 4 | page | Page number (number>=1) and page size (size>=1 with 20 as default) (comma separated). Example: page=1,10NB: You cannot use "page" without "order"! |
| 5 | rowData | Transform the objects in records. Example: rowData=trueNB: This can also be done client-side in JavaScript! NB: The default value is false. |
| 6 | filter[] | Filters to be applied. Each filter consists of a data, an operator and a value (comma separated). Example: filter[]=id,eq,marsAccepted operators are:
NB: if any filter is invalid, all filters will be ignored. |
| 7 | satisfy | Should all filters match (default). Example: satisfy=anyNB: the only authorized value is any |
| # | Name | Type | Content |
|---|---|---|---|
| 1 | id | string | Id of body in the API. |
| 2 | name | string | Body name (in french). |
| 3 | englishName | string | English name. |
| 4 | isPlanet | boolean | Is it a planet? |
| 5 | moons [{moon, rel}, ...] |
array [{string, string}, ...] |
Table with all moons. moon: Moon name, rel: moon API url. |
| 6 | semimajorAxis | integer | Semimajor Axis of the body in kilometres. |
| 7 | perihelion | integer | Perihelion in kilometres. |
| 8 | aphelion | integer | Aphelion in kilometres. |
| 9 | eccentricity | decimal | Orbital eccentricity. |
| 10 | inclination | decimal | Orbital inclination in degrees. |
| 11 | mass {massValue, massExponent} |
object {number, integer} |
Boby mass in 10n kg. massValue: body mass, massExponent: exponent 10. |
| 12 | vol {volValue, volExponent} |
object {number, integer} |
Body volume in 10n km3. volValue: body volume, volExponent: exponant 10. |
| 13 | density | decimal | Body density in g.cm3. |
| 14 | gravity | decimal | Surface gravity in m.s-2. |
| 15 | escape | decimal | Escape speed in m.s-1. |
| 16 | meanRadius | integer | Mean radius in kilometres. |
| 17 | equaRadius | integer | Equatorial radius in kilometres. |
| 18 | polarRadius | integer | Polar radius in kilometres. |
| 19 | escape | flattening | Flattening. |
| 20 | dimension | string | Body dimension on the 3 axes X, Y et Z for non-spherical bodies. |
| 21 | sideralOrbit | decimal | Sideral orbital time for body around another one (the Sun or a planet) in earth day. |
| 22 | sideralRotation | decimal | Sideral rotation, necessary time to turn around itself, in hour. |
| 23 | aroundPlanet {planet, rel} |
object {string, string} |
For a moon, the planet around which it is orbiting. planet: Planet name, rel: planet API url. |
| 24 | discoveredBy | string | Discovery name. |
| 25 | discoveryDate | string | Discovery date. |
| 26 | alternativeName | string | Temporary name. |
| 27 | axialTilt | decimal | Axial tilt. |
| 28 | avgTemp | integer | Mean temperature in K. |
| 29 | mainAnomaly | decimal | Mean anomaly in degree. |
| 30 | argPeriapsis | decimal | Argument of perihelion in degree. |
| 31 | longAscNode | decimal | Longitude of ascending node in degree. |
| 32 | bodyType | string | The body type : Star, Planet, Dwarf Planet, Asteroid, Comet or Moon. |
| # | Parameter | Action |
|---|---|---|
| 1 | rowData | Transform the objects in records. Example: rowData=trueNB: This can also be done client-side in JavaScript! NB: The default value is false. |
| # | Name | Type | Content |
|---|---|---|---|
| 1 | id | string | Object type. |
| 2 | knowncount | integer | Known count. |
| 3 | updateDate | string | Update date of the Known count. |
| # | Parameter | Action |
|---|---|---|
| 1 | lon | Longitude for observator. Example : lon=45,783552 |
| 1 | lat | Latitude for observator. Example : lat=3,071572 |
| 1 | elev | Altitude for observator. Example : elev=400 |
| 1 | datetime | Date & hour UTC for observator. Example : datetime=2025-09-20T13:05:48 |
| 1 | zone | Time zone. Example : zone=2 |
| # | Name | Type | Content |
|---|---|---|---|
| 1 | name | string | Name of object. |
| 2 | ra | string | Right Ascension in hour-minute-seconde. |
| 3 | dec | string | Declination in degree-minute-seconde. |
| 4 | az | string | Azimuth in degree-minute-seconde. |
| 5 | alt | string | Altitude in degree-minute-seconde. |