Version: 1.1 (2021 December)
change log
The Small-Body Identification API provides a method for finding known small bodies contained within a specified field of view (FOV) with respect to an observer location at a specified time.
GET
https://ssd-api.jpl.nasa.gov/sb_ident.api
Request the list of asteroids contained in the FOV defined by RA limits 10:10:10-10:20:00 and declination limits 10 00’00”-10 30’00” as seen from Mauna Kea observatory (568) at 2021-02-09 00:00:00 - https://ssd-api.jpl.nasa.gov/sb_ident.api?sb-kind=a&mpc-code=568&obs-time=2021-02-09_00:00:00&mag-required=true&two-pass=true&suppress-first-pass=true&req-elem=false&vmag-lim=20&fov-ra-lim=10-10-00%2C10-20-00&fov-dec-lim=10-00-00,10-30-00
Request first-pass data (based on simplified two-body propagation) from observatory F51 (Haleakala), NEO only - https://ssd-api.jpl.nasa.gov/sb_ident.api?mpc-code=F51&obs-time=2020-01-01T11:10:01&fov-ra-center=10-10-10&fov-dec-lim=10-05-10,10-10-10&two-pass=false&req-elem=false&sb-group=neo
Request osculating orbital elements of objects identified by second pass (numerical propagation using realistic force model) given the explicit geocentric state of the observer - https://ssd-api.jpl.nasa.gov/sb_ident.api?xobs=-5.957613176404512E%2B02,-6.319860760764293E%2B03,2.735882778341472E%2B03,7.326499360212761E%2B00,1.801234666741493E-01,2.003177731007209E%2B00&obs-time=2020-12-14&fov-ra-center=03-00-00&fov-dec-center=20-00-00&fov-ra-hwidth=1.5&fov-dec-hwidth=1.5&two-pass=true&suppress-first-pass=true&req-elem=true
[Required] The observer location must be specified using one of the methods described below.
You may specify the observer location on the Earth (topocentric) using either an MPC observatory code, geodetic coordinates (latitude, longitude, and altitude) or the parallax. For spacecraft, you may specify the geocentric or heliocentric state vector of the observer.
Location defined by MPC observatory code:
Parameter | Type | Default | Description |
---|---|---|---|
mpc-code | string | none | MPC observer location code |
Location defined by geodetic coordinates:
Parameter | Type | Default | Description |
---|---|---|---|
lat | number | none | geodetic latitude of observer (degrees, north-postive, [-90, 90]) |
lon | number | none | geodetic latitude of observer (degrees, east-postive, [-180, 180]) |
alt | number | 0 |
altitude above the reference ellipsoid {WGS-84/GPS} (km) |
Location defined by parallax:
Parameter | Type | Default | Description |
---|---|---|---|
lon | number | none | geodetic latitude of observer (degrees, east-postive, [-180, 180]) |
dxy | number | none | parallax constant perp. to Earth’s spin axis (au x 10^7) |
dz | number | none | parallax constant along Earth’s spin axis (au x 10^7) |
Location defined by geocentric state vector:
Parameter | Type | Default | Description |
---|---|---|---|
xobs | string | none | geocentric position vector (km) and, optionally, velocity vector (km/s) of the observer in the equatorial J2000 frame. Fields separated by commas. If the observer’s velocity is not specified, the API will not return the object’s rate of motion. |
Location defined by heliocentric state vector:
Parameter | Type | Default | Description |
---|---|---|---|
xobs-hel | string | none | heliocentric position vector (au) and, optionally, velocity vector (au/d) of the observer in the equatorial J2000 frame. Fields separated by commas. If the observer’s velocity is not specified, the API will not return the object’s rate of motion. |
Parameter | Type | Default | Description |
---|---|---|---|
obs-time | string | none | [required] date/time of the observing night (formatted as YYYY-MM-DD[_hh:mm:ss] or JD, e.g., 2459555.5 ) |
vmag-lim | number | none | visual magnitude threshold |
[Required] The FOV must be defined using one of the two methods described below.
FOV edges defined explicitly:
Parameter | Type | Default | Description |
---|---|---|---|
fov-ra-lim | string | none | right-ascension values of the edges of the FOV (hh-mm-ss[.ss]). Fields separated by commas. For negative values, replace minus sign with M , e.g. M10-00-00.02 |
fov-dec-lim | string | none | declination values of the edges of the FOV (dd-mm-ss[.ss]). Fields separated by commas. For negative values, replace minus sign with M , e.g. M10-00-00.02 |
FOV defined by center and half-width:
Parameter | Type | Default | Description |
---|---|---|---|
fov-ra-center | string | none | right-ascension of the center of the FOV (hh-mm-ss[.ss]). For negative values, replace minus sign with M , e.g. M10-00-00.02 |
fov-dec-center | string | none | declination of the center of the FOV (dd-mm-ss[.ss]). For negative values, replace minus sign with M , e.g. M10-00-00.02 |
fov-ra-hwidth | number | 0.5 | half-width of the FOV along RA (degrees) |
fov-dec-hwidth | number | 0.5 | half-width of the FOV along DEC (degrees) |
Parameter | Type | Default | Description |
---|---|---|---|
two-pass | boolean | false |
request a second pass that numerically integrates the orbits using a high-fidelity force model instead of using a two-body model |
mag-required | boolean | true |
skip objects without magnitude parameters |
suppress-first-pass | boolean | true |
(only used if two-pass is true) suppress output from first pass, which assumes two-body orbits |
Parameter | Type | Default | Description |
---|---|---|---|
req-elem | boolean | false |
request osculating orbital elements of matching objects |
Additional constraints on the orbital and physical parameters of the objects are available using the SBDB Filter.
F51
but never 500
‘geocentric’), orlat
) is specified in decimal degrees (north positive)lon
) is specified in decimal degrees (east positive)alt
) is specified in decimal kilometers (above the reference ellipsoid {WGS-84/GPS})lon
) of observer (degrees, east-postive)dxy
, au x 10^7)dz
, au x 10^7)xobs
- components of the position and velocity vector w.r.t. Earth in the equatorial J2000 frame (km and km/s).xobs-hel
- components of the position and velocity vector w.r.t. the Sun in the equatorial J2000 frame (au and au/d).To request only NEOs, add the field sb-group=neo
to the query URL.
Please always check the JSON payload “signature” object for the API “version”. If the version does not match the version in this document (at the top), there is no guarantee that the format has not changed.
Example "signature" object with "version" value "1.0":
"signature":{"version":"1.0","source":"NASA/JPL ... API"}
A successful run of the SB_IDENT code results in details related to the observer location and FOV and a table of objects contained within the specified FOV.
summary
- list of user-defined variables in the current API call.observer
- observation summary data. May contain the following fields:
obs_date
- date of observationlocation
- name of observatory (only if mpc-code
is defined).fov_center
- right-ascension and declination of the astrometric center of the FOV (hh:mm:ss, dd mm’ss”).fov_offset
- right-ascension and declination offset of the FOV (hh:mm:ss, dd mm’ss”).n_first_pass
- number of records from first pass.n_second_pass
- number of records from second pass (only if two-pass
is true).fields_first
- columns headers for data_first_pass
.fields_second
- columns headers for data_second_pass
.If req-elem
is false:
data_first_pass
- data table from first pass (unless suppres-first-pass
is true). Column headers are defined by fields_first
.data_second_pass
- data table from second pass (only if two-pass
is true). Column headers are defined by fields_second
.If req-elem
is true:
elem_first_pass
- table of osculating orbital elements of objects found in the first pass (unless suppres-first-pass
is true). Column headers are defined by fields_first
.elem_second_pass
- table of osculating orbital elements of objects found in the second pass (only if two-pass
is true). Column headers are defined by fields_second
.If additional SBDB Filter constraints are present:
sb_constraints
- summary of SBDB Filter constraints.Request the list of asteroids contained in the FOV defined by RA limits 10:10:10-10:20:00 and declination limits 10 00’00”-10 30’00” as seen from Mauna Kea observatory (568) at 2021-02-09 00:00:00
API call - https://ssd-api.jpl.nasa.gov/sb_ident.api?sb-kind=a&mpc-code=568&obs-time=2021-02-09_00:00:00&mag-required=true&two-pass=true&suppress-first-pass=true&req-elem=false&vmag-lim=20&fov-ra-lim=10-10-00%2C10-20-00&fov-dec-lim=10-00-00,10-30-00
API output:
{
"signature" : {
"source" : "NASA/JPL Small-Body Identification API",
"version" : "1.1"
},
"summary" : {
"fov-dec-lim" : "10-00-00,10-30-00",
"fov-ra-lim" : "10-10-00,10-20-00",
"mag-required" : "true",
"mpc-code" : "568",
"obs-time" : "2021-02-09 00:00:00",
"req-elem" : "false",
"suppress-first-pass" : "true",
"two-pass" : "true",
"vmag-lim" : "20"
},
"n_second_pass" : 20,
"observer" : {
"fov_center" : "10:15:00.00, +10 15'00.00\" (J2000)",
"fov_offset" : "00:05:00.00, +00 15'00.00\"",
"location" : "Mauna Kea",
"obs_date" : "2021-Feb-09 00:00:00 (2459254.500000 UT)"
},
"sb_constraints" : {
"sb-kind" : "a"
},
"fields_second" : [
"Object name",
"Astrometric RA (hh:mm:ss)",
"Astrometric Dec (dd mm'ss\")",
"Dist. from center RA (\")",
"Dist. from center Dec (\")",
"Dist. from center Norm (\")",
"Visual magnitude (V)",
"RA rate (deg/s)",
"Dec rate (deg/s)"
],
"data_second_pass" : [
["10193 Nishimoto (1996 PR1)","10:16:58.22","+10 28'34.3\"","2.E3","814.","1951.","19.4","-2.564E+01","1.035E+01"],
["15319 (1993 NU1)","10:19:52.66","+10 06'12.0\"","4.E3","-528.","4422.","18.5","-3.293E+01","1.591E+01"],
...
]
}
Request first-pass data from observatory F51 (Haleakala), NEO only.
API call - https://ssd-api.jpl.nasa.gov/sb_ident.api?mpc-code=F51&obs-time=2020-01-01T11:10:01&fov-ra-center=10-10-10&fov-dec-lim=10-05-10,10-10-10&two-pass=false&req-elem=false&sb-group=neo
API output:
{
"signature" : {
"source" : "NASA/JPL Small-Body Identification API",
"version" : "1.1"
},
"summary" : {
"fov-dec-lim" : "10-05-10,10-10-10",
"fov-ra-center" : "10-10-10",
"fov-ra-hwidth" : "30",
"mpc-code" : "F51",
"obs-time" : "2020-01-01 11:10:01",
"req-elem" : "false",
"two-pass" : "false"
},
"n_first_pass" : 1013,
"observer" : {
"fov_center" : "10:10:10.00, +10 07'40.00\" (J2000)",
"fov_offset" : "02:00:00.00, +00 02'30.00\"",
"location" : "Pan-STARRS 1, Haleakala",
"obs_date" : "2020-Jan-01 11:10:01 (2458849.965289 UT)"
},
"sb_constraints" : {
"sb-group" : "neo"
},
"fields_first" : [
"Object name",
"Astrometric RA (hh:mm:ss)",
"Astrometric Dec (dd mm'ss\")",
"Dist. from center RA (\")",
"Dist. from center Dec (\")",
"Dist. from center Norm (\")",
"Visual magnitude (V)",
"RA rate (deg/s)",
"Dec rate (deg/s)",
"Est. error RA (\")",
"Est. error Dec (\")"
],
"data_first_pass" : [
["6489 Golevka (1991 JX)","02:00:07","+11 11'53\"","-4.E5","4.E3","4.4E5","24.1","1.107E+01","3.717E+00","5.4E5","5.4E5"],
["194006 (2001 SG10)","08:55:26","+10 05'19\"","-7.E4","-141.","6.7E4","23.1","-4.233E+01","6.650E+00","141.1","141.1"],
...
]
}
Request osculating orbital elements of objects identified by second pass given the explicit geocentric state of the observer.
API call - https://ssd-api.jpl.nasa.gov/sb_ident.api?xobs=-5.957613176404512E%2B02,-6.319860760764293E%2B03,2.735882778341472E%2B03,7.326499360212761E%2B00,1.801234666741493E-01,2.003177731007209E%2B00&obs-time=2020-12-14&fov-ra-center=03-00-00&fov-dec-center=20-00-00&fov-ra-hwidth=1.5&fov-dec-hwidth=1.5&two-pass=true&suppress-first-pass=true&req-elem=true
API output:
{
"signature" : {
"source" : "NASA/JPL Small-Body Identification API",
"version" : "1.1"
},
"summary" : {
"fov-dec-center" : "20-00-00",
"fov-dec-hwidth" : "1.5",
"fov-ra-center" : "03-00-00",
"fov-ra-hwidth" : "1.5",
"obs-time" : "2020-12-14",
"req-elem" : "true",
"suppress-first-pass" : "true",
"two-pass" : "true",
"xobs" : "-5.957613176404512E+02,-6.319860760764293E+03,2.735882778341472E+03,7.326499360212761E+00,1.801234666741493E-01,2.003177731007209E+00"
},
"n_second_pass" : 519,
"observer" : {
"fov_center" : "03:00:00.00, +20 00'00.00\" (J2000)",
"fov_offset" : "00:06:00.00, +01 30'00.00\"",
"frame" : "J2000",
"obs_date" : "2020-Dec-14 00:00:00 (2459197.500000 UT)"
},
"fields_second" : [
"Object name",
"Absolute magntiude (H)",
"Magnitude slope (G)",
"Eccentricity",
"Perihelion (au)",
"Time of perihelion passage (JD)",
"Longitude of ascending node (deg)",
"Argument of perihelion (deg)",
"Inclination (deg)",
"Epoch (JD)"
],
"elem_second_pass" : [
["177 Irma","9.60","0.15","0.233641161","2.1234681","2459092.45216","346.97786","39.355511","1.3822545","2459000.5"],
["523 Ada (A904 BA)","9.90","0.15","0.178529043","2.4359491","2459306.32142","260.61929","189.98370","4.3131271","2459000.5"],
...
]
}
All errors are returned via appropriate HTTP response codes.
HTTP Code | Description | Typical Usage |
---|---|---|
200 | OK | normal successful result |
400 | Bad Request | the request contained invalid keywords, content, or results are invalid: details returned |
405 | Method Not Allowed | the request used an incorrect method (see the HTTP Request section) |
500 | Internal Server Error | the database is not available at the time of the request |
503 | Service Unavailable | the server is currently unable to handle the request due to a temporary overloading or maintenance of the server, which will likely be alleviated after some delay |
obs-time
: allow JD as well as calendar date/time