{"openapi":"3.1.0","info":{"title":"Mistral AI (BYOK) API","version":"0.1.0","description":"Mistral AI (BYOK) lets an AI assistant read your own Mistral AI data through the Mistral AI API with a key you supply (API key). Read-only: 8 tools (list_models, list_files, list_batch_jobs, list_fine_tuning_jobs, list_agents, list_libraries, list_library_documents, list_conversations). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached;...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-mistral.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-mistral/docs"},"termsOfService":"https://connectorbay.com/byok-mistral/terms"},"servers":[{"url":"https://byok-mistral.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-mistral/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/list_models":{"post":{"operationId":"list_models","summary":"List Mistral models available to the key with context length, capabilities, aliases and deprecation info. Use for \"Which","description":"List Mistral models available to the key with context length, capabilities, aliases and deprecation info. Use for \"Which Mistral models can I use and which are deprecated\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"provider":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only models from this provider.","title":"Provider"},"model":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this model name.","title":"Model"}},"title":"list_modelsArguments","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_files":{"post":{"operationId":"list_files","summary":"List files uploaded to your Mistral account with name, size, purpose and creation time. Use for \"What files have I uploa","description":"List files uploaded to your Mistral account with name, size, purpose and creation time. Use for \"What files have I uploaded to Mistral for fine-tuning or batch\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Items per page.","title":"Page Size"},"purpose":{"anyOf":[{"enum":["fine-tune","batch","ocr"],"type":"string"},{"type":"null"}],"default":null,"description":"Only files with this purpose.","title":"Purpose"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only files whose name contains this text.","title":"Search"}},"title":"list_filesArguments","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_batch_jobs":{"post":{"operationId":"list_batch_jobs","summary":"List your Mistral batch jobs with model, endpoint, status and request counts (total, succeeded, failed). Use for \"Did my","description":"List your Mistral batch jobs with model, endpoint, status and request counts (total, succeeded, failed). Use for \"Did my Mistral batch job finish and how many requests failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Items per page.","title":"Page Size"},"model":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs for this model.","title":"Model"},"status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs with this status, for example SUCCESS, RUNNING, QUEUED or FAILED.","title":"Status"},"order_by":{"anyOf":[{"enum":["created","-created"],"type":"string"},{"type":"null"}],"default":"-created","description":"Sort by creation time: created (oldest first) or -created (newest first).","title":"Order By"}},"title":"list_batch_jobsArguments","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_fine_tuning_jobs":{"post":{"operationId":"list_fine_tuning_jobs","summary":"List your Mistral fine-tuning jobs with base model, resulting model, status, trained tokens and dates. Use for \"Which of","description":"List your Mistral fine-tuning jobs with base model, resulting model, status, trained tokens and dates. Use for \"Which of my Mistral fine-tuning jobs have finished\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Items per page.","title":"Page Size"},"model":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs for this base model.","title":"Model"},"status":{"anyOf":[{"enum":["QUEUED","STARTED","VALIDATING","VALIDATED","RUNNING","FAILED_VALIDATION","FAILED","SUCCESS","CANCELLED","CANCELLATION_REQUESTED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs in this state.","title":"Status"},"created_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only jobs created after this ISO 8601 time.","title":"Created After"},"created_by_me":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to show only jobs created with this key's user.","title":"Created By Me"}},"title":"list_fine_tuning_jobsArguments","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_agents":{"post":{"operationId":"list_agents","summary":"List the Mistral agents in your workspace with name, description, model, version and update time. Use for \"Which Mistral","description":"List the Mistral agents in your workspace with name, description, model, version and update time. Use for \"Which Mistral agents have I created\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Agents per page (1 to 1000).","title":"Page Size"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only agents with this name.","title":"Name"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text in agent names and descriptions.","title":"Search"}},"title":"list_agentsArguments","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_libraries":{"post":{"operationId":"list_libraries","summary":"List the document libraries you can access in Mistral, with name, document count, total size and owner type. Use for \"Wh","description":"List the document libraries you can access in Mistral, with name, document count, total size and owner type. Use for \"Which Mistral document libraries do I have and how big are they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_librariesArguments","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_library_documents":{"post":{"operationId":"list_library_documents","summary":"List documents in one Mistral library with name, size, page count and processing status. Use for \"Which documents are in","description":"List documents in one Mistral library with name, size, page count and processing status. Use for \"Which documents are in my Mistral library and are they processed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"library_id":{"description":"Library id from list_libraries.","maxLength":200,"title":"Library Id","type":"string"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only documents whose name matches this text.","title":"Search"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Documents per page (1 to 100).","title":"Page Size"}},"required":["library_id"],"title":"list_library_documentsArguments","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_conversations":{"post":{"operationId":"list_conversations","summary":"List your Mistral conversations (agent API) with name, model and timestamps; message content is not returned. Use for \"W","description":"List your Mistral conversations (agent API) with name, model and timestamps; message content is not returned. Use for \"What Mistral conversations have I had recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Conversations per page.","title":"Page Size"}},"title":"list_conversationsArguments","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}}}}