Citra Space Od API
The od API from Citra Space — 1 operation(s) for od.
The od API from Citra Space — 1 operation(s) for od.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/citra-space:citra-space-od-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: SOICAT Od API
version: 0.1.0
tags:
- name: od
paths:
/od/:
post:
description: 'Solve orbit determination for a satellite using specified observations.
Fetches observations from the database with proper access control. When a
`seed_elset` is supplied (e.g. by the create-elset wizard, so the seed
matches the elset shown on the parent residuals chart), it is used as the
BLS initial predictor; otherwise the route falls back to the latest
accessible elset for the satellite.
Returns a complete Elset with full precision orbital elements.'
operationId: solve_od_od__post
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SolveOD'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Elset-Output'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
description: Validation Error
summary: Solve Od
tags:
- od
components:
schemas:
UserTier:
enum:
- Standard
- Plus
- Premium
- Enterprise
- Government
- Admin
type: string
Elset-Output:
properties:
argumentOfPerigee:
title: Argumentofperigee
type: number
bStar:
default: 0.0
title: Bstar
type: number
ballisticCoefficient:
default: 0.0
title: Ballisticcoefficient
type: number
creationEpoch:
title: Creationepoch
type: string
eccentricity:
title: Eccentricity
type: number
epoch:
title: Epoch
type: string
id:
title: Id
type: string
inUdl:
default: false
title: Inudl
type: boolean
inclination:
title: Inclination
type: number
meanAnomaly:
title: Meananomaly
type: number
meanMotion:
description: "Calculate mean motion from semi-major axis.\n\nUses keplime's mean_motion_from_semi_major_axis() to convert semi-major axis to mean motion.\n\nReturns:\n Mean motion in revolutions per day"
readOnly: true
title: Meanmotion
type: number
meanMotionDot:
default: 0.0
title: Meanmotiondot
type: number
meanMotionDotDot:
default: 0.0
title: Meanmotiondotdot
type: number
migrationId:
anyOf:
- format: uuid
type: string
- type: 'null'
raan:
title: Raan
type: number
reviewStatus:
default: approved
oneOf:
- $ref: '#/components/schemas/ReviewStatus'
rms:
anyOf:
- type: number
- type: 'null'
satelliteId:
format: uuid
title: Satelliteid
type: string
satelliteName:
anyOf:
- type: string
- type: 'null'
satelliteReviewStatus:
anyOf:
- $ref: '#/components/schemas/ReviewStatus'
- type: 'null'
scenarioId:
anyOf:
- format: uuid
type: string
- type: 'null'
semiMajorAxis:
title: Semimajoraxis
type: number
srpCoefficient:
default: 0.0
title: Srpcoefficient
type: number
tle:
anyOf:
- items: false
maxItems: 2
minItems: 2
prefixItems:
- type: string
- type: string
type: array
- type: 'null'
type:
$ref: '#/components/schemas/CitraElsetType'
userGroupId:
anyOf:
- format: uuid
type: string
- type: 'null'
userGroupName:
anyOf:
- type: string
- type: 'null'
userId:
format: uuid
title: Userid
type: string
userTier:
$ref: '#/components/schemas/UserTier'
username:
anyOf:
- type: string
- type: 'null'
required:
- id
- userId
- userGroupId
- satelliteId
- userTier
- creationEpoch
- epoch
- type
- semiMajorAxis
- inclination
- raan
- eccentricity
- argumentOfPerigee
- meanAnomaly
- tle
- meanMotion
title: Elset
type: object
CitraElsetType:
enum:
- SGP4 with Kozai mean motion
- SGP4 with Brouwer mean motion
- SGP4-XP with Brouwer mean motion
- SP with Brouwer mean motion
type: string
SolveOD:
properties:
estimateDrag:
default: false
title: Estimatedrag
type: boolean
estimateSrp:
default: false
title: Estimatesrp
type: boolean
observationIds:
items:
format: uuid
type: string
maxItems: 10000
title: Observationids
type: array
outputType:
default: SGP4
oneOf:
- $ref: '#/components/schemas/SolveODOutputType'
rejectBadObservations:
default: false
title: Rejectbadobservations
type: boolean
satelliteId:
format: uuid
title: Satelliteid
type: string
seedElset:
anyOf:
- $ref: '#/components/schemas/Elset-Input'
- type: 'null'
required:
- satelliteId
- observationIds
title: SolveOD
type: object
SolveODOutputType:
enum:
- SGP4
- SGP4-XP
- Osculating
title: SolveODOutputType
type: string
ReviewStatus:
enum:
- needs_review
- in_review
- approved
- rejected
- migrated
- blocked
title: ReviewStatus
type: string
Elset-Input:
properties:
argumentOfPerigee:
title: Argumentofperigee
type: number
bStar:
default: 0.0
title: Bstar
type: number
ballisticCoefficient:
default: 0.0
title: Ballisticcoefficient
type: number
creationEpoch:
format: date-time
title: Creationepoch
type: string
eccentricity:
title: Eccentricity
type: number
epoch:
format: date-time
title: Epoch
type: string
id:
format: uuid
title: Id
type: string
inUdl:
default: false
title: Inudl
type: boolean
inclination:
title: Inclination
type: number
meanAnomaly:
title: Meananomaly
type: number
meanMotionDot:
default: 0.0
title: Meanmotiondot
type: number
meanMotionDotDot:
default: 0.0
title: Meanmotiondotdot
type: number
migrationId:
anyOf:
- format: uuid
type: string
- type: 'null'
raan:
title: Raan
type: number
reviewStatus:
default: approved
oneOf:
- $ref: '#/components/schemas/ReviewStatus'
rms:
anyOf:
- type: number
- type: 'null'
satelliteId:
format: uuid
title: Satelliteid
type: string
satelliteName:
anyOf:
- type: string
- type: 'null'
satelliteReviewStatus:
anyOf:
- $ref: '#/components/schemas/ReviewStatus'
- type: 'null'
scenarioId:
anyOf:
- format: uuid
type: string
- type: 'null'
semiMajorAxis:
title: Semimajoraxis
type: number
srpCoefficient:
default: 0.0
title: Srpcoefficient
type: number
type:
$ref: '#/components/schemas/CitraElsetType'
userGroupId:
anyOf:
- format: uuid
type: string
- type: 'null'
userGroupName:
anyOf:
- type: string
- type: 'null'
userId:
format: uuid
title: Userid
type: string
userTier:
$ref: '#/components/schemas/UserTier'
username:
anyOf:
- type: string
- type: 'null'
required:
- id
- userId
- userGroupId
- satelliteId
- userTier
- creationEpoch
- epoch
- type
- semiMajorAxis
- inclination
- raan
- eccentricity
- argumentOfPerigee
- meanAnomaly
title: Elset
type: object
ValidationError:
properties:
ctx:
type: object
input: {}
loc:
items:
oneOf:
- type: string
- format: int64
type: integer
type: array
msg:
type: string
type:
type: string
required:
- loc
- msg
- type
type: object
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
type: object
securitySchemes:
HTTPBearer:
scheme: bearer
type: http