{"openapi":"3.1.0","info":{"title":"Meshy (BYOK) API","version":"0.1.0","description":"Meshy (BYOK) lets an AI assistant read your own Meshy data through the Meshy API with a key you supply (Meshy API key). Read-only: 10 tools (get_balance, list_text_to_3d_tasks, get_text_to_3d_task, list_image_to_3d_tasks, list_multi_image_to_3d_tasks, list_text_to_image_tasks, list_image_to_image_tasks, list_remesh_tasks, list_retexture_tasks, list_usage_records). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-meshy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-meshy/docs"},"termsOfService":"https://connectorbay.com/byok-meshy/terms"},"servers":[{"url":"https://byok-meshy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-meshy/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_balance":{"post":{"operationId":"get_balance","summary":"Get the remaining Meshy credit balance, split into monthly credits that expire at the next refresh and permanent credits","description":"Get the remaining Meshy credit balance, split into monthly credits that expire at the next refresh and permanent credits, with the next refresh time (Unix milliseconds). Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"How many Meshy credits do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_balanceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_text_to_3d_tasks":{"post":{"operationId":"list_text_to_3d_tasks","summary":"List text-to-3D tasks (preview and refine stages) with status, progress, prompt, timestamps and credits used. Reads task","description":"List text-to-3D tasks (preview and refine stages) with status, progress, prompt, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"What is the status of my recent Meshy text-to-3D tasks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_text_to_3d_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_text_to_3d_task":{"post":{"operationId":"get_text_to_3d_task","summary":"Get one text-to-3D task by id: type (preview or refine), status, progress, prompt, timestamps, credits used and error me","description":"Get one text-to-3D task by id: type (preview or refine), status, progress, prompt, timestamps, credits used and error message. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"Is Meshy text-to-3D task 018a210d-8ba4-705c-b111-1f1776f7f578 finished\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Task id returned when the task was created.","maxLength":64,"title":"Id","type":"string"}},"required":["id"],"title":"get_text_to_3d_taskArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_image_to_3d_tasks":{"post":{"operationId":"list_image_to_3d_tasks","summary":"List image-to-3D tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task a","description":"List image-to-3D tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"Which Meshy image-to-3D tasks failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_image_to_3d_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_multi_image_to_3d_tasks":{"post":{"operationId":"list_multi_image_to_3d_tasks","summary":"List multi-image-to-3D tasks with status, progress, timestamps and credits used. Reads task records only: it creates no ","description":"List multi-image-to-3D tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"What multi-image 3D jobs have I run on Meshy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_multi_image_to_3d_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_text_to_image_tasks":{"post":{"operationId":"list_text_to_image_tasks","summary":"List text-to-image tasks with status, progress, prompt, timestamps and credits used. Reads task records only: it creates","description":"List text-to-image tasks with status, progress, prompt, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"Which Meshy text-to-image tasks have I submitted\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_text_to_image_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_image_to_image_tasks":{"post":{"operationId":"list_image_to_image_tasks","summary":"List image-to-image tasks with status, progress, prompt, timestamps and credits used. Reads task records only: it create","description":"List image-to-image tasks with status, progress, prompt, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"Which Meshy image-to-image edits have I run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_image_to_image_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_remesh_tasks":{"post":{"operationId":"list_remesh_tasks","summary":"List remesh tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task and co","description":"List remesh tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"What is the status of my Meshy remesh tasks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_remesh_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_retexture_tasks":{"post":{"operationId":"list_retexture_tasks","summary":"List retexture tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task and","description":"List retexture tasks with status, progress, timestamps and credits used. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"What is the status of my Meshy retexture tasks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"}},"title":"list_retexture_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_usage_records":{"post":{"operationId":"list_usage_records","summary":"List the team's finished API tasks with endpoint, status, credits consumed and the API key name that ran them. Needs a S","description":"List the team's finished API tasks with endpoint, status, credits consumed and the API key name that ran them. Needs a Studio or Enterprise team; defaults to the last 30 days. Reads task records only: it creates no task and costs no credits. Model and image download links are left out because they expire. Use for \"How many Meshy credits did my team's API tasks use last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_num":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Num"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many tasks per page (1 to 100).","title":"Page Size"},"sort_by":{"anyOf":[{"enum":["+created_at","-created_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: +created_at (oldest first) or -created_at (newest first).","title":"Sort By"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window as an RFC 3339 time such as 2026-09-01T00:00:00Z (default 30 days before end_time; at most 1 year).","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window as an RFC 3339 time (default now).","title":"End Time"},"endpoints":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated endpoint names to include, for example 'text-to-3d-preview,image-to-3d'.","title":"Endpoints"},"status":{"anyOf":[{"enum":["SUCCEEDED","FAILED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks that ended with this status.","title":"Status"}},"title":"list_usage_recordsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}