{"openapi":"3.1.0","info":{"title":"OpenAI code interpreter containers, container files and Skills (your key) API","version":"0.1.0","description":"OpenAI code interpreter containers, container files and Skills (your key) lets an AI assistant read your own OpenAI Containers and Skills data through the OpenAI Containers and Skills API with a key you supply (OpenAI API key). Read-only: 8 tools (list_containers, get_container, list_container_files, get_container_file, list_skills, get_skill, list_skill_versions, get_skill_version). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-openai-containers-skills.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-openai-containers-skills/docs"},"termsOfService":"https://connectorbay.com/byok-openai-containers-skills/terms"},"servers":[{"url":"https://byok-openai-containers-skills.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-openai-containers-skills/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_containers":{"post":{"operationId":"list_containers","summary":"List code interpreter containers with status, memory limit, expiry setting, network policy and last activity time. Use f","description":"List code interpreter containers with status, memory limit, expiry setting, network policy and last activity time. Use for \"Which OpenAI code interpreter containers are active in my project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only containers with this exact name.","title":"Name"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort by creation time: asc or desc.","title":"Order"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Id of the last item of the previous page, to continue after it.","title":"After"}},"title":"list_containersArguments","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_container":{"post":{"operationId":"get_container","summary":"Get one container: status, memory limit, expiry, network policy and last activity. Use for \"Is OpenAI container cntr_abc","description":"Get one container: status, memory limit, expiry, network policy and last activity. Use for \"Is OpenAI container cntr_abc123 still active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container_id":{"description":"Container id, for example 'cntr_abc123', from list_containers.","maxLength":200,"title":"Container Id","type":"string"}},"required":["container_id"],"title":"get_containerArguments","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_container_files":{"post":{"operationId":"list_container_files","summary":"List the files stored in a container with path, size in bytes, source (user or assistant) and creation time (file conten","description":"List the files stored in a container with path, size in bytes, source (user or assistant) and creation time (file content is not read). Use for \"What files are in my OpenAI container\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container_id":{"description":"Container id, for example 'cntr_abc123', from list_containers.","maxLength":200,"title":"Container Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort by creation time: asc or desc.","title":"Order"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Id of the last item of the previous page, to continue after it.","title":"After"}},"required":["container_id"],"title":"list_container_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/get_container_file":{"post":{"operationId":"get_container_file","summary":"Get the metadata of one file in a container: path, size, source and creation time. Use for \"How big is a given file in m","description":"Get the metadata of one file in a container: path, size, source and creation time. Use for \"How big is a given file in my OpenAI container\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container_id":{"description":"Container id, for example 'cntr_abc123', from list_containers.","maxLength":200,"title":"Container Id","type":"string"},"file_id":{"description":"File id from list_container_files, for example 'cfile_abc123'.","maxLength":200,"title":"File Id","type":"string"}},"required":["container_id","file_id"],"title":"get_container_fileArguments","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_skills":{"post":{"operationId":"list_skills","summary":"List Skills (packaged instructions and files an assistant can use) with name, description, default and latest version. U","description":"List Skills (packaged instructions and files an assistant can use) with name, description, default and latest version. Use for \"Which Skills do I have in OpenAI\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort by creation time: asc or desc.","title":"Order"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Id of the last item of the previous page, to continue after it.","title":"After"}},"title":"list_skillsArguments","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_skill":{"post":{"operationId":"get_skill","summary":"Get one Skill: name, description, default version, latest version and creation time. Use for \"What is the default versio","description":"Get one Skill: name, description, default version, latest version and creation time. Use for \"What is the default version of my OpenAI skill\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"skill_id":{"description":"Skill id from list_skills.","maxLength":200,"title":"Skill Id","type":"string"}},"required":["skill_id"],"title":"get_skillArguments","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_skill_versions":{"post":{"operationId":"list_skill_versions","summary":"List the versions of a Skill with version number, name, description and creation time. Use for \"What versions does my Op","description":"List the versions of a Skill with version number, name, description and creation time. Use for \"What versions does my OpenAI skill have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"skill_id":{"description":"Skill id from list_skills.","maxLength":200,"title":"Skill Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort by version number: asc or desc.","title":"Order"},"after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Id of the last item of the previous page, to continue after it.","title":"After"}},"required":["skill_id"],"title":"list_skill_versionsArguments","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_skill_version":{"post":{"operationId":"get_skill_version","summary":"Get one version of a Skill: version number, name, description and creation time. Use for \"What does version 2 of my Open","description":"Get one version of a Skill: version number, name, description and creation time. Use for \"What does version 2 of my OpenAI skill contain by description\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"skill_id":{"description":"Skill id from list_skills.","maxLength":200,"title":"Skill Id","type":"string"},"version":{"description":"Version number as listed by list_skill_versions, for example '1'.","maxLength":200,"title":"Version","type":"string"}},"required":["skill_id","version"],"title":"get_skill_versionArguments","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}}}}