Biodock Analysis Jobs API

Submitting, tracking, and downloading analysis jobs

OpenAPI Specification

biodock-analysis-jobs-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Biodock Public Analysis Jobs API
  description: Biodock's public REST API lets users invoke actions on the Biodock platform through simple web requests, so an AI microscopy image analysis built on Biodock can be integrated into scripts and programs. Actions invoked through the API are also reflected in the Biodock dashboard (uploaded files appear in the Filesystem, submitted analysis jobs appear on the results page). The API is in beta; resources may change. Note that creating an AI model and creating or publishing pipelines are visual, dashboard-only workflows and cannot be done through the API.
  version: 1.0.0-beta
  contact:
    name: Biodock Support
    url: https://docs.biodock.ai/company/contact-us
    email: security@biodock.ai
  termsOfService: https://www.biodock.ai/termsprivacy
servers:
- url: https://app.biodock.ai/api/external
  description: Biodock public API (production)
security:
- ApiKeyAuth: []
tags:
- name: Analysis Jobs
  description: Submitting, tracking, and downloading analysis jobs
paths:
  /analysis-jobs:
    get:
      operationId: listAnalysisJobs
      summary: List analysis jobs
      description: List the progress of all your analysis jobs.
      tags:
      - Analysis Jobs
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/StartingAfter'
      responses:
        '200':
          description: A page of analysis jobs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisJobList'
    post:
      operationId: submitAnalysisJob
      summary: Submit analysis job
      description: Submit an analysis job. The files must already be uploaded to the Biodock Filesystem and you must have a published, user-created analysis pipeline. Biodock-authored pipelines are not supported via the API.
      tags:
      - Analysis Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - pipelineId
              - filesystemIds
              properties:
                pipelineId:
                  type: string
                  description: Pipeline to use for analysis.
                filesystemIds:
                  type: array
                  items:
                    type: string
                  description: Filesystem items to analyze.
                name:
                  type: string
                  description: Name of the job.
      responses:
        '200':
          description: Analysis job submitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisJob'
  /analysis-jobs/{id}:
    get:
      operationId: fetchAnalysisJob
      summary: Fetch analysis job
      description: View the progress and results of a specific analysis job.
      tags:
      - Analysis Jobs
      parameters:
      - $ref: '#/components/parameters/PathId'
      responses:
        '200':
          description: The analysis job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalysisJob'
  /analysis-jobs/{id}/download-masks:
    post:
      operationId: submitDownloadMasksJob
      summary: Submit download masks job
      description: Generate the masks data for an analysis job. Masks data is not generated by default during an analysis job.
      tags:
      - Analysis Jobs
      parameters:
      - $ref: '#/components/parameters/PathId'
      responses:
        '200':
          description: Masks generation submitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasksJob'
    get:
      operationId: fetchDownloadMasksJob
      summary: Fetch download masks job
      description: View the progress of masks generation and, once complete, obtain the masks download link.
      tags:
      - Analysis Jobs
      parameters:
      - $ref: '#/components/parameters/PathId'
      responses:
        '200':
          description: The masks download job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasksJob'
components:
  schemas:
    AnalysisJob:
      type: object
      properties:
        id:
          type: string
        percentageCompleted:
          type: integer
        status:
          type: string
          enum:
          - PENDING
          - SUBMITTED
          - RUNNING
          - SUCCEEDED
          - FAILED
        objectsDataCSVUrl:
          type: string
          format: uri
        aggregateDataCSVUrl:
          type: string
          format: uri
    AnalysisJobList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AnalysisJob'
        count:
          type: integer
    MasksJob:
      type: object
      properties:
        percentageCompleted:
          type: integer
        status:
          type: string
          enum:
          - SUBMITTED
          - RUNNING
          - SUCCEEDED
          - FAILED
        masksZipUrl:
          type: string
          format: uri
  parameters:
    StartingAfter:
      name: startingAfter
      in: query
      schema:
        type: string
      description: Pagination cursor id (id of the last item on the previous page).
    PathId:
      name: id
      in: path
      required: true
      schema:
        type: string
    Limit:
      name: limit
      in: query
      schema:
        type: integer
      description: Maximum number of results to show.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key generated at https://app.biodock.ai/settings/api