Aquanode Jobs API
The Jobs API from Aquanode — 5 operation(s) for jobs.
The Jobs API from Aquanode — 5 operation(s) for jobs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/aquanode-io:aquanode-io-jobs-api"
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.
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: 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.'