Documentation

Base URL: https://api.userapi.ai

All requests are made to the address https://api.userapi.ai

For all requests, you need to provide a valid API key (you can get it in the dashboard) value in the request header, using the following header: api-key: <your api-key>

Don't forget about the second parameter in the headers: Content-Type: application/json

These two parameters must be set in every API request

Inclined font parameters are optional

Imagine

POST: /midjourney/v2/imagine

Request body:

{
"prompt": "nice girl",
"webhook_url": "https://example.com/imagine/webhook-url",
"webhook_type": "progress", // or result
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"is_disable_prefilter": false
}

If account_hash is provided, the task will be executed using it. If it is not specified, and your API key is associated with multiple Discord accounts, they will be rotated to evenly distribute the load.

Response:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b"
}

In the response, the task hash is returned, which serves as an identifier that can be used to retrieve the task status

The is_disable_prefilter parameter is optional and is set to false by default. If set to true, the request will not undergo eligibility analysis for submission to generator. This potential adjustment can prolong the account's operational duration.

When the webhook_url is provided, task object updates will be sent via the POST method whenever the task status changes.

If the webhook_type is set to progress, webhooks will provide updates on the task's progress and also notify upon task completion or errors. On the other hand, when webhook_type is set to result, webhooks will be sent solely upon task completion or in case of errors

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"webhook_url": "https://example.com/imagine/webhook-url",
"webhook_type": "progress",
"prompt": "nice girl",
"type": "imagine",
"progress": 100, // it's always 100 if status is done
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...a88f0f357480.png",
"proxy_url": "https://media.discordapp.net/...a88f0f357480.png",
"filename": "...a88f0f357480.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 6950334
},
"status_reason": null,
"prefilter_result": [],
"created_at": "2006-01-02T15:04:05+00:00"
}

The result field is specific to each method. The example above shows the structure of the object when making a request to /midjourney/v2/imagine

The prefilter_result field contains the reasons why a task was not sent to the bot due to the request's eligibility check. If the array is empty, it means the request passed the prefilter.

Possible values for elements in prefilter_result are:

  • TOXICITY
  • SEVERE_TOXICITY
  • IDENTITY_ATTACK
  • INSULT
  • PROFANITY
  • THREAT
  • SEXUALLY_EXPLICIT
  • FLIRTATION

Possible values of elements in status include:

sentThe task has been successfully sent for processing
waitingMJ has accepted the task, and it is queued for processing by MJ
progressUpdating task progress; the progress field will contain a value between 0 and 100. This status can be for tasks of type imagine, variation and blend and others
doneThe task is completed
errorThe task is not completed. The status_reason field will indicate the reason

Animate

POST: /midjourney/v2/animate

Request body:

{
"hash": "9701f416-b648-4f37-b432-edaa6f77662d", // hash of upscale job
"choice": "high", // must be one of: "high", "low"
"webhook_url": "https://example.com/animate/webhook-url",
"webhook_type": "result"
}

The hash field here is the hash of a task with the done status and the type equal to upscale. As a result, you will get 4 animations in a single file. To get one of the 4 animations separately, you need to call the upscale method AGAIN, passing the hash of this task to it.

Response:

{
"hash": "ed162774-9244-4038-bdf1-801b033809ec"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "fbf3c9ea-155a-48e6-bbc0-2b3102c64d79",
"hash": "ed162774-9244-4038-bdf1-801b033809ec",
"parent_hash": "9701f416-b648-4f37-b432-edaa6f77662d",
"webhook_url": "https://example.com/animate/webhook-url",
"webhook_type": "result",
"callback_id": null,
"choice": "high",
"type": "animate",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/attachments/...b2c36b.webp",
"proxy_url": "https://media.discordapp.net/attachments/...b2c36b.webp",
"filename": "...b2c36b.webp",
"content_type": "image/webp",
"width": 560,
"height": 704,
"size": 802244
},
"job_id": "385f202d-16a5-4472-90e5-14b72bb2c36b",
"next_actions": [
{
"type": "upscale",
"choices": [1, 2, 3, 4]
},
{"type": "reroll"}
],
"status_reason": null,
"created_at": "2025-08-01T13:12:33Z"
}

Describe

POST: /midjourney/v2/describe

Request body:

{
"url": "https://example.com/image.jpg",
"webhook_url": "https://example.com/describe/webhook-url",
"webhook_type": "result",
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6"
}

Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44710-88a6-4673-acc8-d60ffc3479a6",
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a",
"webhook_url": "https://example.com/describe/webhook-url",
"webhook_type": "result",
"prompt": "https://example.com/50a9.jpg",
"type": "describe",
"status": "done",
"result": [
"nice girl in the hat",
"girl in the nice hat",
"cute girl in the hat",
"girl in the little hat"
],
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Upload (image directly to discord)

POST: /midjourney/v2/upload

CURL example:

curl -X POST \
-H "api-key: <your api-key>" \
-F "image=@/path/to/your/image.png" \
-F "account_hash=6794f6ef-866a-4bc3-b0bc-7b28ec010d1b" \
https://api.userapi.ai/midjourney/v2/upload

You can choose not to pass the account_hash. In this case any currently available account will be selected for downloading image must be in png or jpg format

Also, this method can accept a url parameter to your image and upload it to Discord:

POST: /midjourney/v2/upload
{
"url": "https://example.com/image.jpg",
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6"
}

You can choose not to pass the account_hash. In this case any currently available account will be selected for downloading url must be link to a file in png or jpg format

Response:

{
"account_hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"image": {
"id": "1...7",
"url": "https://cdn.discordapp.com/.../cc132630.png",
"proxy_url": "https://media.discordapp.net/.../cc132630.png",
"filename": "cc132630.png",
"content_type": "image/png",
"width": 1024,
"height": 1024,
"size": 79310,
"ephemeral": false
}
}

Upscale

POST: /midjourney/v2/upscale

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": 1, // must be in [1..4],
"webhook_url": "https://example.com/upscale/webhook-url",
"webhook_type": "result"
}

The hash field here is the hash of a task that has been completed and is in the done status with the type equal to imagine, describe, animate or blend This method does not have progress, so the status field will never be equal to progress

Response:

{
"hash": "2c8abb2d-5f4d-4c55-8830-102a4fe754ed"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "2c8abb2d-5f4d-4c55-8830-102a4fe754ed",
"webhook_url": null,
"webhook_type": null,
"choice": 3,
"type": "upscale",
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...039b7de3d18f.png",
"proxy_url": "https://media.discordapp.net/...039b7de3d18f.png",
"filename": "...039b7de3d18f.png",
"content_type": "image/png",
"width": 1024,
"height": 1024,
"size": 1512812
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Upsample

Upscale (Subtle), Upscale (Creative), Upscale (2x), Upscale (4x)

POST: /midjourney/v2/upsample

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": "v6_2x_subtle", // or v6_2x_creative or v5_2x or v5_4x
// or subtle or creative or v6r1_2x_subtle or v6r1_2x_creative
// for --v 7 use v7_2x_subtle or v7_2x_creative
"webhook_url": "https://example.com/upsample/webhook-url",
"webhook_type": "result" // or progress
}

The hash field here is the hash of a task that has been completed and is in the done status with the type equal to upscale . Depending on version model you should pass right choice

Response:

{
"hash": "2c8abb2d-5f4d-4c55-8830-102a4fe754ed"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "2c8abb2d-5f4d-4c55-8830-102a4fe754ed",
"webhook_url": null,
"webhook_type": null,
"choice": 3,
"type": "upsample",
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...039b7de3d18f.png",
"proxy_url": "https://media.discordapp.net/...039b7de3d18f.png",
"filename": "...039b7de3d18f.png",
"content_type": "image/png",
"width": 1024,
"height": 1024,
"size": 1512812
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Variation

POST: /midjourney/v2/variation

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": 1, // must be in [1..4],
"prompt": "new prompt if in remix mode",
"webhook_url": "https://example.com/variation/webhook-url",
"webhook_type": "result"
}

The hash field here is the hash of a task that has been completed and is in the done status with the type equal to imagine, describe or blend prompt field can be passed, if your account in the remix mode, take a look to /prefer to know how toggle between remix mode

This method does not have progress, so the status field will never be equal to progress Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "c688a245-3964-4286-9572-d6c7e22f589a",
"webhook_url": null,
"webhook_type": null,
"choice": 3,
"type": "variation",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...515a41ad678f.png",
"proxy_url": "https://media.discordapp.net/...515a41ad678f.png",
"filename": "...-515a41ad678f.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 7003237
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

As evident from the example request, similar to the upscale operation, the account_hash is not included. This omission is due to the fact that upscale can only be performed using the Discord account in which the original image was generated

Seed

POST: /midjourney/v2/seed

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"is_async": false,
"webhook_url": "https://example.com/seed/webhook-url"
}

is_async is set to false by default, which means your request will be completed after seed calculated (takes 5-10 seconds). If is_async is set to true, you will receive an immediate response with the key "hash", and you can check the status using the /status method If is_async is true and a webhook_url is provided, you will receive a webhook notification as soon as the seed is calculated

In the example below parameter urls contains links to individual images from the first to the fourth, derived from the original image.

Please note that Seed method can only be called once for the same hash

Example of the request body that will be sent via webhook_url:

{
"account_hash": "24c780c4-4658-b11c-8b9d-7a6b5040251a",
"hash": "80c24c74-b11c-4658-9d8b-b5040251a7a6",
"webhook_url": null,
"webhook_type": null,
"type": "seed",
"progress": 100,
"status": "done",
"result": {
"seed": "984073766",
"urls": [
{
"url": "https://media.discordapp.net//...png",
"proxy_url": "https://media.discordapp.net//...png",
"filename": "...png",
"content_type": "image/png",
"width": 1024,
"height": 1024,
"size": 1811123
},
...
{
"url": "https://media.discordapp.net//...png",
"proxy_url": "https://media.discordapp.net//...png",
"filename": "...png",
"content_type": "image/png",
"width": 1024,
"height": 1024,
"size": 1811123
},
]
}
}

Vary (Subtle)

POST: /midjourney/v2/vary-subtle

Request body:

{
"hash": "6794f6ef-856a-4bc3-b0bc-7b28ec010d1b",
"prompt": "new prompt if in remix mode",
"webhook_url": "https://example.com/vary-subtle/webhook-url",
"webhook_type": "result"
}

The hash field here is the hash of a task that has been completed and is in the done status with the type equal to upscale prompt field can be passed, if your account in the remix mode, take a look to /prefer to know how toggle between remix mode

Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "c688a245-3964-4286-9572-d6c7e22f589a",
"webhook_url": null,
"webhook_type": null,
"choice": 3,
"type": "vary_subtle",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...515a41ad678f.png",
"proxy_url": "https://media.discordapp.net/...515a41ad678f.png",
"filename": "...-515a41ad678f.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 7003237
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Vary (Strong)

POST: /midjourney/v2/vary-strong

Request body:

{
"hash": "6794f6ef-856a-4bc3-b0bc-7b28ec010d1b",
"prompt": "new prompt if in remix mode",
"webhook_url": "https://example.com/vary-strong/webhook-url",
"webhook_type": "result"
}

The hash field here is the hash of a task that has been completed and is in the done status with the type equal to upscale prompt field can be passed, if your account in the remix mode, take a look to /prefer to know how toggle between remix mode

Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "c688a245-3964-4286-9572-d6c7e22f589a",
"webhook_url": null,
"webhook_type": null,
"choice": 3,
"type": "vary_subtle",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...515a41ad678f.png",
"proxy_url": "https://media.discordapp.net/...515a41ad678f.png",
"filename": "...-515a41ad678f.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 7003237
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Inpaint

POST: /midjourney/v2/inpaint

This method allows you to modify the selected area of the image

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"mask": "UklGRgQoAABXR...", // base64 of png image,
"prompt": "draw instead ...",
"webhook_url": "https://example.com/inpaint/webhook-url",
"webhook_type": "progress" // or result
}

The hash field here is the hash of a task that has been completed and is in the done status with the type equal to upscale

mask - this parameter is used to pass a base64 of a black and white image in png format. The white area designates the area on the original image that needs to be redrawn. The size of this mask must be the same as the image you want redraw

Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "c688a245-3964-4286-9572-d6c7e22f589a",
"webhook_url": null,
"webhook_type": null,
"type": "inpaint",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...515a41ad678f.png",
"proxy_url": "https://media.discordapp.net/...515a41ad678f.png",
"filename": "...-515a41ad678f.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 7003237
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Blend

POST: /midjourney/v2/blend

Request body:

{
"urls": [
{
"url": "https://example.com/image1.jpg",
"ext": "jpg" // or png
},
{
"url": "https://example.com/image2.png",
"ext": "png"
}
],
"webhook_url": "https://example.com/blend/webhook-url",
"webhook_type": "result",
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6"
}

The number of elements in the urls should range from 2 to 5

Response:

{
"hash": "8fc469bf-3f5f-341e-c9fc-2d7116f1623a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "3b2c7341-ec22-0301-810d-9cf0543e20ba",
"hash": "fd88479e-455f-6a6f-6284-b0c49117d76f",
"webhook_url": "https://example.com/blend/webhook-url",
"webhook_type": "progress",
"urls": [
{
"url": "https://example.com/image1.jpg",
"ext": "jpg"
},
{
"url": "https://example.com/image1.jpg",
"ext": "jpg"
}
],
"type": "blend",
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...6a65992f3587.png",
"proxy_url": "https://media.discordapp.net/a56394/...6a65992f3587.png",
"filename": "...-6a65992f3587.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 2145293
},
"status_reason": null,

Reroll

POST: /midjourney/v2/reroll

This method repaint the image ([🔄] button)

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"webhook_url": "https://example.com/reroll/webhook-url",
"webhook_type": "progress" // or result
"prompt": "new prompt if remix mode on"
}

prompt parameter is used if your account in remix mode, take a look to /prefer to know how toggle between remix mode

Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "a7d44910-88a6-4673-acc8-d60ffc3479a6",
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a",
"webhook_url": null,
"webhook_type": null,
"type": "reroll",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/...515a41ad678f.png",
"proxy_url": "https://media.discordapp.net/...515a41ad678f.png",
"filename": "...-515a41ad678f.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 7003237
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Zoom Out 2x, Zoom Out 1.5x, Custom Zoom

POST: /midjourney/v2/zoom

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": 50, // must be in [50, 75], required without prompt
"prompt": "prompt for Custom Zoom", // required without choice
"webhook_url": "https://example.com/zoom/webhook-url",
"webhook_type": "result"
}

The hash - is a hash of upscaled image you want to zoom it will execute Zoom Out 2x if choice == 50 Zoom Out 1.5x if choice == 75 Custom Zoom if prompt passed without choice

Response:

{
"hash": "8fc469bf-3f5f-341e-c9fc-2d7116f1623a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "f815cef1-49f2-4819-92c3-8be17d0b8514",
"hash": "15061f02-c54b-41ca-a66a-49da2988d62b",
"webhook_url": "https://example.com/zoom/webhook-url",
"webhook_type": "result",
"choice": 75,
"type": "zoom",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/attachments/...8be17d0b8514.png",
"proxy_url": "https://media.discordapp.net/attachments/...8be17d0b8514.png",
"filename": "...8be17d0b8514.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 3354153
},
"status_reason": null,
"created_at": "2023-10-26T09:06:27Z"
}

Pan

POST: /midjourney/v2/pan

Request body:

{
"hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": "left", // must be in [left, right, up, down],
"prompt": "new prompt, required only if account in remix mode",
"webhook_url": "https://example.com/pan/webhook-url",
"webhook_type": "result"
}

The hash - is a hash of upscaled image you want to pan prompt field can be passed, if your account in the remix mode, take a look to /prefer to know how toggle between remix mode

Response:

{
"hash": "8fc469bf-3f5f-341e-c9fc-2d7116f1623a"
}

Example of the request body that will be sent via webhook_url:

{
"account_hash": "f815cef1-49f2-4819-92c3-8be17d0b8514",
"hash": "15061f02-c54b-41ca-a66a-49da2988d62b",
"webhook_url": "https://example.com/pan/webhook-url",
"webhook_type": "result",
"choice": "left",
"type": "pan",
"progress": 100,
"status": "done",
"result": {
"url": "https://cdn.discordapp.com/attachments/...8be17d0b8514.png",
"proxy_url": "https://media.discordapp.net/attachments/...8be17d0b8514.png",
"filename": "...8be17d0b8514.png",
"content_type": "image/png",
"width": 2048,
"height": 2048,
"size": 3354153
},
"status_reason": null,
"created_at": "2024-01-20T09:06:27Z"
}

Info

This method provides information about the subscription status of your Discord account in MJ

POST: /midjourney/v2/info

Request body:

{
"account_hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"webhook_url": "https://example.com/upscale/webhook-url",
}

The hash field here represents the Discord account hash, obtainable from the dashboard

This method does not have waiting and progress statuses. Therefore, webhook notifications will only be sent when the task status changes to error or done

Response:

{
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a"
}

This hash can be utilized to request the task status through the status method

Example of the request body that will be sent via webhook_url:

{
"account_hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"hash": "2d7116bf-3006-41e7-9fcc-f1628fc4693a",
"webhook_url": null,
"webhook_type": null,
"type": "info",
"status": "done",
"result": {
"user_id": "9788f3b9-f3ba-48e9-b058-8c27f8e000fc",
"subscription": {
"name": "Standard",
"active_to": "2023-10-18T19:25:33+03:00"
},
"visibility_mode": "Public",
"fast_time_remaining": {
"remaining_sec": 51876,
"total_sec": 54000
},
"lifetime_usage": {
"cnt": 107,
"sec": 3816
},
"relaxed_usage": {
"cnt": 0,
"sec": 0
},
"queued_jobs_fast": 0,
"queued_jobs_relax": 0,
"running_jobs": 0
},
"status_reason": null,
"created_at": "2006-01-02T15:04:05+00:00"
}

Prefer

POST: /midjourney/v2/prefer

Request body:

{
"account_hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": "remix", // only remix available for now
"is_async": false, // or true
"webhook_url": "https://example.com/prefer/webhook-url",
}

is_async is set to false by default, which means your request will be completed after toggling the remix mode. If is_async is set to true, you will receive an immediate response with the key "hash", and you can check the status using the /status method.

Response:

{
"status": true,
"result": {
"account_hash": "a9c8c98d-519b-448e-beee-ccb6f56bb20a",
"hash": "f698d36a-585d-42c8-b354-b3cc74545848",
"webhook_url": null,
"webhook_type": null,
"choice": "remix",
"type": "prefer",
"status": "done",
"result": "on", // or off
"status_reason": null,
"created_at": "2024-03-24T22:59:35+03:00"
}
}

Status

GET: /midjourney/v2/status?hash={hash}

This method, using the hash, retrieves the status of a task. The response structure is identical to what is received via a webhook for each task type

Speed

POST: /midjourney/v2/speed

Request body:

{
"account_hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"choice": "relax", // relax, fast, turbo
"is_async": false, // or true
"webhook_url": "https://example.com/speed/webhook-url",
}

is_async is set to false by default, which means your request will be completed after toggling the speed mode to relax/fast/turbo. If is_async is set to true, you will receive an immediate response with the key "hash", and you can check the status using the /status method.

Response:

{
"status": true,
"result": {
"account_hash": "6794f6ef-866a-4bc3-b0bc-7b28ec010d1b",
"hash": "1efecd6b-cd1b-4a34-beaa-de73041a6b76",
"webhook_url": null,
"webhook_type": null,
"callback_id": null,
"choice": "relax",
"type": "speed",
"status": "done",
"result": null,
"status_reason": null,
"created_at": "2006-04-28T20:21:37+03:00"
}
}

Discord Account Info

GET: /discord/info?account_hash={account_hash}

This method returns information about the Discord account.

Example of main fields response:

{
"hash": "ee6978d8-1d9e-a904-455e-30209248cede",
"token": "MTA...c312",
"channel_id": "1774834120065155686",
"status": "tos",
"status_reason": "Please go to Discord and accept ToS from image generator",
"external_username": "ypontonx",
"external_email": "n****@l****.ru",
"is_remix": true,
"created_at": "2023-09-27T19:51:32+03:00"
}

Allowed statuses:

StatusDescription
pendingAccount is awaiting verification (typically takes up to 30 seconds)
activeAccount is ready for use
tosPlease log in to Discord and confirm ToS in the chat with image generator Bot
bannedAccount is banned by service/Discord
errorError, you can attempt to restart the account from the dashboard