Citra Space Iq Data API

The iq-data API from Citra Space — 5 operation(s) for iq-data.

Operations 6

GET /collection-requests/{collection_request_id}/iq-data List Collection Request Iq Uploads #
GET /my/iq-data List My Iq Uploads #
DELETE /my/iq-data/{upload_id} Delete My Iq Upload #
GET /tasks/{task_id}/iq-data List Task Iq Uploads #
POST /tasks/{task_id}/iq-data Initiate Iq Upload #
GET /tasks/{task_id}/iq-data/{upload_id} Get Iq Upload Details #

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-iq-data-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-iq-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SOICAT Iq Data API
  version: 0.1.0
tags:
- name: iq-data
paths:
  /collection-requests/{collection_request_id}/iq-data:
    get:
      description: List all IQ uploads for a collection request (across all its tasks).
      operationId: list_collection_request_iq_uploads_collection_requests__collection_request_id__iq_data_get
      parameters:
      - description: ID of the collection request
        in: path
        name: collection_request_id
        required: true
        schema:
          description: ID of the collection request
          format: uuid
          title: Collection Request Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IQUploadListResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Collection Request Iq Uploads
      tags:
      - iq-data
  /my/iq-data:
    get:
      description: List IQ uploads owned by the current user.
      operationId: list_my_iq_uploads_my_iq_data_get
      parameters:
      - description: Maximum number of uploads to return
        in: query
        name: limit
        required: false
        schema:
          default: 100
          description: Maximum number of uploads to return
          maximum: 500
          minimum: 1
          title: Limit
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IQUploadListResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List My Iq Uploads
      tags:
      - iq-data
  /my/iq-data/{upload_id}:
    delete:
      description: 'Delete an IQ upload owned by the current user.


        This deletes both the database record and the S3 object (if it exists).

        Only the uploader can delete their own uploads.'
      operationId: delete_my_iq_upload_my_iq_data__upload_id__delete
      parameters:
      - description: ID of the IQ upload to delete
        in: path
        name: upload_id
        required: true
        schema:
          description: ID of the IQ upload to delete
          format: uuid
          title: Upload Id
          type: string
      responses:
        '204':
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Delete My Iq Upload
      tags:
      - iq-data
  /tasks/{task_id}/iq-data:
    get:
      description: List all IQ uploads for a specific task.
      operationId: list_task_iq_uploads_tasks__task_id__iq_data_get
      parameters:
      - description: ID of the task to list IQ uploads for
        in: path
        name: task_id
        required: true
        schema:
          description: ID of the task to list IQ uploads for
          format: uuid
          title: Task Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IQUploadListResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List Task Iq Uploads
      tags:
      - iq-data
    post:
      description: 'Initiate an IQ data upload for a TDOA task.


        Returns a presigned S3 POST URL for direct browser upload.

        Only the antenna owner can upload IQ data for a task.


        The upload record is created immediately - no confirmation step is needed.'
      operationId: initiate_iq_upload_tasks__task_id__iq_data_post
      parameters:
      - description: ID of the TDOA task to upload IQ data for
        in: path
        name: task_id
        required: true
        schema:
          description: ID of the TDOA task to upload IQ data for
          format: uuid
          title: Task Id
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IQUploadCreate'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IQUploadInitiateResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Initiate Iq Upload
      tags:
      - iq-data
  /tasks/{task_id}/iq-data/{upload_id}:
    get:
      description: Get details of a specific IQ upload.
      operationId: get_iq_upload_details_tasks__task_id__iq_data__upload_id__get
      parameters:
      - description: ID of the task
        in: path
        name: task_id
        required: true
        schema:
          description: ID of the task
          format: uuid
          title: Task Id
          type: string
      - description: ID of the IQ upload
        in: path
        name: upload_id
        required: true
        schema:
          description: ID of the IQ upload
          format: uuid
          title: Upload Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IQUpload'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Iq Upload Details
      tags:
      - iq-data
components:
  schemas:
    IQUpload:
      description: Full IQ upload record schema.
      properties:
        antennaId:
          format: uuid
          title: Antennaid
          type: string
        bandwidthHz:
          anyOf:
          - type: number
          - type: 'null'
        captureEpochNs:
          anyOf:
          - type: integer
          - type: 'null'
        centerFrequencyHz:
          anyOf:
          - type: number
          - type: 'null'
        creationEpoch:
          format: date-time
          title: Creationepoch
          type: string
        durationSeconds:
          anyOf:
          - type: number
          - type: 'null'
        fileSize:
          title: Filesize
          type: integer
        id:
          format: uuid
          title: Id
          type: string
        originalFilename:
          title: Originalfilename
          type: string
        s3Key:
          title: S3Key
          type: string
        sampleRateHz:
          anyOf:
          - type: number
          - type: 'null'
        taskId:
          format: uuid
          title: Taskid
          type: string
        userId:
          format: uuid
          title: Userid
          type: string
      required:
      - id
      - taskId
      - antennaId
      - userId
      - originalFilename
      - fileSize
      - s3Key
      - creationEpoch
      title: IQUpload
      type: object
    IQUploadInitiateResponse:
      description: Response from initiating an IQ upload - contains presigned URL.
      properties:
        fields:
          anyOf:
          - additionalProperties:
              type: string
            type: object
          - type: 'null'
        filename:
          title: Filename
          type: string
        method:
          default: POST
          title: Method
          type: string
        uploadId:
          format: uuid
          title: Uploadid
          type: string
        uploadUrl:
          title: Uploadurl
          type: string
      required:
      - uploadId
      - filename
      - uploadUrl
      title: IQUploadInitiateResponse
      type: object
    IQUploadCreate:
      description: Request body for initiating an IQ upload.
      properties:
        bandwidthHz:
          anyOf:
          - type: number
          - type: 'null'
        captureEpochNs:
          anyOf:
          - type: integer
          - type: 'null'
        centerFrequencyHz:
          anyOf:
          - type: number
          - type: 'null'
        durationSeconds:
          anyOf:
          - type: number
          - type: 'null'
        fileSize:
          title: Filesize
          type: integer
        filename:
          title: Filename
          type: string
        sampleRateHz:
          anyOf:
          - type: number
          - type: 'null'
      required:
      - filename
      - fileSize
      title: IQUploadCreate
      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
    IQUploadListResponse:
      description: Response for listing IQ uploads.
      properties:
        items:
          items:
            $ref: '#/components/schemas/IQUpload'
          title: Items
          type: array
        total:
          title: Total
          type: integer
      required:
      - items
      - total
      title: IQUploadListResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
      type: object
  securitySchemes:
    HTTPBearer:
      scheme: bearer
      type: http