Creators & communities
Substack
Posts, Notes, messages, subscribers and stats for your publication.
50 endpoints
Your agent runs your prompts, makes variations and videos, and files the results in the right folder. It works in your own Midjourney account, inside the Claude or ChatGPT app. Nothing to install or host.
14 tools Read and write
Midjourney has no public API and no MCP server (checked 6 Nov 2026). Its help center says it provides an API only in rare cases it grants itself, and you create on midjourney.com or in Discord. Cotlet runs 14 Midjourney tools hosted, over MCP for agents and REST for scripts. There is no API key to apply for and nothing to host.
| What you need | Midjourney itself | Third-party servers | Cotlet |
|---|---|---|---|
| Run prompts from an AI agent | No API or MCP | Yes, if you set one up | Yes, nothing to install |
| Vary, upscale, animate and extend | By hand in the web app | Most cover some of them | Yes, all four |
| Folders, search and downloads of your own work | By hand in Organize | A few local servers do | Yes |
| Works in the Claude and ChatGPT apps | No | One hosted address, the rest run on your computer | Yes, one address |
| Runs 24/7 without your computer | No | Only the hosted one | Yes, hosted |
| One account for many apps | No | No | Yes |
Checked 6 Nov 2026. Sources: Midjourney Community Guidelines · Creating on Web · Zapier: Midjourney (404) · n8n: Midjourney (404) · Unifically: Midjourney API status
Use your own account in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Your agent runs prompts and sorts results.
We never keep your Midjourney password, and no job that uses your GPU time starts until you approve it. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
Add the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
Enable Midjourney for agents. Sign up, log in to Midjourney in its Cloud Browser, then press Enable for agents.
Approve the connection. Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.
One shared address, https://cotlet.dev/mcp/v1, also carries Midjourney next to your other apps. If you enable Midjourney after connecting, refresh the connector so the new tools show up.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-midjourney \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-midjourney": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet-midjourney]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: midjourney_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: midjourney_write Sign in to your Midjourney account in its Cotlet Cloud Browser and enable the app for agents. Jobs run on your own plan, so the plan needs GPU time.
Create a Cotlet API key with access to Midjourney and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
curl "https://cotlet.dev/api/v1/midjourney/creations?query=neon+city&media=image&limit=20" \
-H "Authorization: Bearer $COTLET_API_KEY" A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs and credit details.
{
"status": "success",
"app": "midjourney",
"tool": "list_creations",
"result": {
"creations": [
{
"id": "cr_8f2a41",
"type": "image",
"prompt": "neon city street at night, rain, wide shot",
"folder": "Poster ideas",
"created_at": "2026-10-28T14:02:11Z"
}
],
"next_cursor": null
}
} Read result.creations and pass result.next_cursor unchanged as cursor until it comes back null. Keep query, folder_id and media the same while paging.
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Call list_creations with a query each week and write the ids and prompts to a sheet. |
| Python or Node.js | REST API | Page through list_creations for one folder and call download_creation for each id. |
| Make or Zapier | HTTP request step | Call list_folders and post the creation count of each folder to a channel. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and comparisons.
Cotlet reads Midjourney; your workflow steps write to your chosen destination. These HTTP workflows do not need a native Cotlet connector or a prebuilt template.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
These read your own creations and folders, plus the community Explore feed. They run at once and change nothing.
Returns each creation with its id, type, prompt, folder and creation time, in the order Organize shows them. The search covers only your own work. Pass the returned cursor to read on.
MCP callmidjourney_read → list_creations
REST endpointGET https://cotlet.dev/api/v1/midjourney/creations
| Name | Type | Description |
|---|---|---|
| query string | string | Words from the prompt text. |
| folder_id string | string | Only creations in this folder. |
| media string | string | image or video. Omit for both. |
| in_trash boolean | boolean | true lists trashed creations, the In Trash filter. |
| limit integer | integer | Maximum number of creations to return. |
| cursor string | string | Cursor from the previous response to load the next page. |
{
"creations": [
{
"id": "cr_8f2a41",
"type": "image",
"prompt": "neon city street at night, rain, wide shot",
"folder": "Poster ideas",
"created_at": "2026-10-28T14:02:11Z"
},
{
"id": "cr_8f2a39",
"type": "video",
"prompt": "neon city street at night, rain, wide shot",
"folder": "Poster ideas",
"created_at": "2026-10-28T14:09:40Z"
}
],
"next_cursor": null
} Returns the prompt, type, folder, whether it is liked and the creation time. Use it before vary_creation, upscale_creation or animate_creation to check what you are about to change.
MCP callmidjourney_read → get_creation
REST endpointGET https://cotlet.dev/api/v1/midjourney/creations/{creation_id}
| Name | Type | Description |
|---|---|---|
| creation_id string required | string | Creation id from list_creations. |
{
"creation_id": "creation_8c41d2"
} {
"id": "cr_8f2a41",
"type": "image",
"prompt": "neon city street at night, rain, wide shot",
"folder": "Poster ideas",
"liked": true,
"created_at": "2026-10-28T14:02:11Z"
} Returns every folder with its id, name, folder group and creation count, as the folders menu shows them. Use the id with create_images, add_to_folder and list_creations.
MCP callmidjourney_read → list_folders
REST endpointGET https://cotlet.dev/api/v1/midjourney/folders
No parameters.
{
"folders": [
{
"id": "fo_31",
"name": "Product shots",
"group": "Client work",
"creations": 86
},
{
"id": "fo_32",
"name": "Poster ideas",
"group": "Client work",
"creations": 52
},
{
"id": "fo_40",
"name": "Moodboard",
"group": "Personal",
"creations": 31
}
]
} Returns images and videos by other members with their creator, prompt and link, the same details a click on an item shows. The For You view is based mostly on your Global Personalization Profile.
MCP callmidjourney_read → list_explore
REST endpointGET https://cotlet.dev/api/v1/midjourney/explores
| Name | Type | Description |
|---|---|---|
| query string | string | Search words. |
| view string | string | For You, Random, Hot or Top. |
| limit integer | integer | Maximum number of items to return. |
{
"items": [
{
"id": "ex_77c0",
"type": "image",
"creator": "kai_renders",
"prompt": "paper boat on a glass lake, soft light",
"url": "https://www.midjourney.com/jobs/ex_77c0"
}
]
} Returns a link to the file and its type. Call it once per creation. It changes nothing in your account.
MCP callmidjourney_read → download_creation
REST endpointGET https://cotlet.dev/api/v1/midjourney/creations/{creation_id}/download
| Name | Type | Description |
|---|---|---|
| creation_id string required | string | Creation id from list_creations. |
{
"creation_id": "creation_8c41d2"
} {
"id": "cr_8f2a41",
"type": "image",
"download_url": "https://cdn.example.com/cr_8f2a41.png"
} Each starts a job on your plan and uses its GPU time. A video is 5 seconds and an extension adds 4, up to 21 seconds.
Starts a job on your account and returns its id. The job uses your plan's GPU time. Without Stealth mode the results can appear on midjourney.com for other members. Poll list_creations to see the finished images. By default you confirm each call; you can switch that off for this tool.
MCP callmidjourney_write → create_images
REST endpointPOST https://cotlet.dev/api/v1/midjourney/images
| Name | Type | Description |
|---|---|---|
| prompt string required | string | The prompt text, as you would type it in the Imagine bar. |
| folder_id string | string | Create inside this folder. |
| speed string | string | fast or relax. Relax needs a Standard, Pro or Mega plan. |
| stealth boolean | boolean | Keep the creation private. Pro and Mega plans only. |
{
"prompt": "paper boat on a glass lake, soft light",
"folder_id": "fo_40",
"speed": "fast"
} {
"job_id": "jb_5c19e0",
"status": "queued",
"prompt": "paper boat on a glass lake, soft light",
"folder": "Moodboard",
"speed": "fast",
"stealth": false
} Starts a variation job and returns its id. Subtle makes small, detailed changes, strong changes more of the image. The job uses GPU time. By default you confirm each call; you can switch that off for this tool.
MCP callmidjourney_write → vary_creation
REST endpointPOST https://cotlet.dev/api/v1/midjourney/creations/{creation_id}/vary
| Name | Type | Description |
|---|---|---|
| creation_id string required | string | Image to vary. |
| strength string required | string | subtle changes small details. strong changes the image more and keeps the main theme. |
{
"creation_id": "creation_8c41d2",
"strength": "strength"
} {
"job_id": "jb_5c1a02",
"status": "queued",
"source": "cr_8f2a41",
"strength": "subtle"
} Starts an upscale job that doubles the image size. In V8.2 standard images start at 1024 x 1024 and reach 2048 x 2048. HD images are already 2048 x 2048 and cannot be upscaled further. By default you confirm each call; you can switch that off for this tool.
MCP callmidjourney_write → upscale_creation
REST endpointPOST https://cotlet.dev/api/v1/midjourney/creations/{creation_id}/upscale
| Name | Type | Description |
|---|---|---|
| creation_id string required | string | Image to upscale. |
| upscaler string required | string | subtle keeps changes to a minimum. creative changes the image a bit and adds new details. |
{
"creation_id": "creation_8c41d2",
"upscaler": "upscaler"
} {
"job_id": "jb_5c1a10",
"status": "queued",
"source": "cr_8f2a41",
"upscaler": "creative"
} Starts a video job and returns its id. Videos run 5 seconds. Every plan can make videos in Fast mode, HD videos need Standard, Pro or Mega, and Relax videos (SD only) need Pro or Mega. By default you confirm each call; you can switch that off for this tool.
MCP callmidjourney_write → animate_creation
REST endpointPOST https://cotlet.dev/api/v1/midjourney/creations/{creation_id}/animate
| Name | Type | Description |
|---|---|---|
| creation_id string required | string | Image to animate. |
| motion string | string | low (default) or high. High moves the camera and characters more and can look glitchy. |
| loop boolean | boolean | true makes the first and last frame the same image. |
| prompt string | string | Text to adjust the video, like Animate Manually. Omit for Auto. |
{
"creation_id": "creation_8c41d2"
} {
"job_id": "jb_5c1a31",
"status": "queued",
"source": "cr_8f2a41",
"motion": "low",
"loop": false
} Each extension adds 4 seconds and you can extend up to 4 times, to a maximum of 21 seconds. An extension costs the same GPU time as the first video. By default you confirm each call; you can switch that off for this tool.
MCP callmidjourney_write → extend_video
REST endpointPOST https://cotlet.dev/api/v1/midjourney/creations/{creation_id}/video/extend
| Name | Type | Description |
|---|---|---|
| creation_id string required | string | Video to extend. |
| prompt string | string | New prompt text, like Extend Manual. Omit to reuse the original prompt, like Extend Auto. |
{
"creation_id": "creation_8c41d2"
} {
"job_id": "jb_5c1a58",
"status": "queued",
"source": "cr_8f2a39",
"added_seconds": 4
} These reach no one and run at once. Trashing deletes nothing, and restore_creations brings creations back.
Returns the new folder id. It reaches no one and you can reverse it by hand in the folders menu, so it needs no confirmation by default.
MCP callmidjourney_write → create_folder
REST endpointPOST https://cotlet.dev/api/v1/midjourney/folders
| Name | Type | Description |
|---|---|---|
| name string required | string | Unique folder name. |
| group string | string | Name of a folder group to put it in. |
{
"name": "Jane Doe"
} {
"id": "fo_52",
"name": "Autumn campaign",
"group": "Client work",
"creations": 0
} Adds the creations to the folder and returns how many were added. It reaches no one and you can undo it by removing them from the folder, so it needs no confirmation by default.
MCP callmidjourney_write → add_to_folder
REST endpointPOST https://cotlet.dev/api/v1/midjourney/folders/{folder_id}
| Name | Type | Description |
|---|---|---|
| creation_ids array required | array | Ids of the creations to add. |
| folder_id string required | string | Target folder id from list_folders. |
{
"creation_ids": "creation ids",
"folder_id": "folder_8c41d2"
} {
"folder_id": "fo_32",
"added": 2
} Trashed creations leave your Create and Organize pages. Trashing deletes nothing and restore_creations undoes it, so it needs no confirmation by default. Trashed creations are not private: others may still find them on Explore or through the job ID or URL.
MCP callmidjourney_write → trash_creations
REST endpointPOST https://cotlet.dev/api/v1/midjourney/creations/trash
| Name | Type | Description |
|---|---|---|
| creation_ids array required | array | Ids of the creations to trash. |
{
"creation_ids": "creation ids"
} {
"trashed": 2
} Uses Remove from Trash on the In Trash filter of the Organize page. Returns how many creations came back. It reaches no one, so it needs no confirmation by default.
MCP callmidjourney_write → restore_creations
REST endpointPOST https://cotlet.dev/api/v1/midjourney/creations/restore
| Name | Type | Description |
|---|---|---|
| creation_ids array required | array | Ids of trashed creations, from list_creations with in_trash true. |
{
"creation_ids": "creation ids"
} {
"restored": 2
} Your logged-in Midjourney profile, encrypted with AES-256-GCM, in Finland. Not the password.
The 14 Midjourney tools. Never the login cookie.
Your creations, prompts, folders and plan.
Plan, billing, password, two-factor and permanent deletes.
Your agent gives you the browser link and you finish it there.
Disable for agents in one click, or reset the browser.
Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results). There is no SOC 2 report or third-party pentest yet.
| Plan | A month | Fast GPU time | Relax mode | Stealth | Video |
|---|---|---|---|---|---|
| Basic | $10 | 3.3 hours | No | No | SD, Fast only |
| Standard | $30 | 15 hours | Unlimited images | No | SD and HD, Fast only |
| Pro | $60 | 30 hours | Images and SD video | Yes | SD and HD |
| Mega | $120 | 60 hours | Images and SD video | Yes | SD and HD |
Jobs started by your agent use your plan like jobs you start by hand. The speed option of create_images needs Standard or higher for Relax, and its stealth option needs Pro or Mega. Extra Fast time costs $4 an hour, and a yearly plan is 20% cheaper. Midjourney can change plans and prices, so check its page before you buy.
Midjourney updates its models and web app often. When a button moves or a field is renamed, the fix happens on our side and your prompts keep working. status.cotlet.dev shows the live status.
| Action | Undo |
|---|---|
| Create images, vary, upscale, animate or extend | Trash the results. The GPU time is already used |
| Create a folder | Delete it in the folders menu |
| Add creations to a folder | Remove them from the folder |
| Trash creations | restore_creations, or Remove from Trash on Organize |
| Restore creations | Trash them again |
5 of 14 tools ask first: create_images, vary_creation, upscale_creation, animate_creation and extend_video, the five that start a job on your plan. Reads, folders and trash reach no one, so they run at once. Switch the wait off per tool for a scheduled run.
Each call asks once. Read the prompt and the speed in the approval before you confirm a batch.
{
"name": "create_images",
"arguments": {
"prompt": "paper boat on a glass lake, soft light",
"folder_id": "fo_40",
"speed": "fast"
}
} curl -X POST https://cotlet.dev/api/v1/midjourney/images \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"paper boat on a glass lake, soft light","folder_id":"fo_40","speed":"fast"}' {
"job_id": "jb_5c19e0",
"status": "queued",
"prompt": "paper boat on a glass lake, soft light",
"folder": "Moodboard",
"speed": "fast",
"stealth": false
} Scripts and cron jobs reach the same tools over REST at /api/v1/midjourney, with the same key and price. A failed call costs nothing. The tools table lists the REST path of each tool.
About $23 a monthfor a creator running about 100 prompts a month, 3,940 credits. Your Midjourney plan is billed by Midjourney as before.
| Job | Calls | Credits |
|---|---|---|
| Run 12 prompts into a folder | 13 × 8 | 1,040 |
| Weekly sort of new creations | 3 × 4 | 120 |
| Animate 5 liked images, weekly | 6 × 4 | 240 |
| Export a folder of 20 files, weekly | 23 × 4 | 920 |
| Find a past prompt | 2 × 6 | 120 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 3,940 |
The month is our example for the Standard plan ($30 a month, 15 Fast hours), not a measured average: Midjourney publishes no typical account size and we found none (checked 6 Nov 2026). Cotlet counts calls, not GPU time, so a create_images call costs the same as a folder read. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| thenavidm/midjourney-mcp-cli | MCP server and CLI with 32 tools: generate, vary, upscale, animate, folders, Explore, downloads. 8 stars, MIT, last commit 6 Nov 2026. | Runs on your computer with Node 22 and Chrome, and you keep it updated. |
| ehmo/mj | Go CLI and MCP server with 25 tools through a browser. 5 stars, MIT, last commit 8 Jun 2026. | macOS and Linux, run and updated by you. |
| AceDataCloud/MidjourneyMCP | Hosted MCP address with 16 tools for images, edits and video through the AceDataCloud API. 17 stars, MIT, last commit 1 Nov 2026. | Needs an AceDataCloud account. No tool lists your folders or Organize page. |
| apinetwork/piapi-mcp-server | PiAPI's server for many image, video and music models. 76 stars, MIT, last commit 10 Aug 2026. | Midjourney is one ticked tool, imagine. |
| Zapier and n8n | Neither lists a Midjourney app, both pages return 404. | Nothing to connect to. Cotlet's REST API works from their HTTP steps. |
The GitHub servers are free and good if you are happy to run a tool on your own machine. A hosted address suits you if you only need to generate. Cotlet is the hosted option that also works on your library, inside the Claude and ChatGPT apps, with one sign-in for all your apps.
Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the Midjourney tools.
Sign up at cotlet.dev, log in to Midjourney once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Midjourney account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Midjourney: run a list of prompts; sort new creations into folders; turn your best images into videos. You ask in plain words, and anything that reaches other people waits for your OK first.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Create a free account at https://cotlet.dev, open Midjourney under Integrations in the console and log in to Midjourney in its Cloud Browser. The trial starts with your first app, no card asked.
Yes. Jobs run on your own Midjourney plan and use its GPU time like jobs you start by hand. Relax mode for images needs a Standard, Pro or Mega plan, and Relax videos need Pro or Mega, per the plan docs.
Only on a Pro or Mega plan. create_images has a stealth option, and Midjourney offers Stealth mode on those plans only. Without it, creations can appear on midjourney.com for other members.
Not that we found (6 Nov 2026). Midjourney publishes no API docs, keys or developer program, and Zapier and n8n list no Midjourney app. Cotlet gives your agent the same jobs as the web app, hosted, without a key from Midjourney.
Any plan with GPU time works. Relax mode needs Standard, Pro or Mega, Stealth needs Pro or Mega, and Relax videos need Pro or Mega (Midjourney plans page, 20 Oct 2026 archive copy).
An animated image is 5 seconds. Each extension adds 4 seconds and you can extend up to 4 times, to 21 seconds, at the same GPU time as the first video (Midjourney video article).
Only the door is different. Both expose the same 14 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Midjourney, Inc.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy