Citra Space Od API

The od API from Citra Space — 1 operation(s) for od.

Operations 1

POST /od/ Solve Od #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/citra-space:citra-space-od-api"
All apis
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.

Get an API 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 Specification

citra-space-od-api-openapi.yml Raw ↑
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