useapi.net Meta Muse API v1

useapi.net's third-party REST API over a customer's own Meta Muse account: Muse images, videos and agent chat. useapi.net is an independent service, not affiliated with Meta; customers connect their own accounts under a useapi.net subscription.

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/useapi:muse-v1"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

Postman Collection

useapi-muse-v1.json Raw ↑
{
	"info": {
		"_postman_id": "d4367cb6-e0ed-466d-bd50-04f7ed032c36",
		"name": "Muse API v1 by useapi.net",
		"description": "## [Muse API v1](https://useapi.net/docs/api-muse-v1)\n\nMuse API by useapi.net: images and 10-second videos with sound from Meta's Muse agent (muse.ai) on your own Muse accounts. Text to image, image to image from up to 9 images, text / image / video to video with up to 9 images, 3 videos and 3 audio files as inputs. Uploads (raw file or from a URL), the whole Library (media, documents, web apps with public sharing, podcasts), downloads and deletes, jobs, a two-way chat with the Muse agent over SSE with reactions, a live view of the agent's own browser that you can take control of, accounts, account reset and the weekly allowance. Set the `api-token` collection variable (see https://useapi.net/docs/start-here/setup-useapi). POST bodies send JSON (the API accepts JSON or form-data). POST assets sends the file itself as the body. Ids contain `:` and `@`: URL-encode them when you put them in a path variable.\n\n---\n**Updated:** October 14, 2026",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"updated": "2026-10-12",
		"_exporter_id": "29112081"
	},
	"item": [
		{
			"name": "POST accounts",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts"
					]
				},
				"description": "## [Add or update an account](https://useapi.net/docs/api-muse-v1/post-muse-accounts)\n\n**Body (JSON).** `email` is required. With `password` the account is added or re-added (signed in once, 30-day session renewed by the API, Muse emails the account a login code on each sign-in). With `email` + `maxJobs` and no `password`, only maxJobs changes.\n\n- `maxJobs`: 1-50, default 10 for a new account.\n\n596 = Meta asks for a security check: sign in once at https://muse.ai in a browser, complete it, then post the same email and password again.",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"email\": \"example@gmail.com\",\n    \"password\": \"\",\n    \"maxJobs\": 10\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "GET accounts",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts"
					]
				},
				"description": "## [List accounts](https://useapi.net/docs/api-muse-v1/get-muse-accounts)\n\nStored records, no call to Muse."
			},
			"response": []
		},
		{
			"name": "GET accounts/{email}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}"
					]
				},
				"description": "## [Read one account live (plan + weekly usage)](https://useapi.net/docs/api-muse-v1/get-muse-accounts-email)"
			},
			"response": []
		},
		{
			"name": "GET accounts/{email}/approvals",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}/approvals",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}",
						"approvals"
					],
					"query": [
						{
							"key": "status",
							"value": "pending",
							"description": "Optional: pending or all. Default: all.",
							"disabled": true
						},
						{
							"key": "limit",
							"value": "50",
							"description": "Optional, decided requests to read, 1 to 100. Default: 50.",
							"disabled": true
						}
					]
				},
				"description": "## [List approvals](https://useapi.net/docs/api-muse-v1/get-muse-accounts-email-approvals)\n\nThe agent's permission requests on the account: `pending` (each with its `chatId` and `options`; answer with POST chats/{chatId}/approvals/{approvalId}) and `decided`."
			},
			"response": []
		},
		{
			"name": "GET accounts/{email}/permissions",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}/permissions",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}",
						"permissions"
					]
				},
				"description": "## [List permissions](https://useapi.net/docs/api-muse-v1/get-muse-accounts-email-permissions)\n\n`defaults` {web, connectors}: auto_allow or always_ask, plus the standing `rules` (allow or deny one website or app action; created by allow_always answers)."
			},
			"response": []
		},
		{
			"name": "POST accounts/{email}/permissions",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}/permissions",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}",
						"permissions"
					]
				},
				"description": "## [Change permission defaults](https://useapi.net/docs/api-muse-v1/post-muse-accounts-email-permissions)\n\n**Body (JSON).** `web` and/or `connectors`: `auto_allow` (Muse's \"Ask for some actions\": some actions, like sending an email from a connected Gmail, happen without asking) or `always_ask` (Muse asks first, as an approval in the chat).",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"connectors\": \"always_ask\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "POST accounts/{email}/permissions/{permissionId}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}/permissions/{{permissionId}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}",
						"permissions",
						"{{permissionId}}"
					]
				},
				"description": "## [Change a permission rule](https://useapi.net/docs/api-muse-v1/post-muse-accounts-email-permissions-permissionId)\n\n**Body (JSON).** `mode`: one of the rule's `modes` (allow, ask, deny). `ask` removes the rule (asking is the default) and answers `removed: true`. URL-encode the permissionId.",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"mode\": \"deny\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "DELETE accounts/{email}/permissions/{permissionId}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "DELETE",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}/permissions/{{permissionId}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}",
						"permissions",
						"{{permissionId}}"
					]
				},
				"description": "## [Delete a permission rule](https://useapi.net/docs/api-muse-v1/delete-muse-accounts-email-permissions-permissionId)\n\nRemoves the rule. 404 when it is not there. URL-encode the permissionId."
			},
			"response": []
		},
		{
			"name": "POST accounts/{email}/reset",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}/reset",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}",
						"reset"
					]
				},
				"description": "## [Reset a Muse account](https://useapi.net/docs/api-muse-v1/post-muse-accounts-email-reset)\n\n**Permanently deletes everything on the account**: every chat, file, document, web app and podcast, the agent's memory and its name. The account gets a fresh agent computer and stays added. **Body (JSON).** `confirm` is required: the account email again. Answers 200 `{email, reset: true, ready: true}`, or 202 with `ready: false` while the new computer starts: do not call it again then. 409 while jobs or chat answers run on the account.",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"confirm\": \"{{email}}\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "DELETE accounts/{email}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "DELETE",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/accounts/{{email}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"accounts",
						"{{email}}"
					]
				},
				"description": "## [Remove an account](https://useapi.net/docs/api-muse-v1/delete-muse-accounts-email)"
			},
			"response": []
		},
		{
			"name": "POST assets",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "image/jpeg",
						"description": "The file's MIME type: image/jpeg, image/png, image/webp, video/mp4, video/quicktime, video/webm, audio/mpeg, audio/wav, audio/x-wav, audio/mp4, audio/x-m4a or audio/ogg."
					}
				],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Optional. The account to upload to. Default: a random healthy account with allowance left.",
							"disabled": true
						}
					]
				},
				"description": "## [Upload an asset](https://useapi.net/docs/api-muse-v1/post-muse-assets)\n\nThe file is the raw request body (no multipart), 1 to 52,428,800 bytes (50 MB), with Content-Length. To upload from a link instead, see POST assets (url). Returns the assetId used as image_N / video_N / audio_N of a job. The file is written into the account's Muse workspace.",
				"body": {
					"mode": "file",
					"file": {
						"src": "/path/to/image.jpg"
					}
				}
			},
			"response": []
		},
		{
			"name": "GET assets/{assetId}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets/{{assetId}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets",
						"{{assetId}}"
					],
					"query": [
						{
							"key": "part",
							"value": "cover",
							"description": "Optional, podcasts only: cover = the episode's cover image.",
							"disabled": true
						},
						{
							"key": "format",
							"value": "pdf",
							"description": "Optional, md, txt and html documents only: pdf = the document as a PDF.",
							"disabled": true
						}
					]
				},
				"description": "## [Download an asset](https://useapi.net/docs/api-muse-v1/get-muse-assets-assetId)\n\nStreams any Library item from the account's Muse workspace: an image, video or audio file, a document (with `format=pdf` an md, txt or html document as PDF), a web app as one HTML file, or a podcast as MP3 (with `part=cover` its cover). URL-encode the assetId."
			},
			"response": []
		},
		{
			"name": "POST assets (url)",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					}
				],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Optional. The account to upload to. Default: a random healthy account with allowance left.",
							"disabled": true
						}
					]
				},
				"description": "## [Upload an asset from a URL](https://useapi.net/docs/api-muse-v1/post-muse-assets#upload-from-a-url)\n\nJSON body `{\"url\": \"https://…\"}`: a public https URL of the file (up to 2048 chars). The API downloads it and uploads it to the account's Muse workspace. Same supported types and 50 MB limit as a raw upload. Returns the assetId.",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"url\": \"https://your-domain.com/photos/rider.jpg\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "GET assets",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						},
						{
							"key": "type",
							"value": "image",
							"description": "Optional: image, video, audio, document, web, podcast, or any other type the list shows.",
							"disabled": true
						},
						{
							"key": "origin",
							"value": "generated",
							"description": "Optional, media only: uploaded, generated or made.",
							"disabled": true
						},
						{
							"key": "limit",
							"value": "50",
							"description": "Optional, 1 to 100. Default: 50.",
							"disabled": true
						},
						{
							"key": "cursor",
							"value": "",
							"description": "Optional, the cursor from the previous page.",
							"disabled": true
						}
					]
				},
				"description": "## [List assets](https://useapi.net/docs/api-muse-v1/get-muse-assets)\n\nThe account's whole Muse Library as asset ids, newest first: images, videos and audio, documents, web apps (with `shareUrl` while published) and podcasts, each with its `type`. `origin` (media only): `uploaded`, `generated` or `made` (by the agent's own tools). Read on with `cursor` until it is null. `partial: true` means a part of the Library could not be read."
			},
			"response": []
		},
		{
			"name": "DELETE assets/{assetId}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "DELETE",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets/{{assetId}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets",
						"{{assetId}}"
					]
				},
				"description": "## [Delete an asset](https://useapi.net/docs/api-muse-v1/delete-muse-assets-assetId)\n\nDeletes a Library item: a media file, a document, a web app or a podcast episode. 404 when it is not there. URL-encode the assetId."
			},
			"response": []
		},
		{
			"name": "POST assets/{assetId}/share",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets/{{assetId}}/share",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets",
						"{{assetId}}",
						"share"
					]
				},
				"description": "## [Publish a web app](https://useapi.net/docs/api-muse-v1/post-muse-assets-assetId-share)\n\nPublishes a web app the agent built (an asset of type `web`) on a public link that anyone can open. Muse reviews the app first (about 15 s) and can refuse with 422 and the issues in `errorDetails`. Answers 200 `{assetId, shareUrl}`. Publishing again republishes the current version."
			},
			"response": []
		},
		{
			"name": "DELETE assets/{assetId}/share",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "DELETE",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/assets/{{assetId}}/share",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"assets",
						"{{assetId}}",
						"share"
					]
				},
				"description": "## [Stop sharing a web app](https://useapi.net/docs/api-muse-v1/delete-muse-assets-assetId-share)\n\nThe public link stops working. The app stays in the Library. Answers 200 `{assetId, shareUrl: null}`."
			},
			"response": []
		},
		{
			"name": "GET files",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/files",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"files"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						},
						{
							"key": "path",
							"value": "workspace",
							"description": "Optional. Default: workspace.",
							"disabled": true
						}
					]
				},
				"description": "## [List workspace files](https://useapi.net/docs/api-muse-v1/get-muse-files)\n\nA folder's files and folders (default `workspace`), or one file's entry for a file path. Media files carry their assetId."
			},
			"response": []
		},
		{
			"name": "GET files/content",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/files/content?path=workspace/your_files/report.pdf",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"files",
						"content"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						},
						{
							"key": "path",
							"value": "workspace/your_files/report.pdf",
							"description": "Required. A path in the workspace, e.g. workspace/your_files/report.pdf.",
							"disabled": false
						}
					]
				},
				"description": "## [Download a workspace file](https://useapi.net/docs/api-muse-v1/get-muse-files-content)\n\nThe file itself (code, PDF, CSV, text, media), streamed with its Content-Type."
			},
			"response": []
		},
		{
			"name": "GET files/search",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/files/search?name=report",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"files",
						"search"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						},
						{
							"key": "path",
							"value": "workspace",
							"description": "Optional. Default: workspace.",
							"disabled": true
						},
						{
							"key": "name",
							"value": "report",
							"description": "Optional, part of the file name.",
							"disabled": false
						},
						{
							"key": "extensions",
							"value": "pdf,csv",
							"description": "Optional, comma-separated.",
							"disabled": true
						},
						{
							"key": "limit",
							"value": "50",
							"description": "Optional, 1 to 200. Default: 50.",
							"disabled": true
						},
						{
							"key": "offset",
							"value": "0",
							"description": "Optional. Default: 0.",
							"disabled": true
						}
					]
				},
				"description": "## [Search workspace files](https://useapi.net/docs/api-muse-v1/get-muse-files-search)\n\nBy part of the name and/or extensions (comma list) under a folder, at least one of the two. Answers entries, total, hasMore."
			},
			"response": []
		},
		{
			"name": "POST files",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/files?path=workspace/your_files/report.pdf",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"files"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						},
						{
							"key": "path",
							"value": "workspace/your_files/report.pdf",
							"description": "Required. A path in the workspace, e.g. workspace/your_files/report.pdf.",
							"disabled": false
						}
					]
				},
				"description": "## [Write a workspace file](https://useapi.net/docs/api-muse-v1/post-muse-files)\n\nThe raw request body (any type, up to 50 MB, with Content-Length) is written at `path`, replacing a file already there. Pass the path in a chat's `files` to have the agent work on it (file_1, file_2…).",
				"body": {
					"mode": "file",
					"file": {
						"src": "/path/to/report.pdf"
					}
				}
			},
			"response": []
		},
		{
			"name": "DELETE files",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "DELETE",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/files?path=workspace/your_files/report.pdf",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"files"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						},
						{
							"key": "path",
							"value": "workspace/your_files/report.pdf",
							"description": "Required. A path in the workspace, e.g. workspace/your_files/report.pdf.",
							"disabled": false
						}
					]
				},
				"description": "## [Delete a workspace file](https://useapi.net/docs/api-muse-v1/delete-muse-files)\n\nFiles only, not folders. 404 when it is not there."
			},
			"response": []
		},
		{
			"name": "POST jobs/image",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/jobs/image",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"jobs",
						"image"
					]
				},
				"description": "## [Generate an image](https://useapi.net/docs/api-muse-v1/post-muse-jobs-image)\n\n**Body (JSON).** `prompt` is required (up to 5000 chars). Optional inputs `image_1`..`image_9`: asset ids, all from the same account; name them in the prompt.\n\n- `email`: account to run on. Default: the account that holds the inputs, else a load-balanced one.\n- `async`: `true` answers 201 at once (default `false`: waits up to 100 s for the finished job, then answers 202 with the job still running). `replyUrl`: public https webhook URL, receives one POST of the job record when the job ends, sync or async. `replyRef`: up to 1024 chars.\n\nNo model, aspect ratio, resolution or duration parameters: say the aspect ratio in the prompt (\"in exactly 16:9 aspect ratio\").",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"prompt\": \"In exactly 16:9 aspect ratio (landscape), a cinematic photo of a vintage 1920s black BMW motorcycle parked on wet cobblestones at night in San Francisco, the Golden Gate Bridge glowing through fog in the distance\",\n    \"async\": false\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "POST jobs/video",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/jobs/video",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"jobs",
						"video"
					]
				},
				"description": "## [Generate a video](https://useapi.net/docs/api-muse-v1/post-muse-jobs-video)\n\n**Body (JSON).** `prompt` is required (up to 5000 chars). About 10 s at about 720p with sound, quoted lines are spoken. Optional inputs: `image_1`..`image_9`, `video_1`..`video_3`, `audio_1`..`audio_3`, asset ids all from the same account; name them in the prompt.\n\n- `email`: account to run on. Default: the account that holds the inputs, else a load-balanced one.\n- `async`: `true` answers 201 at once (default `false`: waits up to 100 s for the finished job, then answers 202 with the job still running). `replyUrl`: public https webhook URL, receives one POST of the job record when the job ends, sync or async. `replyRef`: up to 1024 chars.\n\nNo model, aspect ratio, resolution or duration parameters: say the aspect ratio in the prompt (\"in exactly 16:9 aspect ratio\").",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"prompt\": \"Animate image_1: she turns to the camera and says: \\\"Best seat in San Francisco.\\\" Keep her face exactly as in image_1.\",\n    \"image_1\": \"{{assetId}}\",\n    \"async\": true\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "GET jobs",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/jobs",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"jobs"
					]
				},
				"description": "## [List running jobs](https://useapi.net/docs/api-muse-v1/get-muse-jobs)\n\n`running` (image and video jobs) and `accounts` {email: {running, maxJobs}}. Chats take no maxJobs slot."
			},
			"response": []
		},
		{
			"name": "GET jobs/{jobid}",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/jobs/{{jobid}}",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"jobs",
						"{{jobid}}"
					],
					"query": [
						{
							"key": "history",
							"value": "true",
							"description": "Optional. Adds the job's chat turn from Muse.",
							"disabled": true
						}
					]
				},
				"description": "## [Retrieve a job](https://useapi.net/docs/api-muse-v1/get-muse-jobs-jobid)\n\nURL-encode the jobid. `history=true` adds the job's Muse chat turn, read live, for troubleshooting."
			},
			"response": []
		},
		{
			"name": "POST chats",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/chats",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"chats"
					]
				},
				"description": "## [Start a chat](https://useapi.net/docs/api-muse-v1/post-muse-chats)\n\n**Body (JSON).** `message` is required (up to 5000 chars). Optional `files`: asset ids (up to 9 images, 3 videos, 3 audio files) and workspace paths of other files from POST files (up to 10), all on one account, named image_1, video_1, audio_1, file_1… in order. Optional `email`: the account to chat on, default the account of the files or a load-balanced one (required with only workspace paths when the token has more than one account).\n\nAnswers 201 `{chatId, email, messageId}`. Read the answer with GET chats/{chatId}/stream. Chat does not use maxJobs (jobs only).",
				"body": {
					"mode": "raw",
					"raw": "{\n    \"message\": \"Write a 300-word story about the sea, then make one image for it.\"\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				}
			},
			"response": []
		},
		{
			"name": "GET chats/{chatId}/stream",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/chats/{{chatId}}/stream",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"chats",
						"{{chatId}}",
						"stream"
					],
					"query": [
						{
							"key": "after",
							"value": "0",
							"description": "Optional, resume after this event id (same as the Last-Event-ID header).",
							"disabled": true
						}
					]
				},
				"description": "## [Stream a chat](https://useapi.net/docs/api-muse-v1/get-muse-chats-chatId-stream)\n\nServer-Sent Events for the whole chat: `data:` lines with JSON events (initialized, message, activity, text, message.done, widget, file, status, approval, approval.resolved, turn.done, error, keepalive, idle, reconnect). Resume with the `Last-Event-ID` header or `after`. About 50 open streams per account (approximate: a closed connection is noticed within about a minute), more answer 429 with Retry-After 60. After `idle` or `reconnect`, reconnect with Last-Event-ID to resume exactly where it left off. See the [Chat Streaming Guide](https://useapi.net/docs/api-muse-v1/chat-streaming-guide)."
			},
			"response": []
		},
		{
			"name": "GET chats/streams",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/chats/streams",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"chats",
						"streams"
					],
					"query": [
						{
							"key": "email",
							"value": "{{email}}",
							"description": "Required when the token has more than one Muse account.",
							"disabled": true
						}
					]
				},
				"description": "## [List open streams](https://useapi.net/docs/api-muse-v1/get-muse-chats-streams)\n\nThe account's open chat streams, approximate: `count`, `limit` (about 50), and per stream `chatId`, `opened`, `seen` (when the connection last reported in, about every 5 minutes)."
			},
			"response": []
		},
		{
			"name": "POST chats/{chatId}/messages",
			"protocolProfileBehavior": {
				"disableBodyPruning": true
			},
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "https://api.useapi.net/v1/muse/chats/{{chatId}}/messages",
					"protocol": "https",
					"host": [
						"api",
						"useapi",
						"net"
					],
					"path": [
						"v1",
						"muse",
						"chats",
						"{{chatId}}",
						"messages"
					]
				},
				"description": "## [Send a message](https://useapi.net/docs/api-muse-v1/post-muse-chats-chatId-messages)\n\n**

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://artifacts.apis.io/useapi/postman/useapi-muse-v1.json