# midjourney-api-client
This package contains Python client library for Midjourney API by [useapi.net](https://useapi.net).
[Useapi.net](https://useapi.net) provides a simple, reliable and affordable way to use [Midjourney](https://midjourney.com/) via standard REST API.
Quick [demo](https://useapi.net/demo).
## Requirements.
Python 3.7+
## Installation & Usage
### pip install
```sh
pip install midjourney-api-client
```
You may need to run `pip` with root permission: `sudo pip install midjourney-api-client`.
Then import the package:
```python
import midjourney_api_client
```
## API Overview
Midjourney [/imagine](https://docs.midjourney.com/docs/quick-start#5-use-the-imagine-command) command available via [jobs/imagine](https://useapi.net/docs/api-v1/jobs-imagine) API endpoint.
Midjourney [upscale or create variations](https://docs.midjourney.com/docs/quick-start#8-upscale-or-create-variations) and [enhance or modify](https://docs.midjourney.com/docs/quick-start#9-enhance-or-modify-your-image) button commands available via [jobs/button](https://useapi.net/docs/api-v1/jobs-button) API endpoint.
Midjourney [/describe](https://docs.midjourney.com/docs/describe) command available via [jobs/describe](https://useapi.net/docs/api-v1/jobs-describe) API endpoint.
Midjourney [/blend](https://docs.midjourney.com/docs/blend) command available via [jobs/blend](https://useapi.net/docs/api-v1/jobs-blend) API endpoint.
Use [jobs/?jobid=<code class="language-plaintext highlighter-rouge">jobid</code>](https://useapi.net/docs/api-v1/jobs-jobid) API endpoint to retrieve job results.
Postman [collection](https://www.postman.com/useapinet/workspace/useapi-net).
Swagger OpenAPI [documentation](https://app.swaggerhub.com/apis/useapi/Midjourney_API_v1/1.0) for generating server stubs and client SDKs.
## Usage
You will need to [set up and configure](https://useapi.net/docs/start-here) the Midjourey Discord account as well as subscribe to useapi.net service before you can start using API.
Please follow the [installation procedure](#installation--usage) and then run the following:
```python
import os
import time
from typing import Union
from pprint import pprint
import midjourney_api_client
from midjourney_api_client.api.default_api import DefaultApi
from midjourney_api_client.models.describe_response import DescribeResponse
from midjourney_api_client.models.imagine_response import ImagineResponse
from midjourney_api_client.models.job_response import JobResponse
from midjourney_api_client.models.jobs_blend_post_request import JobsBlendPostRequest
from midjourney_api_client.models.jobs_button_post_request import JobsButtonPostRequest
from midjourney_api_client.models.jobs_describe_post_request import JobsDescribePostRequest
from midjourney_api_client.models.jobs_imagine_post_request import JobsImaginePostRequest
from midjourney_api_client.rest import ApiException
configuration = midjourney_api_client.Configuration(
host = "https://api.useapi.net/v1"
)
# Extract setting from environment
# Suggested shell execution command:
# USEAPI_TOKEN="..." USEAPI_DISCORD="..." USEAPI_SERVER="..." USEAPI_CHANNEL="..." python3 ./test.py
api_token = os.environ["USEAPI_TOKEN"]
discord = os.environ["USEAPI_DISCORD"]
server = os.environ["USEAPI_SERVER"]
channel = os.environ["USEAPI_CHANNEL"]
# Optional callback url
# We recommend using sites like webhook.site to test callback URL functionality.
reply_url = os.environ.get("USEAPI_CALLBACK", "")
# Configure Bearer authorization: apiToken
configuration = midjourney_api_client.Configuration(
access_token = api_token
)
# This function is not not needed if job parameter reply_url (callback) specified
def wait_for_job_to_complete(api_instance: DefaultApi, job: Union[DescribeResponse, ImagineResponse, JobResponse]):
verb = job.verb.upper()
print(f"{verb} : {job.status}", job.jobid)
while job.code == 200 and job.status in ['started', 'progress']:
# Sleep for 20 seconds
time.sleep(20)
job = api_instance.jobs_get(job.jobid)
print(f"{verb} : {job.status}", {"jobid": job.jobid, "content": job.content})
if isinstance(job, JobResponse) and job.attachments:
print(f"{verb} url", job.attachments[0].url)
if isinstance(job, JobResponse) and job.buttons:
print(f"{verb} buttons", ", ".join(job.buttons))
return job
def main():
# Enter a context with an instance of the API client
with midjourney_api_client.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = midjourney_api_client.DefaultApi(api_client)
# Midjourney /describe
try:
jobs_describe_post_request = JobsDescribePostRequest(
describeUrl="https://mymodernmet.com/wp/wp-content/uploads/2017/12/free-images-national-gallery-of-art-9.jpg",
discord=discord,
server=server,
channel=channel,
reply_url=reply_url
)
describe_response = api_instance.jobs_describe_post(jobs_describe_post_request)
pprint(describe_response)
# Not needed if job parameter reply_url (callback) specified
describe_response = wait_for_job_to_complete(api_instance, describe_response)
except ApiException as e:
print("Exception when calling jobs_describe_post_request: %s\n" % e)
# Midjourney /blend
try:
jobs_blend_post_request = JobsBlendPostRequest(
blendUrls = [
"https://mymodernmet.com/wp/wp-content/uploads/2017/12/free-images-national-gallery-of-art-6.jpg",
"https://mymodernmet.com/wp/wp-content/uploads/2017/12/free-images-national-gallery-of-art-2.jpg"
],
discord=discord,
server=server,
channel=channel,
reply_url=reply_url
)
blend_response = api_instance.jobs_blend_post(jobs_blend_post_request)
pprint(blend_response)
# Not needed if job parameter reply_url (callback) specified
blend_response = wait_for_job_to_complete(api_instance, blend_response)
except ApiException as e:
print("Exception when calling jobs_blend_post: %s\n" % e)
# Midjourney /imagine
try:
jobs_imagine_post_request = JobsImaginePostRequest(
prompt="Steampunk cat cycling in San Francisco, vintage photo",
discord=discord,
server=server,
channel=channel,
reply_url=reply_url
)
imagine_response = api_instance.jobs_imagine_post(jobs_imagine_post_request)
pprint(imagine_response)
imagine_response = wait_for_job_to_complete(api_instance, imagine_response)
except ApiException as e:
print("Exception when calling jobs_imagine_post: %s\n" % e)
# Midjourney button commands
try:
jobs_button_post_request = JobsButtonPostRequest(
button="V1",
jobid=imagine_response.jobid,
reply_url=reply_url
)
button_response = api_instance.jobs_button_post(jobs_button_post_request)
pprint(button_response)
# Not needed if job parameter reply_url (callback) specified
button_response = wait_for_job_to_complete(api_instance, button_response)
except ApiException as e:
print("Exception when calling jobs_button_post: %s\n" % e)
main()
```
## Documentation for API Endpoints
All URIs are relative to *https://api.useapi.net/v1*
Method | HTTP request | Description
------------- | ------------- | -------------
[**jobs_imagine_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_imagine_post) | **POST** /jobs/imagine | Midjourney /imagine command
[**jobs_blend_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_blend_post) | **POST** /jobs/blend | Midjourney /blend command
[**jobs_describe_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_describe_post) | **POST** /jobs/describe | Midjourney /describe command
[**jobs_button_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_button_post) | **POST** /jobs/button | Midjourney upscale or create variations and enhance or modify buttons
[**jobs_get**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_get) | **GET** /jobs/ | Retrieve job status and results
[**jobs_get_list**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_get_list) | **GET** /jobs | Get list of currently executing jobs
[**jobs_cancel_get**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_cancel_get) | **GET** /jobs/cancel/ | Cancel job
[**account_get**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#account_get) | **GET** /account | Retrieve useapi.net account information
## Documentation For Models
- [AccountResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/AccountResponse.md)
- [BlendResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/BlendResponse.md)
- [ButtonResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/ButtonResponse.md)
- [ButtonResponseErrorUpscaled](https://github.com/useapi/midjourney-api-client/blob/main/docs/ButtonResponseErrorUpscaled.md)
- [DescribeResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/DescribeResponse.md)
- [ImagineResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/ImagineResponse.md)
- [ImagineResponseModerated](https://github.com/useapi/midjourney-api-client/blob/main/docs/ImagineResponseModerated.md)
- [JobCancelResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobCancelResponse.md)
- [JobResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponse.md)
- [JobResponseAttachmentsInner](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseAttachmentsInner.md)
- [JobResponseChildrenInner](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseChildrenInner.md)
- [JobResponseEmbedsInner](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseEmbedsInner.md)
- [JobResponseEmbedsInnerImage](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseEmbedsInnerImage.md)
- [JobsBlendPostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsBlendPostRequest.md)
- [JobsButtonPostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsButtonPostRequest.md)
- [JobsDescribePostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsDescribePostRequest.md)
- [JobsImaginePostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsImaginePostRequest.md)
- [ResponseError](https://github.com/useapi/midjourney-api-client/blob/main/docs/ResponseError.md)
- [ResponseMaxJobs](https://github.com/useapi/midjourney-api-client/blob/main/docs/ResponseMaxJobs.md)
<a id="documentation-for-authorization"></a>
## Documentation For Authorization
Authentication schemes defined for the API:
<a id="apiToken"></a>
### apiToken
- **Type**: Bearer authentication
## Changelog
Version 1.0.1 | November 3, 2023
Added support for following [jobs/button](https://useapi.net/docs/api-v1/jobs-button) options:
- Upscale (2x)
- Upscale (4x)
- Redo Upscale (2x)
- Redo Upscale (4x)
## Support
Visit our
- [Discord Server](https://discord.gg/w28uK3cnmF) for any additional support and questions.
- [YouTube Channel](https://www.youtube.com/@midjourneyapi) for tutorials and demos.
Raw data
{
"_id": null,
"home_page": "https://useapi.net",
"name": "midjourney-api-client",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "Midjourney,API,useapi.net",
"author": "Use API",
"author_email": "support@useapi.net",
"download_url": "https://files.pythonhosted.org/packages/4b/a7/84af2fb6d0b90c49ddc9690704b6819006f5c8990aed9c495b4401f8456d/midjourney-api-client-1.0.1.tar.gz",
"platform": null,
"description": "# midjourney-api-client\n\nThis package contains Python client library for Midjourney API by [useapi.net](https://useapi.net). \n\n[Useapi.net](https://useapi.net) provides a simple, reliable and affordable way to use [Midjourney](https://midjourney.com/) via standard REST API.\n\nQuick [demo](https://useapi.net/demo).\n## Requirements.\n\nPython 3.7+\n\n## Installation & Usage\n### pip install\n\n```sh\npip install midjourney-api-client\n```\nYou may need to run `pip` with root permission: `sudo pip install midjourney-api-client`.\n\nThen import the package:\n```python\nimport midjourney_api_client\n```\n## API Overview\n\nMidjourney [/imagine](https://docs.midjourney.com/docs/quick-start#5-use-the-imagine-command) command available via [jobs/imagine](https://useapi.net/docs/api-v1/jobs-imagine) API endpoint.\n\nMidjourney [upscale or create variations](https://docs.midjourney.com/docs/quick-start#8-upscale-or-create-variations) and [enhance or modify](https://docs.midjourney.com/docs/quick-start#9-enhance-or-modify-your-image) button commands available via [jobs/button](https://useapi.net/docs/api-v1/jobs-button) API endpoint. \n\nMidjourney [/describe](https://docs.midjourney.com/docs/describe) command available via [jobs/describe](https://useapi.net/docs/api-v1/jobs-describe) API endpoint. \n\nMidjourney [/blend](https://docs.midjourney.com/docs/blend) command available via [jobs/blend](https://useapi.net/docs/api-v1/jobs-blend) API endpoint. \n\nUse [jobs/?jobid=<code class=\"language-plaintext highlighter-rouge\">jobid</code>](https://useapi.net/docs/api-v1/jobs-jobid) API endpoint to retrieve job results. \n\nPostman [collection](https://www.postman.com/useapinet/workspace/useapi-net).\n\nSwagger OpenAPI [documentation](https://app.swaggerhub.com/apis/useapi/Midjourney_API_v1/1.0) for generating server stubs and client SDKs.\n\n## Usage\n\nYou will need to [set up and configure](https://useapi.net/docs/start-here) the Midjourey Discord account as well as subscribe to useapi.net service before you can start using API. \n\nPlease follow the [installation procedure](#installation--usage) and then run the following:\n\n```python\nimport os\nimport time\nfrom typing import Union\nfrom pprint import pprint\nimport midjourney_api_client\nfrom midjourney_api_client.api.default_api import DefaultApi\nfrom midjourney_api_client.models.describe_response import DescribeResponse\nfrom midjourney_api_client.models.imagine_response import ImagineResponse\nfrom midjourney_api_client.models.job_response import JobResponse\nfrom midjourney_api_client.models.jobs_blend_post_request import JobsBlendPostRequest\nfrom midjourney_api_client.models.jobs_button_post_request import JobsButtonPostRequest\nfrom midjourney_api_client.models.jobs_describe_post_request import JobsDescribePostRequest\nfrom midjourney_api_client.models.jobs_imagine_post_request import JobsImaginePostRequest\nfrom midjourney_api_client.rest import ApiException\n\nconfiguration = midjourney_api_client.Configuration(\n host = \"https://api.useapi.net/v1\"\n)\n\n# Extract setting from environment\n# Suggested shell execution command:\n# USEAPI_TOKEN=\"...\" USEAPI_DISCORD=\"...\" USEAPI_SERVER=\"...\" USEAPI_CHANNEL=\"...\" python3 ./test.py\napi_token = os.environ[\"USEAPI_TOKEN\"]\ndiscord = os.environ[\"USEAPI_DISCORD\"]\nserver = os.environ[\"USEAPI_SERVER\"]\nchannel = os.environ[\"USEAPI_CHANNEL\"]\n# Optional callback url\n# We recommend using sites like webhook.site to test callback URL functionality.\nreply_url = os.environ.get(\"USEAPI_CALLBACK\", \"\")\n\n# Configure Bearer authorization: apiToken\nconfiguration = midjourney_api_client.Configuration(\n access_token = api_token\n)\n\n# This function is not not needed if job parameter reply_url (callback) specified\ndef wait_for_job_to_complete(api_instance: DefaultApi, job: Union[DescribeResponse, ImagineResponse, JobResponse]):\n verb = job.verb.upper()\n print(f\"{verb} : {job.status}\", job.jobid)\n\n while job.code == 200 and job.status in ['started', 'progress']:\n # Sleep for 20 seconds\n time.sleep(20) \n job = api_instance.jobs_get(job.jobid)\n print(f\"{verb} : {job.status}\", {\"jobid\": job.jobid, \"content\": job.content})\n\n if isinstance(job, JobResponse) and job.attachments:\n print(f\"{verb} url\", job.attachments[0].url)\n if isinstance(job, JobResponse) and job.buttons:\n print(f\"{verb} buttons\", \", \".join(job.buttons))\n\n return job\n\ndef main():\n # Enter a context with an instance of the API client\n with midjourney_api_client.ApiClient(configuration) as api_client:\n # Create an instance of the API class\n api_instance = midjourney_api_client.DefaultApi(api_client)\n\n # Midjourney /describe\n try:\n jobs_describe_post_request = JobsDescribePostRequest(\n describeUrl=\"https://mymodernmet.com/wp/wp-content/uploads/2017/12/free-images-national-gallery-of-art-9.jpg\",\n discord=discord,\n server=server,\n channel=channel,\n reply_url=reply_url\n )\n describe_response = api_instance.jobs_describe_post(jobs_describe_post_request)\n pprint(describe_response)\n\n # Not needed if job parameter reply_url (callback) specified\n describe_response = wait_for_job_to_complete(api_instance, describe_response)\n\n except ApiException as e:\n print(\"Exception when calling jobs_describe_post_request: %s\\n\" % e)\n\n # Midjourney /blend\n try:\n jobs_blend_post_request = JobsBlendPostRequest(\n blendUrls = [\n \"https://mymodernmet.com/wp/wp-content/uploads/2017/12/free-images-national-gallery-of-art-6.jpg\",\n \"https://mymodernmet.com/wp/wp-content/uploads/2017/12/free-images-national-gallery-of-art-2.jpg\"\n ],\n discord=discord,\n server=server,\n channel=channel,\n reply_url=reply_url\n )\n blend_response = api_instance.jobs_blend_post(jobs_blend_post_request)\n pprint(blend_response)\n\n # Not needed if job parameter reply_url (callback) specified\n blend_response = wait_for_job_to_complete(api_instance, blend_response)\n\n except ApiException as e:\n print(\"Exception when calling jobs_blend_post: %s\\n\" % e)\n\n # Midjourney /imagine\n try:\n jobs_imagine_post_request = JobsImaginePostRequest(\n prompt=\"Steampunk cat cycling in San Francisco, vintage photo\",\n discord=discord,\n server=server,\n channel=channel,\n reply_url=reply_url\n )\n imagine_response = api_instance.jobs_imagine_post(jobs_imagine_post_request)\n pprint(imagine_response)\n\n imagine_response = wait_for_job_to_complete(api_instance, imagine_response)\n\n except ApiException as e:\n print(\"Exception when calling jobs_imagine_post: %s\\n\" % e)\n\n # Midjourney button commands\n try:\n jobs_button_post_request = JobsButtonPostRequest(\n button=\"V1\",\n jobid=imagine_response.jobid,\n reply_url=reply_url\n )\n button_response = api_instance.jobs_button_post(jobs_button_post_request)\n pprint(button_response)\n\n # Not needed if job parameter reply_url (callback) specified\n button_response = wait_for_job_to_complete(api_instance, button_response)\n\n except ApiException as e:\n print(\"Exception when calling jobs_button_post: %s\\n\" % e)\n\nmain()\n\n```\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *https://api.useapi.net/v1*\n\nMethod | HTTP request | Description\n ------------- | ------------- | -------------\n[**jobs_imagine_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_imagine_post) | **POST** /jobs/imagine | Midjourney /imagine command\n[**jobs_blend_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_blend_post) | **POST** /jobs/blend | Midjourney /blend command\n[**jobs_describe_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_describe_post) | **POST** /jobs/describe | Midjourney /describe command\n[**jobs_button_post**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_button_post) | **POST** /jobs/button | Midjourney upscale or create variations and enhance or modify buttons\n[**jobs_get**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_get) | **GET** /jobs/ | Retrieve job status and results\n[**jobs_get_list**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_get_list) | **GET** /jobs | Get list of currently executing jobs\n[**jobs_cancel_get**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#jobs_cancel_get) | **GET** /jobs/cancel/ | Cancel job\n[**account_get**](https://github.com/useapi/midjourney-api-client/blob/main/docs/DefaultApi.md#account_get) | **GET** /account | Retrieve useapi.net account information\n\n## Documentation For Models\n\n - [AccountResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/AccountResponse.md)\n - [BlendResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/BlendResponse.md)\n - [ButtonResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/ButtonResponse.md)\n - [ButtonResponseErrorUpscaled](https://github.com/useapi/midjourney-api-client/blob/main/docs/ButtonResponseErrorUpscaled.md)\n - [DescribeResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/DescribeResponse.md)\n - [ImagineResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/ImagineResponse.md)\n - [ImagineResponseModerated](https://github.com/useapi/midjourney-api-client/blob/main/docs/ImagineResponseModerated.md)\n - [JobCancelResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobCancelResponse.md)\n - [JobResponse](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponse.md)\n - [JobResponseAttachmentsInner](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseAttachmentsInner.md)\n - [JobResponseChildrenInner](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseChildrenInner.md)\n - [JobResponseEmbedsInner](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseEmbedsInner.md)\n - [JobResponseEmbedsInnerImage](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobResponseEmbedsInnerImage.md)\n - [JobsBlendPostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsBlendPostRequest.md)\n - [JobsButtonPostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsButtonPostRequest.md)\n - [JobsDescribePostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsDescribePostRequest.md)\n - [JobsImaginePostRequest](https://github.com/useapi/midjourney-api-client/blob/main/docs/JobsImaginePostRequest.md)\n - [ResponseError](https://github.com/useapi/midjourney-api-client/blob/main/docs/ResponseError.md)\n - [ResponseMaxJobs](https://github.com/useapi/midjourney-api-client/blob/main/docs/ResponseMaxJobs.md)\n\n<a id=\"documentation-for-authorization\"></a>\n## Documentation For Authorization\n\nAuthentication schemes defined for the API:\n<a id=\"apiToken\"></a>\n### apiToken\n\n- **Type**: Bearer authentication\n\n## Changelog \n\nVersion 1.0.1 | November 3, 2023 \n\nAdded support for following [jobs/button](https://useapi.net/docs/api-v1/jobs-button) options: \n- Upscale (2x)\n- Upscale (4x)\n- Redo Upscale (2x)\n- Redo Upscale (4x)\n\n## Support \n\nVisit our \n- [Discord Server](https://discord.gg/w28uK3cnmF) for any additional support and questions.\n- [YouTube Channel](https://www.youtube.com/@midjourneyapi) for tutorials and demos.\n",
"bugtrack_url": null,
"license": "ISC",
"summary": "Midjourney API by useapi.net",
"version": "1.0.1",
"project_urls": {
"Homepage": "https://useapi.net"
},
"split_keywords": [
"midjourney",
"api",
"useapi.net"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9da34ab6c60a310f56c0ebcdb75db626810a15894d69115b2219c85613cdd38f",
"md5": "b83efd953e575141c0d00899726c28eb",
"sha256": "04c2b3675bd8376d6f54310ea90b93ef343818a535b0c1969b5d314b1f7d9111"
},
"downloads": -1,
"filename": "midjourney_api_client-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b83efd953e575141c0d00899726c28eb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 48806,
"upload_time": "2023-11-03T22:44:02",
"upload_time_iso_8601": "2023-11-03T22:44:02.193838Z",
"url": "https://files.pythonhosted.org/packages/9d/a3/4ab6c60a310f56c0ebcdb75db626810a15894d69115b2219c85613cdd38f/midjourney_api_client-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4ba784af2fb6d0b90c49ddc9690704b6819006f5c8990aed9c495b4401f8456d",
"md5": "ebe64b7a2f9b4b1ffcb0cff336a58a9d",
"sha256": "d29c13efc120cef3250450ca3272277e58e6b7a42d68f5490502012de742bf39"
},
"downloads": -1,
"filename": "midjourney-api-client-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "ebe64b7a2f9b4b1ffcb0cff336a58a9d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 33751,
"upload_time": "2023-11-03T22:44:03",
"upload_time_iso_8601": "2023-11-03T22:44:03.928208Z",
"url": "https://files.pythonhosted.org/packages/4b/a7/84af2fb6d0b90c49ddc9690704b6819006f5c8990aed9c495b4401f8456d/midjourney-api-client-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-03 22:44:03",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "midjourney-api-client"
}