{"openapi":"3.1.0","info":{"title":"Planets API","version":"1.0.0","description":"Physical and orbital data for the solar system and beyond: every planet, dwarf planet, major moon and the Sun with NASA fact-sheet values (mass, radius, surface gravity, density, escape velocity, mean temperature, orbital and rotation period, semi-major axis, moon count and rings), plus a searchable catalogue of more than 6,000 confirmed exoplanets from the NASA Exoplanet Archive (radius, mass, orbital period, equilibrium temperature, distance in light-years, host star, discovery year and method). Filter exoplanets by host star, discovery method, year, size or distance, compare solar-system bodies side by side, and look up any single body or exoplanet by name. Every endpoint accepts input via the query string or the request body and returns lean JSON. Pure server-side data (no third-party upstream), so responses are instant and always available. Ideal for education, EdTech, astronomy apps, data visualisation and science tools.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/planets-api","description":"oanor gateway"}],"tags":[{"name":"Planets"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/bodies":{"get":{"operationId":"get_v1_bodies","tags":["Planets"],"summary":"List solar-system bodies","description":"","parameters":[{"name":"type","in":"query","required":false,"description":"planet|dwarf_planet|moon|star","schema":{"type":"string"},"example":"planet"},{"name":"parent","in":"query","required":false,"description":"Parent body (for moons)","schema":{"type":"string"},"example":"Jupiter"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"type":"planet","count":0,"parent":"Jupiter","results":[]},"meta":{"timestamp":"2026-05-30T22:48:32.556Z","request_id":"693d1ed4-e297-4cc9-b27a-784db068fa05"},"status":"ok","message":"Bodies retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/body":{"get":{"operationId":"get_v1_body","tags":["Planets"],"summary":"Single solar-system body","description":"","parameters":[{"name":"name","in":"query","required":true,"description":"Body name","schema":{"type":"string"},"example":"Jupiter"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Jupiter","type":"planet","moons":95,"parent":"Sun","mass_kg":1.898e+27,"has_rings":true,"radius_km":69911,"gravity_ms2":24.79,"mean_temp_c":-110,"density_gcm3":1.326,"semi_major_axis_au":5.203,"escape_velocity_kms":59.5,"orbital_period_days":4332.589,"rotation_period_hours":9.925},"meta":{"timestamp":"2026-05-30T22:48:32.628Z","request_id":"961b8758-79fa-4610-8b7f-e4c074d5d08a"},"status":"ok","message":"Body retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/compare":{"get":{"operationId":"get_v1_compare","tags":["Planets"],"summary":"Compare solar-system bodies","description":"","parameters":[{"name":"bodies","in":"query","required":true,"description":"Comma-separated names (max 8)","schema":{"type":"string"},"example":"Earth,Mars,Jupiter"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":3,"results":[{"name":"Earth","type":"planet","moons":1,"parent":"Sun","mass_kg":5.972e+24,"has_rings":false,"radius_km":6371,"gravity_ms2":9.807,"mean_temp_c":15,"density_gcm3":5.514,"semi_major_axis_au":1,"escape_velocity_kms":11.186,"orbital_period_days":365.256,"rotation_period_hours":23.934},{"name":"Mars","type":"planet","moons":2,"parent":"Sun","mass_kg":6.39e+23,"has_rings":false,"radius_km":3389.5,"gravity_ms2":3.721,"mean_temp_c":-65,"density_gcm3":3.933,"semi_major_axis_au":1.524,"escape_velocity_kms":5.03,"orbital_period_days":686.98,"rotation_period_hours":24.623},{"name":"Jupiter","type":"planet","moons":95,"parent":"Sun","mass_kg":1.898e+27,"has_rings":true,"radius_km":69911,"gravity_ms2":24.79,"mean_temp_c":-110,"density_gcm3":1.326,"semi_major_axis_au":5.203,"escape_velocity_kms":59.5,"orbital_period_days":4332.589,"rotation_period_hours":9.925}]},"meta":{"timestamp":"2026-05-30T22:48:32.674Z","request_id":"b12aa8e6-f4b9-4281-a41e-9c0638c6e836"},"status":"ok","message":"Comparison completed","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/exoplanet":{"get":{"operationId":"get_v1_exoplanet","tags":["Planets"],"summary":"Single exoplanet by name","description":"","parameters":[{"name":"name","in":"query","required":true,"description":"Exoplanet name","schema":{"type":"string"},"example":"Proxima Cen b"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Proxima Cen b","host_star":"Proxima Cen","mass_earth":1.055,"distance_ly":4.24,"radius_earth":1.02,"discovery_year":2016,"discovery_method":"Radial Velocity","equilibrium_temp_k":218,"semi_major_axis_au":0.04848,"star_spectral_type":"M5.5 V","orbital_period_days":11.18465},"meta":{"timestamp":"2026-05-30T22:48:32.744Z","request_id":"f0d081f3-d315-485f-bdb2-8d09af85886d"},"status":"ok","message":"Exoplanet retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/exoplanets":{"get":{"operationId":"get_v1_exoplanets","tags":["Planets"],"summary":"Search exoplanet catalogue","description":"","parameters":[{"name":"q","in":"query","required":false,"description":"Name contains","schema":{"type":"string"},"example":"Kepler"},{"name":"host","in":"query","required":false,"description":"Host star","schema":{"type":"string"},"example":"TRAPPIST-1"},{"name":"method","in":"query","required":false,"description":"Discovery method","schema":{"type":"string"},"example":"Transit"},{"name":"year","in":"query","required":false,"description":"Discovery year","schema":{"type":"string"},"example":"2017"},{"name":"min_radius","in":"query","required":false,"description":"Min radius (Earth radii)","schema":{"type":"string"},"example":"0.5"},{"name":"max_radius","in":"query","required":false,"description":"Max radius","schema":{"type":"string"},"example":"2"},{"name":"max_distance_ly","in":"query","required":false,"description":"Max distance (ly)","schema":{"type":"string"},"example":"50"},{"name":"sort","in":"query","required":false,"description":"name|distance|year|radius|mass","schema":{"type":"string"},"example":"distance"},{"name":"limit","in":"query","required":false,"description":"1..100 (default 20)","schema":{"type":"string"},"example":"20"},{"name":"offset","in":"query","required":false,"description":"Offset","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"sort":"distance","count":0,"limit":20,"total":0,"offset":0,"filters":{"q":"kepler","host":"trappist-1","year":2017,"method":"transit","max_radius":2,"min_radius":0.5,"max_distance_ly":50},"results":[]},"meta":{"timestamp":"2026-05-30T22:48:32.820Z","request_id":"0b5a327e-85d3-4069-a5b7-59a1d72895c2"},"status":"ok","message":"Exoplanets retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Planets"],"summary":"Catalogue facets","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"body_types":["dwarf_planet","moon","planet","star"],"exoplanets":6291,"discovery_methods":["Astrometry","Disk Kinematics","Eclipse Timing Variations","Imaging","Microlensing","Orbital Brightness Modulation","Pulsar Timing","Pulsation Timing Variations","Radial Velocity","Transit","Transit Timing Variations"],"solar_system_bodies":22},"meta":{"timestamp":"2026-05-30T22:48:32.873Z","request_id":"30a83cf2-5529-4356-a8a7-9829a666cfbc"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":30000,"rps_limit":3,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":650,"monthly_call_quota":450000,"rps_limit":12,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2100,"monthly_call_quota":3200000,"rps_limit":35,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5200,"monthly_call_quota":15000000,"rps_limit":90,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/planets-api"}