Aquanode Jobs API

The Jobs API from Aquanode — 5 operation(s) for jobs.

GitHub OpenAPI

Operations 6

GET /jobs List jobs #
POST /jobs Create a job #
POST /jobs/{id}/runs Start a run of a service job #
GET /jobs/{id}/runs/{runId} Get a run #
GET /jobs/cost-preview Price a job before creating it #
GET /jobs/hardware-availability Live availability by GPU model and count #

Specifications

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/aquanode-io:aquanode-io-jobs-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

aquanode-io-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Aquanode Orchestrator Jobs API
  description: API documentation for the Aquanode deployment orchestrator.
servers:
- url: /api/v1
tags:
- name: Jobs
paths:
  /jobs:
    get:
      summary: List jobs
      description: Jobs owned by the current team. Pass ?shape=batch or ?shape=service to filter.
      tags:
      - Jobs
      security:
      - BearerAuth: []
      parameters:
      - schema:
          type: string
          enum:
          - batch
          - service
        required: false
        name: shape
        in: query
      responses:
        '200':
          description: Jobs retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items: {}
                  message:
                    type: string
                    example: Operation successful
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.516Z'
                required:
                - success
                - data
                - timestamp
        '400':
          description: Invalid query
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.516Z'
                required:
                - success
                - error
                - timestamp
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.516Z'
                required:
                - success
                - error
                - timestamp
      operationId: getJobs
      x-operation-id-source: derived
    post:
      summary: Create a job
      description: Creates a job from a snapshot version or an image. A batch job runs once at create time; spending routes need an API key with the deploy or full scope.
      tags:
      - Jobs
      security:
      - BearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 64
                versionId:
                  type: integer
                image: {}
                secrets:
                  type: array
                  items:
                    type: string
                entrypoint: {}
                inputSchema: {}
                minInstances:
                  type: integer
                  minimum: 0
                maxInstances:
                  type: integer
                targetConcurrency:
                  type: integer
                  minimum: 1
                idleSeconds:
                  type: integer
                  minimum: 30
                placementDeadlineSeconds:
                  type: integer
                  minimum: 60
                pinnedDeploymentId:
                  type: integer
                  exclusiveMinimum: 0
                target:
                  oneOf:
                  - type: object
                    properties:
                      mode:
                        type: string
                        enum:
                        - marketplace
                      offerId:
                        type: string
                        minLength: 1
                    required:
                    - mode
                    additionalProperties: false
                  - type: object
                    properties:
                      mode:
                        type: string
                        enum:
                        - team
                    required:
                    - mode
                    additionalProperties: false
                  - type: object
                    properties:
                      mode:
                        type: string
                        enum:
                        - machine
                      deploymentId:
                        type: integer
                        exclusiveMinimum: 0
                    required:
                    - mode
                    - deploymentId
                    additionalProperties: false
                description:
                  type: string
                  maxLength: 2000
                outputs: {}
                hardware: {}
                placement: {}
                checkpoint: {}
                maxRuntimeSeconds:
                  type: integer
                  minimum: 60
                schedule:
                  type: string
                  minLength: 1
                webhookUrl:
                  type: string
                  format: uri
                monthlySpendCapCents:
                  type: integer
                  minimum: 1
                stallQuietSeconds:
                  type: integer
                  minimum: 0
                  maximum: 86400
              required:
              - name
      responses:
        '201':
          description: Job created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data: {}
                  message:
                    type: string
                    example: Operation successful
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.516Z'
                required:
                - success
                - timestamp
        '400':
          description: Invalid request data
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.516Z'
                required:
                - success
                - error
                - timestamp
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '403':
          description: API key lacks the deploy scope
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
      operationId: postJobs
      x-operation-id-source: derived
  /jobs/{id}/runs:
    post:
      summary: Start a run of a service job
      description: Queues a run with the given inputs and answers 202. A batch job runs once; use rerun to run it again (409 here).
      tags:
      - Jobs
      security:
      - BearerAuth: []
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                inputs:
                  type: object
                  additionalProperties: {}
      responses:
        '202':
          description: Run accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data: {}
                  message:
                    type: string
                    example: Operation successful
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - timestamp
        '400':
          description: Invalid inputs
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '404':
          description: Job not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '409':
          description: Job is not accepting runs
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
      operationId: postJobsByIdRuns
      x-operation-id-source: derived
  /jobs/{id}/runs/{runId}:
    get:
      summary: Get a run
      description: A run with its attempts, cost and any boxes that failed during placement.
      tags:
      - Jobs
      security:
      - BearerAuth: []
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      - schema:
          type: string
        required: true
        name: runId
        in: path
      responses:
        '200':
          description: Run retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data: {}
                  message:
                    type: string
                    example: Operation successful
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - timestamp
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '404':
          description: Run not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
      operationId: getJobsByIdRunsByRunId
      x-operation-id-source: derived
  /jobs/cost-preview:
    get:
      summary: Price a job before creating it
      description: The hourly price of the cheapest machine matching the card type, from the live marketplace feed. Spends nothing.
      tags:
      - Jobs
      security:
      - BearerAuth: []
      parameters:
      - schema:
          type: string
          minLength: 1
        required: true
        name: gpuModels
        in: query
      - schema:
          type: integer
        required: false
        name: gpuCount
        in: query
      - schema:
          type: integer
          minimum: 10
          maximum: 10000
        required: true
        name: diskGb
        in: query
      - schema:
          type: string
        required: false
        name: providers
        in: query
      - schema:
          type: string
        required: false
        name: excludeProviders
        in: query
      - schema:
          type: integer
          minimum: 1
        required: false
        name: maxPriceCentsPerHour
        in: query
      - schema:
          type: string
          enum:
          - cheapest
          - ordered
        required: false
        name: gpuOrder
        in: query
      responses:
        '200':
          description: Cost preview computed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data: {}
                  message:
                    type: string
                    example: Operation successful
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - timestamp
        '400':
          description: Invalid query
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
      operationId: getJobsCostPreview
      x-operation-id-source: derived
  /jobs/hardware-availability:
    get:
      summary: Live availability by GPU model and count
      description: 'Per GPU model and count: how many offers and providers are eligible and the lowest price, from the live marketplace feed. Spends nothing.'
      tags:
      - Jobs
      security:
      - BearerAuth: []
      parameters:
      - schema:
          type: integer
          minimum: 10
          maximum: 10000
          default: 100
        required: false
        name: diskGb
        in: query
      - schema:
          type: string
        required: false
        name: providers
        in: query
      - schema:
          type: string
        required: false
        name: excludeProviders
        in: query
      - schema:
          type: integer
          minimum: 1
        required: false
        name: maxPriceCentsPerHour
        in: query
      responses:
        '200':
          description: Hardware availability retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data: {}
                  message:
                    type: string
                    example: Operation successful
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - timestamp
        '400':
          description: Invalid query
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: Error message
                  timestamp:
                    type: string
                    example: '2026-11-09T19:02:47.517Z'
                required:
                - success
                - error
                - timestamp
      operationId: getJobsHardwareAvailability
      x-operation-id-source: derived
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: aq_sk_ API key
      description: 'An Aquanode API key, created under API keys in the console, sent as `Authorization: Bearer aq_sk_...` (or in the `x-api-key` header). A key is scoped to the team that created it; mutating routes need a key with the `deploy` or `full` scope.'