midjourney Image Manipulation API

Operations for manipulating existing generated images, including upscaling to higher resolutions, creating variations, blending multiple images, and region-based inpainting.

Operations 3

POST /v1/upscale Upscale a generated image to higher resolution #
POST /v1/variations Create variations of a generated image #
POST /v1/blend Blend multiple images together #

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/midjourney-image-manipulation-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 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

midjourney-image-manipulation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Midjourney Image Generation Image Manipulation API
  description: The Midjourney Image Generation API provides programmatic access to Midjourney's AI-powered image generation capabilities.
  version: 1.0.0
  contact:
    name: Midjourney Support
    url: https://docs.midjourney.com/hc/en-us
  termsOfService: https://docs.midjourney.com/hc/en-us/articles/32013317003661-Terms-of-Service
servers:
- url: https://api.midjourney.com
  description: Midjourney Production API Server
security:
- bearerAuth: []
tags:
- name: Image Manipulation
  description: Operations for manipulating existing generated images, including upscaling to higher resolutions, creating variations, blending multiple images, and region-based inpainting.
paths:
  /v1/upscale:
    post:
      operationId: createUpscaleJob
      summary: Upscale a generated image to higher resolution
      description: Upscales a specific image from a previously generated image grid to a higher resolution. Requires the job identifier of the original generation and the index of the image to upscale (1-4). The upscaled image is produced asynchronously and the result can be retrieved via the job status endpoint or webhook callback.
      tags:
      - Image Manipulation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpscaleRequest'
      responses:
        '200':
          description: Upscale job successfully created. Returns a new job identifier for tracking the upscale operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCreatedResponse'
        '400':
          description: Invalid request. The parent job ID may be invalid or the image index out of range.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: The referenced parent job was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/variations:
    post:
      operationId: createVariationJob
      summary: Create variations of a generated image
      description: Generates a new grid of image variations based on a specific image from a previously generated grid. Requires the job identifier of the original generation and the index of the image to vary (1-4). Each variation maintains the general style and composition of the source image while introducing creative differences.
      tags:
      - Image Manipulation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VariationRequest'
      responses:
        '200':
          description: Variation job successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCreatedResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: The referenced parent job was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/blend:
    post:
      operationId: createBlendJob
      summary: Blend multiple images together
      description: Blends two to five images together to create a new composite image that merges the visual concepts, styles, and compositions of the source images. Images can be provided as URLs or base64-encoded data. An optional text prompt can be included to guide the blending process.
      tags:
      - Image Manipulation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BlendRequest'
      responses:
        '200':
          description: Blend job successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobCreatedResponse'
        '400':
          description: Invalid request. At least two images are required and no more than five are allowed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    VariationRequest:
      type: object
      required:
      - job_id
      - index
      properties:
        job_id:
          type: string
          format: uuid
          description: The job identifier of the original image generation job containing the image to create variations from.
        index:
          type: integer
          description: The index of the image in the generation grid to vary, from 1 (top-left) to 4 (bottom-right).
          minimum: 1
          maximum: 4
        webhook_url:
          type: string
          format: uri
          description: URL to receive webhook notifications for this variation job.
        webhook_type:
          type: string
          description: Controls when webhook notifications are sent.
          enum:
          - progress
          - result
          default: result
    UpscaleRequest:
      type: object
      required:
      - job_id
      - index
      properties:
        job_id:
          type: string
          format: uuid
          description: The job identifier of the original image generation job containing the image to upscale.
        index:
          type: integer
          description: The index of the image in the generation grid to upscale, from 1 (top-left) to 4 (bottom-right).
          minimum: 1
          maximum: 4
        webhook_url:
          type: string
          format: uri
          description: URL to receive webhook notifications for this upscale job.
        webhook_type:
          type: string
          description: Controls when webhook notifications are sent.
          enum:
          - progress
          - result
          default: result
    BlendRequest:
      type: object
      required:
      - images
      properties:
        images:
          type: array
          description: List of images to blend together. Between two and five images can be provided, each as a URL or base64-encoded data.
          minItems: 2
          maxItems: 5
          items:
            type: object
            properties:
              url:
                type: string
                format: uri
                description: URL of the image to include in the blend.
              base64:
                type: string
                format: byte
                description: Base64-encoded image data to include in the blend.
        aspect_ratio:
          type: string
          description: The aspect ratio for the blended output image.
          pattern: ^[0-9]+:[0-9]+$
          default: '1:1'
        prompt:
          type: string
          description: Optional text prompt to guide the blending process.
          maxLength: 4000
        webhook_url:
          type: string
          format: uri
          description: URL to receive webhook notifications for this blend job.
        webhook_type:
          type: string
          description: Controls when webhook notifications are sent.
          enum:
          - progress
          - result
          default: result
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          description: Indicates the request failed.
          enum:
          - ERROR
        code:
          type: string
          description: Machine-readable error code identifying the type of error.
        message:
          type: string
          description: Human-readable description of the error.
    JobCreatedResponse:
      type: object
      properties:
        status:
          type: string
          description: Indicates the request was accepted.
          enum:
          - SUCCESS
        message:
          type: string
          description: A human-readable message confirming job creation.
        data:
          type: object
          properties:
            job_id:
              type: string
              format: uuid
              description: The unique identifier assigned to the created job. Use this ID to poll for status or receive webhook notifications.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key obtained from the Midjourney Enterprise dashboard. Include in the Authorization header as a Bearer token.
externalDocs:
  description: Midjourney Documentation
  url: https://docs.midjourney.com/