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/useapi-jobs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Useapi Jobs API
version: '1.0'
description: 'Operations tagged Jobs across 2 of this provider''s published API definitions: useapi-midjourney-v1-openapi.yml, useapi-midjourney-v2-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.useapi.net/v1
- url: https://api.useapi.net/v2
security:
- apiToken: []
tags:
- name: Jobs
paths:
/jobs/imagine:
post:
description: Submit the Midjourney /imagine command
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
prompt:
description: Midjourney prompt
type: string
maxLength: 1024
discord:
description: Discord token
type: string
server:
description: Discord server id
type: string
channel:
description: Discord channel id
type: string
maxJobs:
description: Optional Maximum Concurrent Jobs for current Midjourney subscription
type: integer
minimum: 1
maximum: 15
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
required:
- prompt
- discord
- server
- channel
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/imagineResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'412':
description: prompt, discord, server or channel value is missing
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'413':
description: prompt, replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'422':
description: Unable to find posted message, likely moderated or invalid prompt
content:
application/json:
schema:
$ref: '#/components/schemas/imagineResponseModerated'
'429':
description: API query is full and can not accept new jobs/imagine requests
content:
application/json:
schema:
$ref: '#/components/schemas/responseMaxJobs'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs/button:
post:
description: Midjourney upscale or create variations and enhance or modify buttons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
jobid:
description: jobid of successfully completed (status set to completed) jobs/imagine, jobs/blend, jobs/describe or jobs/button job
type: string
button:
description: button from buttons array of job referenced via jobid
type: string
enum:
- U1
- U2
- U3
- U4
- V1
- V2
- V3
- V4
- ⬅️
- ➡️
- ⬆️
- ⬇️
- 🔄
- Vary (Strong)
- Vary (Subtle)
- Zoom Out 1.5x
- Zoom Out 2x
- Upscale (2x)
- Upscale (4x)
- Redo Upscale (2x)
- Redo Upscale (4x)
- Make Square
- Make Variations
- Remaster
discord:
description: Optional Discord token, if provided will override discord value of referenced jobid
type: string
maxJobs:
description: Optional Maximum Concurrent Jobs for current Midjourney subscription
type: integer
minimum: 1
maximum: 15
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
required:
- jobid
- button
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/buttonResponse'
'400':
description: Button not supported or not found in jobid buttons array
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'404':
description: Unable to locate jobid
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'409':
description: Upscale button already executed by jobid
content:
application/json:
schema:
$ref: '#/components/schemas/buttonResponseErrorUpscaled'
'412':
description: jobid or button value is missing
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'413':
description: replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'429':
description: API query is full and can not accept new jobs/button requests
content:
application/json:
schema:
$ref: '#/components/schemas/responseMaxJobs'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs/blend:
post:
description: Submit the Midjourney /blend command
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
blendUrls:
description: Must contain at least 2 valid URL image links, up to 5 URL image links supported
type: array
minItems: 2
maxItems: 5
items:
type: string
blendDimensions:
type: string
enum:
- Portrait
- Square
- Landscape
discord:
description: Discord token
type: string
server:
description: Discord server id
type: string
channel:
description: Discord channel id
type: string
maxJobs:
description: Optional Maximum Concurrent Jobs for current Midjourney subscription
type: integer
minimum: 1
maximum: 15
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
required:
- blendUrls
- discord
- server
- channel
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/blendResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'412':
description: blendUrls, discord, server or channel value is missing, one of blendUrls values not a valid URL or URL which can not be retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'413':
description: replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'422':
description: Unable to find posted message, likely moderated or invalid url
content:
application/json:
schema:
$ref: '#/components/schemas/imagineResponseModerated'
'429':
description: API query is full and can not accept new jobs/blend requests
content:
application/json:
schema:
$ref: '#/components/schemas/responseMaxJobs'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs/describe:
post:
description: Submit the Midjourney /describe command
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
describeUrl:
description: Must contain valid URL image link
type: string
discord:
description: Discord token
type: string
server:
description: Discord server id
type: string
channel:
description: Discord channel id
type: string
maxJobs:
description: Optional Maximum Concurrent Jobs for current Midjourney subscription
type: integer
minimum: 1
maximum: 15
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
required:
- describeUrl
- discord
- server
- channel
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/describeResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'412':
description: describeUrl, discord, server or channel value is missing, describeUrl value not a valid URL or URL which can not be retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'413':
description: replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'422':
description: Unable to find posted message, likely moderated or invalid url
content:
application/json:
schema:
$ref: '#/components/schemas/imagineResponseModerated'
'429':
description: API query is full and can not accept new jobs/blend requests
content:
application/json:
schema:
$ref: '#/components/schemas/responseMaxJobs'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs/:
get:
description: Retrieve status and results of jobs/imagine, jobs/button, jobs/blend or jobs/describe
parameters:
- in: query
name: jobid
schema:
type: string
required: true
description: jobid value returned by jobs/imagine, jobs/button, jobs/blend or jobs/describe
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/jobResponse'
'400':
description: Query param jobid not provided
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'404':
description: Unable to locate jobid
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs/cancel/:
get:
description: Cancel execution of job created by jobs/imagine, jobs/button, jobs/blend or jobs/describe
parameters:
- in: query
name: jobid
schema:
type: string
required: true
description: jobid value returned by jobs/imagine, jobs/button, jobs/blend or jobs/describe
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/jobCancelResponse'
'400':
description: Query param jobid not provided
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
'404':
description: Unable to locate jobid
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs:
get:
description: Get list of currently executing jobs
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/jobsResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v1
/jobs/info:
post:
description: Execute the Midjourney /info command
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
discord:
description: Discord token, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
server:
description: Discord server id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
channel:
description: Discord channel id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed. Value can be provided for the account via the POST /account/midjourney/{channel}
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/completedResponse'
'400':
description: discord, server or channel value is missing | replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'402':
description: Account has no subscription or subscription expired
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'596':
description: Your Discord account has received a pending moderation message from Midjourney. Please address this issue and reset pendingModMessage before making any new API calls
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v2
/jobs/relax:
post:
description: Execute the Midjourney /relax command
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
discord:
description: Discord token, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
server:
description: Discord server id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
channel:
description: Discord channel id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed. Value can be provided for the account via the POST /account/midjourney/{channel}
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/completedResponse'
'400':
description: discord, server or channel value is missing | replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'402':
description: Account has no subscription or subscription expired
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'596':
description: Your Discord account has received a pending moderation message from Midjourney. Please address this issue and reset pendingModMessage before making any new API calls
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v2
/jobs/fast:
post:
description: Execute the Midjourney /fast command
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
discord:
description: Discord token, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
server:
description: Discord server id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
channel:
description: Discord channel id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed. Value can be provided for the account via the POST /account/midjourney/{channel}
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/completedResponse'
'400':
description: discord, server or channel value is missing | replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'402':
description: Account has no subscription or subscription expired
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'596':
description: Your Discord account has received a pending moderation message from Midjourney. Please address this issue and reset pendingModMessage before making any new API calls
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v2
/jobs/turbo:
post:
description: Execute the Midjourney /turbo command
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
discord:
description: Discord token, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
server:
description: Discord server id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
channel:
description: Discord channel id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed. Value can be provided for the account via the POST /account/midjourney/{channel}
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/completedResponse'
'400':
description: discord, server or channel value is missing | replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'402':
description: Account has no subscription or subscription expired
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'596':
description: Your Discord account has received a pending moderation message from Midjourney. Please address this issue and reset pendingModMessage before making any new API calls
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v2
/jobs/variability:
post:
description: Execute the Midjourney /prefer variability command
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
discord:
description: Discord token, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
server:
description: Discord server id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
channel:
description: Discord channel id, optional if a value has already been provided for the account via the POST /account/midjourney/{channel}
type: string
replyUrl:
description: Optional callback URL, API will call the provided replyUrl once generation completed. Value can be provided for the account via the POST /account/midjourney/{channel}
type: string
replyRef:
description: Optional reference id which will be stored and returned along with this job response / result
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/completedResponse'
'400':
description: discord, server or channel value is missing | replyRef or replyUrl is too long
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'402':
description: Account has no subscription or subscription expired
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
'596':
description: Your Discord account has received a pending moderation message from Midjourney. Please address this issue and reset pendingModMessage before making any new API calls
content:
application/json:
schema:
$ref: '#/components/schemas/responseError_2'
tags:
- Jobs
servers:
- url: https://api.useapi.net/v2
components:
schemas:
describeResponse:
type: object
properties:
jobid:
description: Use returned jobid value to retrieve job status and results
type: string
verb:
type: string
enum:
- describe
status:
type: string
enum:
- started
- completed
created:
type: string
updated:
type: string
describeUrl:
type: string
channel:
type: string
server:
type: string
maxJobs:
type: integer
messageId:
type: string
content:
description: Contains message generated by Midjourney reflecting current generation parameters and progress
type: string
embeds:
description: Contains additional information
type: array
items:
type: object
properties:
type:
type: string
description:
type: string
image:
type: object
properties:
url:
type: string
proxy_url:
type: string
width:
type: number
height:
type: number
timestamp:
type: string
code:
type: integer
enum:
- 200
additionalProperties: false
required:
- jobid
- verb
- status
- created
- updated
- describeUrl
- channel
- server
- maxJobs
- messageId
- content
- timestamp
- code
imagineResponseModerated:
type: object
properties:
error:
type: string
jobid:
type: string
status:
type: string
enum:
- moderated
code:
type: integer
enum:
- 422
additionalProperties: false
required:
- error
- jobid
- status
- code
buttonResponse:
type: object
properties:
jobid:
description: Use returned jobid value to retrieve job status and results
type: string
verb:
type: string
enum:
- button
status:
type: string
enum:
- started
- completed
created:
type: string
updated:
type: string
button:
type: string
enum:
- U1
- U2
- U3
- U4
- V1
- V2
- V3
- V4
- ⬅️
- ➡️
- ⬆️
- ⬇️
- 🔄
- Vary (Strong)
- Vary (Subtle)
- Zoom Out 1.5x
- Zoom Out 2x
- Upscale (2x)
- Upscale (4x)
- Redo Upscale (2x)
- Redo Upscale (4x)
- Make Square
- Make Variations
- Remaster
parentJobId:
type: string
channel:
type: string
server:
type: string
maxJobs:
type: integer
code:
type: integer
enum:
- 200
additionalProperties: false
required:
- jobid
- verb
- status
- created
- updated
- button
- parentJobId
- channel
- server
- maxJobs
- code
blendResponse:
type: object
properties:
jobid:
description: Use returned jobid value to retrieve job status and results
type: string
verb:
type: string
enum:
- blend
status:
type: string
enum:
- started
created:
type: string
updated:
type: string
blendUrls:
type: array
items:
type: string
blendDimensions:
# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/useapi/refs/heads/main/openapi/useapi-jobs-api-openapi.yml