Citra Space Collection Requests API

The collection-requests API from Citra Space — 3 operation(s) for collection-requests.

Operations 3

POST /collection-requests Create Collection Request #
POST /collection-requests/batch Create Batch Collection Requests #
POST /collection-requests/{id}/cancel Stops a Pending or Scheduled request the caller made: the scheduler cancels its… #

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-collection-requests-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-collection-requests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SOICAT Collection Requests API
  version: 0.1.0
tags:
- name: collection-requests
paths:
  /collection-requests:
    post:
      description: 'Create a new collection request.


        A collection request represents a user''s request to collect observations

        of a satellite during a specified time window. The system will generate

        visibility windows and schedule tasks based on available ground stations.'
      operationId: create_collection_request_collection_requests_post
      parameters:
      - in: header
        name: X-Scenario-Context
        required: false
        schema:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectionRequestCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionRequest'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Collection Request
      tags:
      - collection-requests
  /collection-requests/batch:
    post:
      description: 'Create collection requests in batch for multiple satellites.


        Satellites come from satellite_ids or are resolved from satellite_group_ids.

        Each satellite a selected sensor sees in the window, within that sensor''s limits, gets one

        request from its first pass to its last, widened by the look''s own length either side; the

        scheduler places the look there. Satellites no selected sensor sees are skipped and listed in

        skippedSatelliteIds; when none is seen the batch is refused with 422. A Sample or Dwell with

        revisitIntervalSeconds repeats at that interval over its window.'
      operationId: create_batch_collection_requests_collection_requests_batch_post
      parameters:
      - in: header
        name: X-Scenario-Context
        required: false
        schema:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchCollectionRequestCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchCollectionRequestResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Create Batch Collection Requests
      tags:
      - collection-requests
  /collection-requests/{id}/cancel:
    post:
      operationId: cancel_collection_request
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionRequest'
          description: ''
        '404':
          description: ''
      summary: 'Stops a Pending or Scheduled request the caller made: the scheduler cancels its…'
      tags:
      - collection-requests
components:
  schemas:
    CollectionMode:
      enum:
      - Sample
      - Dwell
      - TimeSearch
      - GridSearch
      - Resolve
      title: CollectionMode
      type: string
    CollectionRequestCreate:
      description: CollectionRequest schema for creation
      properties:
        dwellSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A Dwell request''s time on target in seconds: required for a Dwell, absent for any other type'
        minimumSeparationKm:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A Resolve request''s separation from the neighbor to resolve, in km: required for a Resolve, absent for any other type'
        missionId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Mission this request is scoped to. Required for auto-scheduling; optional for one-off manual tasks.
        params:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          description: 'Where and on what the request may run: ground_station_ids, sensor_selections (station to sensor), min_elevation, use_exact_window; for a single look sensor_kind telescope; for TDOA num_sensors and its band (min_frequency_hz, max_frequency_hz)'
        priority:
          default: 5
          description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
          maximum: 10
          minimum: 1
          title: Priority
          type: integer
        revisitIntervalSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: How often to repeat a Sample or Dwell over the window, in seconds; absent for one look
        satelliteId:
          description: Target satellite
          format: uuid
          title: Satelliteid
          type: string
        searchWindowSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A TimeSearch request''s half-window along track either side of the predicted pass, in seconds: required for a TimeSearch, absent for any other type'
        type:
          description: The look the request asks for (Sample or Dwell), or a Characterization or TDOA collection
          oneOf:
          - $ref: '#/components/schemas/CollectionRequestType'
        windowStart:
          description: Start of the collection window
          format: date-time
          title: Windowstart
          type: string
        windowStop:
          description: End of the collection window
          format: date-time
          title: Windowstop
          type: string
      required:
      - type
      - windowStart
      - windowStop
      - satelliteId
      title: CollectionRequestCreate
      type: object
    BatchCollectionRequestCreate:
      additionalProperties: false
      description: 'Schema for batch creation of collection requests across multiple satellites: one request per satellite a selected sensor sees, over the span it sees it, placed by the scheduler.'
      properties:
        dwellSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A Dwell request''s time on target in seconds: required for a Dwell, absent for any other type'
        minimumSeparationKm:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A Resolve request''s separation from the neighbor to resolve, in km: required for a Resolve, absent for any other type'
        params:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          description: 'Where and on what the request may run: ground_station_ids, sensor_selections (station to sensor), min_elevation, use_exact_window; for a single look sensor_kind telescope; for TDOA num_sensors and its band (min_frequency_hz, max_frequency_hz)'
        priority:
          default: 5
          description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
          maximum: 10
          minimum: 1
          title: Priority
          type: integer
        revisitIntervalSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: How often to repeat a Sample or Dwell over the window, in seconds; absent for one look
        satelliteGroupIds:
          anyOf:
          - items:
              format: uuid
              type: string
            type: array
          - type: 'null'
          description: Satellite group IDs to resolve satellites from
        satelliteIds:
          anyOf:
          - items:
              format: uuid
              type: string
            type: array
          - type: 'null'
          description: Direct list of satellite IDs to task
        searchWindowSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A TimeSearch request''s half-window along track either side of the predicted pass, in seconds: required for a TimeSearch, absent for any other type'
        type:
          description: The look the request asks for (Sample or Dwell), or a Characterization or TDOA collection
          oneOf:
          - $ref: '#/components/schemas/CollectionRequestType'
        windowStart:
          description: Start of the collection window
          format: date-time
          title: Windowstart
          type: string
        windowStop:
          description: End of the collection window
          format: date-time
          title: Windowstop
          type: string
      required:
      - type
      - windowStart
      - windowStop
      title: BatchCollectionRequestCreate
      type: object
    TaskStatus:
      enum:
      - Pending
      - Canceled
      - Scheduled
      - Succeeded
      - Failed
      title: TaskStatus
      type: string
    CollectionRequestStatus:
      description: 'Status of a collection request.


        A collection request goes through these states:

        - PENDING: Initial state, waiting for window generation

        - SCHEDULED: Tasks have been created and are being scheduled/executed

        - READY_TO_PROCESS: All tasks succeeded, awaiting post-task processing

        - COMPLETED: All tasks and any post-task processing have completed successfully

        - FAILED: All tasks failed or window generation failed

        - CANCELED: User canceled the request

        - EXPIRED: Time window passed without execution'
      enum:
      - Pending
      - Scheduled
      - Ready to Process
      - Completed
      - Failed
      - Canceled
      - Expired
      title: CollectionRequestStatus
      type: string
    CollectionRequest:
      description: CollectionRequest schema for reading
      properties:
        antennaIds:
          anyOf:
          - items:
              format: uuid
              type: string
            type: array
          - type: 'null'
          description: Target antenna IDs
        creationEpoch:
          format: date-time
          title: Creationepoch
          type: string
        dwellSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A Dwell request''s time on target in seconds: required for a Dwell, absent for any other type'
        groundStationIds:
          anyOf:
          - items:
              format: uuid
              type: string
            type: array
          - type: 'null'
          description: Target ground station IDs
        id:
          format: uuid
          title: Id
          type: string
        minimumSeparationKm:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A Resolve request''s separation from the neighbor to resolve, in km: required for a Resolve, absent for any other type'
        missionId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Mission this request is scoped to (required for auto-scheduling)
        params:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          description: 'Where and on what the request may run: ground_station_ids, sensor_selections (station to sensor), min_elevation, use_exact_window; for a single look sensor_kind telescope; for TDOA num_sensors and its band (min_frequency_hz, max_frequency_hz)'
        priority:
          default: 5
          description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
          title: Priority
          type: integer
        revisitIntervalSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: How often to repeat a Sample or Dwell over the window, in seconds; absent for one look
        satelliteId:
          description: Target satellite
          format: uuid
          title: Satelliteid
          type: string
        satelliteName:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the target satellite
        searchWindowSeconds:
          anyOf:
          - exclusiveMinimum: 0
            type: number
          - type: 'null'
          description: 'A TimeSearch request''s half-window along track either side of the predicted pass, in seconds: required for a TimeSearch, absent for any other type'
        status:
          $ref: '#/components/schemas/CollectionRequestStatus'
        tasks:
          anyOf:
          - items:
              $ref: '#/components/schemas/Task'
            type: array
          - type: 'null'
          description: Tasks spawned from this request
        telescopeIds:
          anyOf:
          - items:
              format: uuid
              type: string
            type: array
          - type: 'null'
          description: Target telescope IDs
        type:
          $ref: '#/components/schemas/CollectionRequestType'
        updateEpoch:
          format: date-time
          title: Updateepoch
          type: string
        userId:
          description: User who created this request
          format: uuid
          title: Userid
          type: string
        username:
          anyOf:
          - type: string
          - type: 'null'
          description: Username of the requester
        windowStart:
          format: date-time
          title: Windowstart
          type: string
        windowStop:
          format: date-time
          title: Windowstop
          type: string
      required:
      - id
      - type
      - status
      - creationEpoch
      - updateEpoch
      - windowStart
      - windowStop
      - userId
      - satelliteId
      title: CollectionRequest
      type: object
    Task:
      description: Task schema for reading
      properties:
        antennaId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Antenna this task is associated with
        antennaName:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the antenna
        antennaUserId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: User ID of the antenna owner
        assignedFilterName:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter name for Characterization tasks
        collectionMode:
          anyOf:
          - $ref: '#/components/schemas/CollectionMode'
          - type: 'null'
          description: How the task collects
        collectionRequestId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Collection request this task is associated with
        creationEpoch:
          format: date-time
          title: Creationepoch
          type: string
        effect:
          anyOf:
          - $ref: '#/components/schemas/MissionEffect'
          - type: 'null'
          description: That effect, where the caller can see it
        frequencyMax:
          anyOf:
          - type: number
          - type: 'null'
          description: Maximum frequency in Hz
        frequencyMin:
          anyOf:
          - type: number
          - type: 'null'
          description: Minimum frequency in Hz
        groundStationId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Ground station ID of the telescope or antenna
        groundStationName:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the ground station
        id:
          format: uuid
          title: Id
          type: string
        missionEffectId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: The mission effect this task serves (ADR 0025)
        missionId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Mission this task is scoped to
        priority:
          default: 5
          description: Scheduling priority from 1, the most important, to 10 (ADR 0026)
          title: Priority
          type: integer
        satelliteId:
          description: Satellite this task is associated with
          format: uuid
          title: Satelliteid
          type: string
        satelliteName:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the satellite
        scenarioId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
        status:
          $ref: '#/components/schemas/TaskStatus'
        taskStart:
          format: date-time
          title: Taskstart
          type: string
        taskStop:
          format: date-time
          title: Taskstop
          type: string
        telescopeId:
          anyOf:
          - format: uuid
            type: string
          - type: 'null'
          description: Telescope this task is associated with
        telescopeName:
          anyOf:
          - type: string
          - type: 'null'
          description: Name of the telescope
        updateEpoch:
          format: date-time
          title: Updateepoch
          type: string
        userId:
          description: User who requested this task
          format: uuid
          title: Userid
          type: string
        username:
          anyOf:
          - type: string
          - type: 'null'
          description: Username of the user who requested this task
      required:
      - id
      - status
      - creationEpoch
      - updateEpoch
      - taskStart
      - taskStop
      - userId
      - satelliteId
      title: Task
      type: object
    CollectionRequestType:
      description: 'What a collection request asks for: one look (Sample, Dwell, TimeSearch, GridSearch or Resolve), or a Characterization or TDOA collection.'
      enum:
      - Sample
      - Dwell
      - TimeSearch
      - GridSearch
      - Resolve
      - TDOA
      - Characterization
      title: CollectionRequestType
      type: string
    MissionEffect:
      enum:
      - Identification
      - Custody
      - Characterization
      - ThreatAssessment
      - OutcomeAssessment
      - Discrimination
      - ChangeDetection
      title: MissionEffect
      type: string
    BatchCollectionRequestResponse:
      description: Response schema for batch collection request creation.
      properties:
        collectionRequestIds:
          description: IDs of created collection requests
          items:
            format: uuid
            type: string
          title: Collectionrequestids
          type: array
        createdCount:
          description: Total number of collection requests created
          title: Createdcount
          type: integer
        satelliteCount:
          description: Number of unique satellites tasked
          title: Satellitecount
          type: integer
        skippedCount:
          description: Number of selected satellites no selected sensor sees in the window, which got no request
          title: Skippedcount
          type: integer
        skippedSatelliteIds:
          description: IDs of the selected satellites no selected sensor sees in the window
          items:
            format: uuid
            type: string
          title: Skippedsatelliteids
          type: array
      required:
      - createdCount
      - collectionRequestIds
      - satelliteCount
      - skippedCount
      - skippedSatelliteIds
      title: BatchCollectionRequestResponse
      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