CINXE.COM

N2YO.com API

<!DOCTYPE html> <HTML> <HEAD> <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script> <TITLE>N2YO.com API</TITLE> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <script src="/js/jquery-1.11.js"></script> <link rel="stylesheet" href="/css/style.css" type="text/css"> </HEAD> <BODY> <script type='text/javascript' src="/js/passes.js"></script> <script> var startPass = null; var endPass = null; var timer; var issid = 25544; var lat = 1.289987; var lng = 103.850281; go(); </script> <!-- <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); </script> --> <!-- Google tag Analytics (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-QZGWPSKPV5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-QZGWPSKPV5'); </script> <script type='text/javascript'> googletag.cmd.push(function() { googletag.defineSlot('/31043081/n2yo-header', [728, 90], 'div-gpt-ad-1438712706402-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> <div id="headercontainer" style="overflow: auto; zoom: 1"> <table style="width:100%;font-size:14px"> <tr> <td> <div id="logo"> <a href="/"><img src="/img/n2yologo.png" width="200" height="39" border="0" alt="n2yo.com"/></a> <div class="fb-like" data-href="https://www.facebook.com/n2yodotcom" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false" data-font="tahoma"></div> <g:plusone></g:plusone> </div> <span id = "headermessage" style="background-color:#ffffca;border:1px dashed #cacaba;width:300px;"> Tracking <b><span style="color:#d50000">30300</span></b> objects as of 2-Mar-2025 <br/><a href="/space-station/"> HD Live streaming from Space Station</a> <br/> <script src="/js/satellite-js/dist/satellite.min.js"></script> <link rel="stylesheet" href="/css/odometer-theme-car.css" /> <script src="/js/odometer.js"></script> <style> .odometer { font-size: 16px; } </style> <span id="up"><div id="odometer" class="odometer"></div> objects crossing your sky now</up> <script> var items; if (!( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) )) { $.get("/inc/all.php", function(data) { items = data.split('\n'); up(); }); setInterval('up()', 5000); } else { document.getElementById("up").style.display='none'; } function up() { var cnt = 0; for(var i=0;i<items.length;i++) { var line = items[i]; if(line[0]=="1") { var satid = parseInt(line.substr(2,5)); var line1 = items[i]; var line2 = items[i+1]; var satrec = satellite.twoline2satrec(line1, line2); var now = new Date(); var positionAndVelocity = satellite.propagate( satrec, now.getUTCFullYear(), now.getUTCMonth() + 1, now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds() ); var positionEci = positionAndVelocity.position, velocityEci = positionAndVelocity.velocity; var gmst = satellite.gstimeFromDate( now.getUTCFullYear(), now.getUTCMonth() + 1, now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds() ); var deg2rad = Math.PI/180; var observerGd = { longitude: 103.850281 * deg2rad, latitude: 1.289987 * deg2rad, height: 0 }; try { var positionEcf = satellite.eciToEcf(positionEci, gmst); } catch (err) { //console.log("Error: " + err); } var lookAngles = satellite.ecfToLookAngles(observerGd, positionEcf); var dopplerFactor = 0; var azimuth = lookAngles.azimuth, elevation = lookAngles.elevation, rangeSat = lookAngles.rangeSat; azimuth1 = azimuth*180/Math.PI; elevation1 = elevation*180/Math.PI; if(elevation1>10) { cnt++; } } } odometer.innerHTML = cnt; } </script> </span> </td> <td valign="top" align="center" width="200"> <!--<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>--> <!-- n2yo-com-234x60 --> <!--<ins class="adsbygoogle" style="display:inline-block;width:234px;height:60px" data-ad-client="ca-pub-8839140430005838" data-ad-slot="1743584802"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>--> <b><span id="countdown" style="display:block"></span></b> </td> <td align="right" valign="top"> <form action="/database/#results" method="GET"> <div id="searchbox" align="right"> <br/> <INPUT TYPE="text" NAME="q" ID="srcsat" style="font-size: 14px; background-color: #FFFFFF;width:140px" size="12" value="Find a satellite..." onFocus='document.getElementById("srcsat").value="";'> <INPUT TYPE="submit" value="Search" style="font-size: 12px; background-color:#D8D8D8; color:#000000; margin-right: 6px;"> <div align="right"> <a href="https://www.facebook.com/n2yodotcom">N2YO.com on Facebook</a> &nbsp;&nbsp; <A HREF="/database/">Advanced</A>&nbsp;&nbsp;&nbsp;</div> </form> </div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> </tr> </td> </table> </div> <div id="admobiheader"> <!-- <script id="mNCC" language="javascript"> medianet_width = "468"; medianet_height = "60"; medianet_crid = "344318977"; medianet_versionId = "111299"; (function() { var isSSL = 'https:' == document.location.protocol; var mnSrc = (isSSL ? 'https:' : 'http:') + '//contextual.media.net/nmedianet.js?cid=8CUY6IMG3' + (isSSL ? '&https=1' : ''); document.write('<scr' + 'ipt type="text/javascript" id="mNSC" src="' + mnSrc + '"></scr' + 'ipt>'); })(); </script> --> </div> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.3&appId=372896566168367"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <!-- <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-8839140430005838", enable_page_level_ads: true }); </script> --> <!-- <div style="height:24px;background-color:#ff0000;color:#fff;"> <center><strong><a href="https://www.n2yo.com/?s=49220" style="color:#fff;visited:#fff;active:#fff;hover:#eee">Track INSPIRATION-4</a></strong></center> --> </div> <link href="/ddmenu/ddmenu.css" rel="stylesheet" type="text/css" /> <script src="/ddmenu/ddmenu.js" type="text/javascript"></script> <!--INFOLINKS_OFF--> <nav id="ddmenu"> <div class="menu-icon"></div> <ul> <li class="no-sub"><a class="top-heading" href="https://www.n2yo.com/">Home</a></li> <li> <span class="top-heading"><a class="top-heading" href="/satellites/?c=most-popular">Most tracked</a></span> <i class="caret"></i> <div class="dropdown"> <div class="dd-inner"> <div class="column"> <A HREF="/satellite/?s=25544">SPACE STATION</A> <A HREF="/satellite/?s=36516">SES 1</A> <A HREF="/satellite/?s=33591">NOAA 19</A> <A HREF="/satellite/?s=29155">GOES 13</A> <A HREF="/satellite/?s=25338">NOAA 15</A> <A HREF="/satellite/?s=28654">NOAA 18</A> <A HREF="/satellite/?s=25994">TERRA</A> <A HREF="/satellite/?s=27424">AQUA</A> <A HREF="/satellite/?s=38771">METOP-B</A> <A HREF="/satellite/?s=37849">SUOMI NPP</A> <A HREF="/satellite/?s=36411">GOES 15</A> <A HREF="/satellite/?s=40967">FOX-1A (AO-85)</A> <A HREF="/satellite/?s=27607">SAUDISAT 1C</A> <A HREF="/satellite/?s=41332">KMS-4</A> <A HREF="/satellite/?s=37820">TIANGONG 1</A> <A HREF="/satellite/?s=40069">METEOR M2</A> <A HREF="/satellite/?s=25657">ASIASAT 3S</A> <A HREF="/satellite/?s=36032">NSS 12</A> <A HREF="/satellite/?s=31135">AGILE</A> <A HREF="/satellite/?s=40147">MEASAT 3B</A> <a href="/satellites/?c=most-popular">MORE...</a> </div> </div> </div> </li> <li> <span class="top-heading"><a class="top-heading" href="/satellites/?c=latest-launches">Just launched</a></span> <i class="caret"></i> <div class="dropdown"> <div class="dd-inner"> <div class="column"> <A HREF="/satellite/?s=99130">ASRTU</A> <A HREF="/satellite/?s=63129">PROGRESS MS-30</A> <A HREF="/satellite/?s=63126">SUPERVIEW NEO-1</A> <A HREF="/satellite/?s=63125">SUPERVIEW NEO-1</A> <A HREF="/satellite/?s=63102">BROKKER-2 ODIN</A> <A HREF="/satellite/?s=63101">LUNAR TRAILBLAZ</A> <A HREF="/satellite/?s=63100">CHIMERA-1</A> <A HREF="/satellite/?s=63099">IM-2</A> <A HREF="/satellite/?s=63098">STARLINK-32913</A> <A HREF="/satellite/?s=63097">STARLINK-32923</A> <A HREF="/satellite/?s=63096">STARLINK-32911</A> <A HREF="/satellite/?s=63095">STARLINK-32907</A> <A HREF="/satellite/?s=63094">STARLINK-32927</A> <A HREF="/satellite/?s=63093">STARLINK-32900</A> <A HREF="/satellite/?s=63092">STARLINK-32924</A> <A HREF="/satellite/?s=63091">STARLINK-32925</A> <A HREF="/satellite/?s=63090">STARLINK-32903</A> <A HREF="/satellite/?s=63089">STARLINK-32910</A> <A HREF="/satellite/?s=63088">STARLINK-32912</A> <A HREF="/satellite/?s=63087">STARLINK-32918</A> <a href="/satellites/?c=latest-launches">MORE...</a> </div> </div> </div> </li> <li> <span class="top-heading">Satellites on orbit</span> <i class="caret"></i> <div class="dropdown"> <div class="dd-inner"> <div class="column"> <h4><a href="/satellites/">CATEGORIES</a></h4> <a href="/satellites/?c=2">Int'l Space Station</a> <a href="/satellites/?c=54">Chinese Space Station</a> <a href="/satellites/?c=1">Brightest</a> <a href="/satellites/?c=52">Starlink</a> <a href="/satellites/?c=20">GPS Operational</a> <a href="/satellites/?c=21">Glonass Operational</a> <a href="/satellites/?c=22">Galileo</a> <a href="/satellites/?c=35">Beidou</a> <a href="/satellites/?c=30">Military</a> <a href="/satellites/?c=15">Iridium</a> <a href="/satellites/?c=17">Globalstar</a> <a href="/satellites/?c=10">Geostationary</a> <a href="/satellites/?c=26">Space & Earth Science</a> <a href="/satellites/?c=3">Weather</a> <a href="/satellites/?c=18">Amateur radio</a> <a href="/satellites/">MORE CATEGORIES...</a> </div> <div class="column"> <h4><a href="/whats-up/whats-up-now.php">WHAT'S UP?</a></h4> <a href="/passes/amateur-radio.php">Amateur radio sat passes</a> <a href="/whats-up/?c=20">GPS satellites</a> <a href="/whats-up/?c=21">Glonass satellites</a> <a href="/whats-up/?c=35">Beidou satellites</a> <a href="/whats-up/?c=22">Galileo satellites</a> <a href="/whats-up/?c=15">Iridium satellites</a> <a href="/whats-up/?c=17">Globalstar satellites</a> <!--<a href="/whats-up/whats-up-now.php" style="color:red">What's up in your sky now?</a>--> <br/> <h4><a href="/database/">FIND A SATELLITE</a></h4> <a href="/database/"> SEARCH DATABASE</a> <a href="/browse/"> BROWSE BY LAUNCH DATE</a> <a href="/satellites/"> BROWSE BY CATEGORY</a> <a href="/satellites/?c=&t=country"> BROWSE BY COUNTRY</a> </div> <div class="column"> <h4><a href="/satellites?c=&t=country">OWNERS/COUNTRIES</a></h4> <a href="/satellites?c=US&t=country"><img src='/img/org/us.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> UNITED STATES</a> <a href="/satellites?c=CIS&t=country"><img src='/img/org/cis.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> CIS (FORMER USSR)</a> <a href="/satellites?c=PRC&t=country"><img src='/img/org/prc.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> PEOPLE'S REPUBLIC OF CHINA</a> <a href="/satellites?c=JPN&t=country"><img src='/img/org/jpn.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> JAPAN</a> <a href="/satellites?c=ESA&t=country"><img src='/img/org/esa.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> EUROPEAN SPACE AGENCY</a> <a href="/satellites?c=FR&t=country"><img src='/img/org/fr.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> FRANCE</a> <a href="/satellites?c=IND&t=country"><img src='/img/org/ind.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> INDIA</a> <a href="/satellites?c=UK&t=country"><img src='/img/org/uk.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> UNITED KINGDOM</a> <a href="/satellites?c=CA&t=country"><img src='/img/org/ca.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> CANADA</a> <a href="/satellites?c=GER&t=country"><img src='/img/org/ger.gif' border='0' width='20' height='15' style="vertical-align: text-bottom"> GERMANY</a> <a href="/satellites?c=&t=country"> MORE OWNERS/COUNTRIES...</a> </div> </div> </div> </li> <li> <a class="top-heading" href="/info/?a=22">Alerting tools</a> <i class="caret"></i> <div class="dropdown right-aligned"> <div class="dd-inner"> <div class="column"> <h4>ALERTING TOOLS</h4> <a href="/info/?a=43"><img src="/ddmenu/phone.png" border="0" width="16" style="vertical-align: text-bottom"> SPACE STATION PREDICTIONS BY VOICE</a> <a href="/login/iss-notifications/"><img src="/ddmenu/alert.png" border="0" width="16" style="vertical-align: text-bottom"> SPACE STATION NOTIFICATION TOOL </a> <a href="/info/?a=15"><img src="/ddmenu/email.png" border="0" width="16" style="vertical-align: text-bottom"> ALERTS BY EMAIL AND SMS</a> </div> </div> </li> <li> <span class="top-heading">More stuff</span> <i class="caret"></i> <div class="dropdown right-aligned"> <div class="dd-inner"> <div class="column"> <h4>ADDITIONAL INFO</h4> <a href="/space-station" style="color:red"><b>HD LIVE STREAMING FROM ISS</b></a> <a href="/news/read.php?p=0">SATELLITE NEWS</a> <a href="/about/?a=donation">MAKE A DONATION</a> <a href="https://www.facebook.com/n2yodotcom">N2YO.COM ON FACEBOOK</a> <a href="/about/?a=links">EXTERNAL LINKS</a> <a href="/about/?a=faq">FAQ</a> <a href="/about/?a=feedback">CONTACT/FEEDBACK</a> <a href="/about/?a=privacy">PRIVACY POLICY</a> <a href="/about/?a=terms">TERMS OF USE</a> </div> <div class="column"> <h4>USER PREFERENCES</h4> <a href=https://www.n2yo.com/login/edit/>SIGN IN</a> <a href="https://www.n2yo.com/login/edit/">EDIT/CHANGE YOUR LOCATION</a> <br/> <h4>SITE OWNERS</h4> <a href="/widgets/">WIDGETS FOR YOUR PAGE</a> <a href="/api/">API ACCESS</a> <br/> <!-- <h4>MOBILE APPS</h4> <a href="http://southernstars.com/products/" style="color:red"><strong>Orbitrack</strong> - <b>NEW</b> (iOS and Android)</a> --> </div> </div> </div> </li> <li class="no-sub"><a class="top-heading" href=https://www.n2yo.com/login/edit/>Sign in</a></li> </ul> </nav> <!--INFOLINKS_ON--> <table style="width:100%"> <tr> <td class="hidecell" style="vertical-align:top;width:160px"> </td> <td valign="top"> <H1>N2YO.COM REST API v1</H3> <!-- <div style="color:red"> <strong>API is currently down for maintenance and upgrade</strong> </div> --> <br/> The purpose of the API is to provide data for software/web developers to build satellite tracking or prediction applications. <br/><br/> The REST API v1 is free but it is transaction limited. The current limit is 1000 transactions/hour. If you need more traffic, <a href="/about/?a=feedback">contact us</a>. Users are requested not to abuse the system, and not use multiple license keys to get around the hourly transation limit. Traffic is monitored and logged. When the API is used in improper ways, user access will be limited or blocked. <br/><br/> For each transaction, the caller must be identified and authorized by a license key (API key). To generate a unique license key, users are requested first to <a href="https://www.n2yo.com/login/">register</a> an account at n2yo.com. After login, please visit the profile page and scroll down to access the button that generates the API key. The new API key will be accessible in the profile and cannot be changed. If you need a new key, please <a href="/about/?a=feedback">contact us</a> and provide an explanation. The keys issued for the SOAP Web Services API are not valid for REST API. <br/><br/> As a general concept, satellites are identified by their NORAD catalog number which is an integer ranging from 1 to 43235 and counting. The numbers are assigned by United States Space Command (USSPACECOM) to all Earth orbiting satellites in order of identification. If you are looking to find the id of your favorite satellite, browse <a href="/satellites/">categories</a> or <a href="/database/">search</a> the n2yo.com database until you arrive at the satellite details page, and extract the NORAD ID for your application. For instance, Space Station (ISS) is NORAD ID 25544. <br/><br/> For all request, method used is GET. <br/>Base URL: https://api.n2yo.com/rest/v1/satellite/ <br/>API key: The API key (apiKey) must be appended at the end of the URL as &apiKey={your API key} <br/></br> The following functions are currently available: <br/><br/> <ul> <li><a href="#tle">Get TLE</a> <li><a href="#positions">Get satellite positions</a> <li><a href="#visualpasses">Get visual passes</a> <li><a href="#radiopasses">Get radio passes</a> <li><a href="#above">What's up?</a> </ul> <br/> <a name="tle"><h4>Get TLE</h4></a> Retrieve the Two Line Elements (TLE) for a satellite identified by NORAD id. <br/> <br/>Request: /tle/{id} <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Required</th><th>Comments</th> </tr> <tr> <td>id</td><td>integer</td><td>Yes</td><td>NORAD id</td> </tr> </table> <br/> Response: <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Comments</th> </tr> <tr> <td>satid</td><td>integer</td><td>NORAD id used in input</td> </tr> <tr> <td>satname</td><td>string</td><td>Satellite name</td> </tr> <tr> <td>transactionscount</td><td>integer</td><td>Count of transactions performed with this API key in last 60 minutes</td> </tr> <tr> <td>tle</td><td>string</td><td>TLE on single line string. Split the line in two by \r\n to get original two lines</td> </tr> </table> <br/>Example <br/> <br/>Request: https://api.n2yo.com/rest/v1/satellite/tle/25544&apiKey=589P8Q-SDRYX8-L842ZD-5Z9 <br/>JSON Response: <pre class="prettyprint"> { "info": { "satid": 25544, "satname": "SPACE STATION", "transactionscount": 4 }, "tle": "1 25544U 98067A 18077.09047010 .00001878 00000-0 35621-4 0 9999\r\n2 25544 51.6412 112.8495 0001928 208.4187 178.9720 15.54106440104358" } </pre> <br/><br/> <a name="positions"><h4>Get satellite positions</h4></a> Retrieve the future positions of any satellite as groundtrack (latitude, longitude) to display orbits on maps. Also return the satellite's azimuth and elevation with respect to the observer location. Each element in the response array is one second of calculation. First element is calculated for current UTC time. <br/> <br/>Request: /positions/{id}/{observer_lat}/{observer_lng}/{observer_alt}/{seconds} <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Required</th><th>Comments</th> </tr> <tr> <td>id</td><td>integer</td><td>Yes</td><td>NORAD id</td> </tr> <tr> <td>observer_lat</td><td>float</td><td>Yes</td><td>Observer's latitide (decimal degrees format)</td> </tr> <tr> <td>observer_lng</td><td>float</td><td>Yes</td><td>Observer's longitude (decimal degrees format)</td> </tr> <tr> <td>observer_alt</td><td>float</td><td>Yes</td><td>Observer's altitude above sea level in meters</td> </tr> <tr> <td>seconds</td><td>integer</td><td>Yes</td><td>Number of future positions to return. Each second is a position. Limit 300 seconds</td> </tr> </table> <br/> Response: <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Comments</th> </tr> <tr> <td>satid</td><td>integer</td><td>NORAD id used in input</td> </tr> <tr> <td>satname</td><td>string</td><td>Satellite name</td> </tr> <tr> <td>transactionscount</td><td>integer</td><td>Count of transactions performed with this API key in last 60 minutes</td> </tr> <tr> <td>satlatitude</td><td>float</td><td>Satellite footprint latitude (decimal degrees format)</td> </tr> <tr> <td>satlongitude</td><td>float</td><td>Satellite footprint longitude (decimal degrees format)</td> </tr> <tr> <td>azimuth</td><td>float</td><td>Satellite azimuth with respect to observer's location (degrees)</td> </tr> <tr> <td>elevation</td><td>float</td><td>Satellite elevation with respect to observer's location (degrees)</td> </tr> <tr> <td>ra</td><td>float</td><td>Satellite right ascension (degrees)</td> </tr> <tr> <td>dec</td><td>float</td><td>Satellite declination (degrees)</td> </tr> <tr> <td>timestamp</td><td>integer</td><td>Unix time for this position (seconds). You should convert this UTC value to observer's time zone</td> </tr> </table> <br/>Example - retrieve Space Station (25544) positions for next 2 seconds. Observer is located at lat: 41.702, lng: -76.014, alt: 0 <br/> <br/>Request: https://api.n2yo.com/rest/v1/satellite/positions/25544/41.702/-76.014/0/2/&apiKey=589P8Q-SDRYX8-L842ZD-5Z9 <br/>JSON Response: <pre class="prettyprint"> { "info": { "satname": "SPACE STATION", "satid": 25544, "transactionscount": 5 }, "positions": [ { "satlatitude": -39.90318514, "satlongitude": 158.28897924, "sataltitude": 417.85, "azimuth": 254.31, "elevation": -69.09, "ra": 44.77078138, "dec": -43.99279118, "timestamp": 1521354418 }, { "satlatitude": -39.86493451, "satlongitude": 158.35261287, "sataltitude": 417.84, "azimuth": 254.33, "elevation": -69.06, "ra": 44.81676119, "dec": -43.98086419, "timestamp": 1521354419 } ] } </pre> <br/><br/> <a name="visualpasses"><h4>Get visual passes</h4></a> Get predicted visual passes for any satellite relative to a location on Earth. A "visual pass" is a pass that should be optically visible on the entire (or partial) duration of crossing the sky. For that to happen, the satellite must be above the horizon, illumintaed by Sun (not in Earth shadow), and the sky dark enough to allow visual satellite observation. <br/> <br/>Request: /visualpasses/{id}/{observer_lat}/{observer_lng}/{observer_alt}/{days}/{min_visibility} <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Required</th><th>Comments</th> </tr> <tr> <td>id</td><td>integer</td><td>Yes</td><td>NORAD id</td> </tr> <tr> <td>observer_lat</td><td>float</td><td>Yes</td><td>Observer's latitide (decimal degrees format)</td> </tr> <tr> <td>observer_lng</td><td>float</td><td>Yes</td><td>Observer's longitude (decimal degrees format)</td> </tr> <tr> <td>observer_alt</td><td>float</td><td>Yes</td><td>Observer's altitude above sea level in meters</td> </tr> <tr> <td>days</td><td>integer</td><td>Yes</td><td>Number of days of prediction (max 10)</td> </tr> <tr> <td>min_visibility</td><td>integer</td><td>Yes</td><td>Minimum number of seconds the satellite should be considered optically visible during the pass to be returned as result</td> </tr> </table> <br/> Response: <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Comments</th> </tr> <tr> <td>satid</td><td>integer</td><td>NORAD id used in input</td> </tr> <tr> <td>satname</td><td>string</td><td>Satellite name</td> </tr> <tr> <td>transactionscount</td><td>integer</td><td>Count of transactions performed with this API key in last 60 minutes</td> </tr> <tr> <td>passescount</td><td>integer</td><td>Count of passes returned</td> </tr> <tr> <td>startAz</td><td>float</td><td>Satellite azimuth for the start of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>startAzCompass</td><td>string</td><td>Satellite azimuth for the start of this pass (relative to the observer). Possible values: N, NE, E, SE, S, SW, W, NW</td> </tr> <tr> <td>startEl</td><td>float</td><td>Satellite elevation for the start of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>startUTC</td><td>integer</td><td>Unix time for the start of this pass. You should convert this UTC value to observer's time zone</td> </tr> <tr> <td>maxAz</td><td>float</td><td>Satellite azimuth for the max elevation of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>maxAzCompass</td><td>string</td><td>Satellite azimuth for the max elevation of this pass (relative to the observer). Possible values: N, NE, E, SE, S, SW, W, NW</td> </tr> <tr> <td>maxEl</td><td>float</td><td>Satellite max elevation for this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>maxUTC</td><td>integer</td><td>Unix time for the max elevation of this pass. You should convert this UTC value to observer's time zone</td> </tr> <tr> <td>endAz</td><td>float</td><td>Satellite azimuth for the end of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>endAzCompass</td><td>string</td><td>Satellite azimuth for the end of this pass (relative to the observer). Possible values: N, NE, E, SE, S, SW, W, NW</td> </tr> <tr> <td>endEl</td><td>float</td><td>Satellite elevation for the end of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>endUTC</td><td>integer</td><td>Unix time for the end of this pass. You should convert this UTC value to observer's time zone</td> </tr> <tr> <td>mag</td><td>float</td><td>Max visual magnitude of the pass, same scale as star brightness. If magnitude cannot be determined, the value is 100000</td> </tr> <tr> <td>duration</td><td>integer</td><td>Total visible duration of this pass (in seconds)</td> </tr> </table> <br/>Example - retrieve Space Station (25544) passes optically visible at least 300 seconds for next 2 days. Observer is located at lat: 41.702, lng: -76.014, alt: 0 <br/><br/>Request: https://api.n2yo.com/rest/v1/satellite/visualpasses/25544/41.702/-76.014/0/2/300/&apiKey=589P8Q-SDRYX8-L842ZD-5Z9 <br/>JSON Response: <pre class="prettyprint"> { "info": { "satid": 25544, "satname": "SPACE STATION", "transactionscount": 4, "passescount": 3 }, "passes": [ { "startAz": 307.21, "startAzCompass": "NW", "startEl": 13.08, "startUTC": 1521368025, "maxAz": 225.45, "maxAzCompass": "SW", "maxEl": 78.27, "maxUTC": 1521368345, "endAz": 132.82, "endAzCompass": "SE", "endEl": 0, "endUTC": 1521368660, "mag": -2.4, "duration": 485 }, { "startAz": 311.56, "startAzCompass": "NW", "startEl": 50.94, "startUTC": 1521451295, "maxAz": 37.91, "maxAzCompass": "NE", "maxEl": 52.21, "maxUTC": 1521451615, "endAz": 118.61, "endAzCompass": "ESE", "endEl": 0, "endUTC": 1521451925, "mag": -2, "duration": 325 }, { "startAz": 291.06, "startAzCompass": "WNW", "startEl": 3.47, "startUTC": 1521457105, "maxAz": 231.58, "maxAzCompass": "SW", "maxEl": 14.75, "maxUTC": 1521457380, "endAz": 170.63, "endAzCompass": "S", "endEl": 0, "endUTC": 1521457650, "mag": -0.1, "duration": 485 } ] } </pre> <br/><br/> <a name="radiopasses"><h4>Get radio passes</h4></a> The "radio passes" are similar to "visual passes", the only difference being the requirement for the objects to be optically visible for observers. This function is useful mainly for predicting satellite passes to be used for radio communications. The quality of the pass depends essentially on the highest elevation value during the pass, which is one of the input parameters. <br/> <br/>Request: /radiopasses/{id}/{observer_lat}/{observer_lng}/{observer_alt}/{days}/{min_elevation} <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Required</th><th>Comments</th> </tr> <tr> <td>id</td><td>integer</td><td>Yes</td><td>NORAD id</td> </tr> <tr> <td>observer_lat</td><td>float</td><td>Yes</td><td>Observer's latitide (decimal degrees format)</td> </tr> <tr> <td>observer_lng</td><td>float</td><td>Yes</td><td>Observer's longitude (decimal degrees format)</td> </tr> <tr> <td>observer_alt</td><td>float</td><td>Yes</td><td>Observer's altitude above sea level in meters</td> </tr> <tr> <td>days</td><td>integer</td><td>Yes</td><td>Number of days of prediction (max 10)</td> </tr> <tr> <td>min_elevation</td><td>integer</td><td>Yes</td><td>The minimum elevation acceptable for the highest altitude point of the pass (degrees)</td> </tr> </table> <br/> Response: <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Comments</th> </tr> <tr> <td>satid</td><td>integer</td><td>NORAD id used in input</td> </tr> <tr> <td>satname</td><td>string</td><td>Satellite name</td> </tr> <tr> <td>transactionscount</td><td>integer</td><td>Count of transactions performed with this API key in last 60 minutes</td> </tr> <tr> <td>passescount</td><td>integer</td><td>Count of passes returned</td> </tr> <tr> <td>startAz</td><td>float</td><td>Satellite azimuth for the start of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>startAzCompass</td><td>string</td><td>Satellite azimuth for the start of this pass (relative to the observer). Possible values: N, NE, E, SE, S, SW, W, NW</td> </tr> <tr> <td>startUTC</td><td>integer</td><td>Unix time for the start of this pass. You should convert this UTC value to observer's time zone</td> </tr> <tr> <td>maxAz</td><td>float</td><td>Satellite azimuth for the max elevation of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>maxAzCompass</td><td>string</td><td>Satellite azimuth for the max elevation of this pass (relative to the observer). Possible values: N, NE, E, SE, S, SW, W, NW</td> </tr> <tr> <td>maxEl</td><td>float</td><td>Satellite max elevation for this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>maxUTC</td><td>integer</td><td>Unix time for the max elevation of this pass. You should convert this UTC value to observer's time zone</td> </tr> <tr> <td>endAz</td><td>float</td><td>Satellite azimuth for the end of this pass (relative to the observer, in degrees)</td> </tr> <tr> <td>endAzCompass</td><td>string</td><td>Satellite azimuth for the end of this pass (relative to the observer). Possible values: N, NE, E, SE, S, SW, W, NW</td> </tr> <tr> <td>endUTC</td><td>integer</td><td>Unix time for the end of this pass. You should convert this UTC value to observer's time zone</td> </tr> </table> <br/>Example - retrieve Space Station (25544) radio passes above 40 degrees of elevation for next 2 days. Observer is located at lat: 41.702, lng: -76.014, alt: 0 <br/><br/>Request: https://api.n2yo.com/rest/v1/satellite/radiopasses/25544/41.702/-76.014/0/2/40/&apiKey=589P8Q-SDRYX8-L842ZD-5Z9 <br/>JSON Response: <pre class="prettyprint"> { "info": { "satid": 25544, "satname": "SPACE STATION", "transactionscount": 2, "passescount": 2 }, "passes": [ { "startAz": 311.57, "startAzCompass": "NW", "startUTC": 1521451295, "maxAz": 37.98, "maxAzCompass": "NE", "maxEl": 52.19, "maxUTC": 1521451615, "endAz": 118.6, "endAzCompass": "ESE", "endUTC": 1521451925 }, { "startAz": 242.34, "startAzCompass": "WSW", "startUTC": 1521600275, "maxAz": 328.03, "maxAzCompass": "NW", "maxEl": 49.59, "maxUTC": 1521600595, "endAz": 47.97, "endAzCompass": "NE", "endUTC": 1521600905 } ] } </pre> <br/><br/> <a name="above"><h4>What's up?</h4></a> The "above" function will return all objects within a given search radius above observer's location. The radius (胃), expressed in degrees, is measured relative to the point in the sky directly above an observer (azimuth). This image may offer a better explanation: <br/><center><img src="../img/above.png" width="400" height="400" border="0" alt="The 'above' function"></center> <br/>The search radius range is 0 to 90 degrees, nearly 0 meaning to show only satellites passing exactly above the observer location, while 90 degrees to return all satellites above the horizon. Since there are many satellites and debris in the sky at any point in time, the result could be filtered by satellite category (integer). The following categories are currently available at n2yo.com: <br/> <table> <tr> <td valign="top"> <table class="gridtable"> <tr><th>Catgory</th><th>id</th></tr> <tr><td>Amateur radio</td><td>18</td></tr> <tr><td>Beidou Navigation System</td><td>35</td></tr> <tr><td>Brightest</td><td>1</td></tr> <tr><td>Celestis</td><td>45</td></tr> <tr><td>Chinese Space Station</td><td>54</td></tr> <tr><td>CubeSats</td><td>32</td></tr> <tr><td>Disaster monitoring</td><td>8</td></tr> <tr><td>Earth resources</td><td>6</td></tr> <tr><td>Education</td><td>29</td></tr> <tr><td>Engineering</td><td>28</td></tr> <tr><td>Experimental</td><td>19</td></tr> <tr><td>Flock</td><td>48</td></tr> <tr><td>Galileo</td><td>22</td></tr> <tr><td>Geodetic</td><td>27</td></tr> <tr><td>Geostationary</td><td>10</td></tr> <tr><td>Global Positioning System (GPS) Constellation</td><td>50</td></tr> <tr><td>Global Positioning System (GPS) Operational</td><td>20</td></tr> <tr><td>Globalstar</td><td>17</td></tr> <tr><td>Glonass Constellation</td><td>51</td></tr> <tr><td>Glonass Operational</td><td>21</td></tr> <tr><td>GOES</td><td>5</td></tr> <tr><td>Gonets</td><td>40</td></tr> <tr><td>Gorizont</td><td>12</td></tr> <tr><td>Intelsat</td><td>11</td></tr> <tr><td>Iridium</td><td>15</td></tr> </table> </td> <td valign="top"> <table class="gridtable"> <tr><th>Catgory</th><th>id</th></tr> <tr><td>IRNSS</td><td>46</td></tr> <tr><td>ISS</td><td>2</td></tr> <tr><td>Lemur</td><td>49</td></tr> <tr><td>Military</td><td>30</td></tr> <tr><td>Molniya</td><td>14</td></tr> <tr><td>Navy Navigation Satellite System</td><td>24</td></tr> <tr><td>NOAA</td><td>4</td></tr> <tr><td>O3B Networks</td><td>43</td></tr> <tr><td>OneWeb</td><td>53</td></tr> <tr><td>Orbcomm</td><td>16</td></tr> <tr><td>Parus</td><td>38</td></tr> <tr><td>Qianfan</td><td>55</td></tr> <tr><td>QZSS</td><td>47</td></tr> <tr><td>Radar Calibration</td><td>31</td></tr> <tr><td>Raduga</td><td>13</td></tr> <tr><td>Russian LEO Navigation</td><td>25</td></tr> <tr><td>Satellite-Based Augmentation System</td><td>23</td></tr> <tr><td>Search & rescue</td><td>7</td></tr> <tr><td>Space & Earth Science</td><td>26</td></tr> <tr><td>Starlink</td><td>52</td></tr> <tr><td>Strela</td><td>39</td></tr> <tr><td>Tracking and Data Relay Satellite System</td><td>9</td></tr> <tr><td>Tselina</td><td>44</td></tr> <tr><td>Tsikada</td><td>42</td></tr> <tr><td>Tsiklon</td><td>41</td></tr> <tr><td>TV</td><td>34</td></tr> <tr><td>Weather</td><td>3</td></tr> <tr><td>Westford Needles</td><td>37</td></tr> <tr><td>XM and Sirius</td><td>33</td></tr> <tr><td>Yaogan</td><td>36</td></tr> </table> </td> </tr> </table> <br/> Please use this function responsably as there is a lot of CPU needed in order to calculate exact positions for all satellites in the sky. The function will return altitude, latitude and longitude of satellites footprints to be displayed on a map, and some minimal information to identify the object. <br/> <br/>Request: /above/{observer_lat}/{observer_lng}/{observer_alt}/{search_radius}/{category_id} <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Required</th><th>Comments</th> </tr> <tr> <td>observer_lat</td><td>float</td><td>Yes</td><td>Observer's latitide (decimal degrees format)</td> </tr> <tr> <td>observer_lng</td><td>float</td><td>Yes</td><td>Observer's longitude (decimal degrees format)</td> </tr> <tr> <td>observer_alt</td><td>float</td><td>Yes</td><td>Observer's altitude above sea level in meters</td> </tr> <tr> <td>search_radius</td><td>integer</td><td>Yes</td><td>Search radius (0-90)</td> </tr> <tr> <td>category_id</td><td>integer</td><td>Yes</td><td>Category id (see table). Use 0 for all categories</td> </tr> </table> <br/> Response: <br/><br/> <table class="gridtable"> <tr> <th>Parameter</th><th>Type</th><th>Comments</th> </tr> <tr> <td>category</td><td>string</td><td>Category name (ANY if category id requested was 0)</td> </tr> <tr> <td>transactionscount</td><td>integer</td><td>Count of transactions performed with this API key in last 60 minutes</td> </tr> <tr> <td>satcount</td><td>integer</td><td>Count of satellites returned</td> </tr> <tr> <td>satid</td><td>integer</td><td>Satellite NORAD id</td> </tr> <tr> <td>intDesignator</td><td>string</td><td>Satellite international designator</td> </tr> <tr> <td>satname</td><td>string</td><td>Satellite name</td> </tr> <tr> <td>launchDate</td><td>string</td><td>Satellite launch date (YYYY-MM-DD)</td> </tr> <tr> <td>satlat</td><td>float</td><td>Satellite footprint latitude (decimal degrees format)</td> </tr> <tr> <td>satlng</td><td>float</td><td>Satellite footprint longitude (decimal degrees format)</td> </tr> <tr> <td>satalt</td><td>float</td><td>Satellite altitude (km)</td> </tr> </table> <br/>Example - retrieve Amateur Radio satellites (categ id 18) located within a search radius of 70 degrees. Observer is located at lat: 41.702, lng: -76.014, alt: 0 <br/><br/>Request: https://api.n2yo.com/rest/v1/satellite/above/41.702/-76.014/0/70/18/&apiKey=589P8Q-SDRYX8-L842ZD-5Z9 <br/>JSON Response: <pre class="prettyprint"> { "info": { "category": "Amateur radio", "transactionscount": 17, "satcount": 3 }, "above": [ { "satid": 20480, "satname": "JAS 1B (FUJI 2)", "intDesignator": "1990-013C", "launchDate": "1990-02-07", "satlat": 49.5744, "satlng": -96.7081, "satalt": 1227.9326 }, { "satid": 26609, "satname": "AMSAT OSCAR 40", "intDesignator": "2000-072B", "launchDate": "2000-11-16", "satlat": 5.5105, "satlng": -21.4478, "satalt": 49678.6389 }, { "satid": 40719, "satname": "DEORBITSAIL", "intDesignator": "2015-032E", "launchDate": "2015-07-10", "satlat": 43.8106, "satlng": -90.3944, "satalt": 657.5516 } ] } </pre> <br/> </td> </tr> </table> <br/><br/> <table id="footer"> <!-- Other links--> <tr> <td align="center"> <A HREF="/about/?a=links">Links</A>&nbsp;&nbsp;<A HREF="/about/?a=terms">Terms of Use</A>&nbsp;&nbsp;<A HREF="/about/?a=privacy">Privacy Policy</A>&nbsp;&nbsp;<A HREF="/about/?a=feedback">Contact Us</A> <br/>Copyright &copy; N2YO.com. All rights reserved <!--<br/><a href="http://www.itprostar.com">Developed by ITPROSTAR</a>--> <br/><br/><!-- AddThis Button BEGIN --> <a class="addthis_button" href="https://www.addthis.com/bookmark.php?v=250&amp;username=xa-4bfedf760e3dd1ee"><img src="https://s7.addthis.com/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a><script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js#username=xa-4bfedf760e3dd1ee"></script> <!-- AddThis Button END --> </td> </tr> </table> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-330684-1', 'auto'); ga('send', 'pageview'); </script> <!--<script type="text/javascript"> var infolink_pid = 1099291; var infolink_wsid = 0; </script> <script type="text/javascript" src="http://resources.infolinks.com/js/infolinks_main.js"></script>--> </BODY> </HTML>

Pages: 1 2 3 4 5 6 7 8 9 10