{"openapi":"3.1.0","info":{"title":"Daytona (BYOK) API","version":"0.1.0","description":"Daytona (BYOK) lets an AI assistant read your own Daytona data through the Daytona API with a key you supply (API key). Read-only: 9 tools (list_sandboxes, get_sandbox, list_snapshots, list_volumes, list_organizations, get_organization_usage, list_regions, get_current_user, get_current_api_key). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-daytona.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-daytona/docs"},"termsOfService":"https://connectorbay.com/byok-daytona/terms"},"servers":[{"url":"https://byok-daytona.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-daytona/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_sandboxes":{"post":{"operationId":"list_sandboxes","summary":"List your Daytona sandboxes with state, snapshot, CPU, memory and disk, labels and activity times; page with the cursor.","description":"List your Daytona sandboxes with state, snapshot, CPU, memory and disk, labels and activity times; page with the cursor. Eventually consistent. Use for \"Which Daytona sandboxes are started right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Only sandboxes whose name matches this text.","title":"Name"},"labels":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only sandboxes with these labels, as a JSON object string, for example '{\"project\":\"demo\"}'.","title":"Labels"},"sort":{"anyOf":[{"enum":["name","cpu","memoryGib","diskGib","lastActivityAt","createdAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Order"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many sandboxes to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_sandboxesArguments","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_sandbox":{"post":{"operationId":"get_sandbox","summary":"Get one sandbox: state, desired state, snapshot, resources, labels, network flags, volumes, auto-stop, auto-archive and ","description":"Get one sandbox: state, desired state, snapshot, resources, labels, network flags, volumes, auto-stop, auto-archive and auto-delete intervals and activity times. Use for \"Show the details of my Daytona sandbox called my-sandbox\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sandbox_id_or_name":{"description":"Sandbox ID or name as returned by list_sandboxes, for example 'my-sandbox'.","maxLength":120,"title":"Sandbox Id Or Name","type":"string"}},"required":["sandbox_id_or_name"],"title":"get_sandboxArguments","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_snapshots":{"post":{"operationId":"list_snapshots","summary":"List snapshots (the images sandboxes start from) with state, resources, size and last use, one page at a time. Use for \"","description":"List snapshots (the images sandboxes start from) with state, resources, size and last use, one page at a time. Use for \"Which Daytona snapshots do I have and when were they last used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Only snapshots whose name matches this text.","title":"Name"},"sort":{"anyOf":[{"enum":["name","state","lastUsedAt","createdAt"],"type":"string"},{"type":"null"}],"default":"lastUsedAt","description":"Sort field.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Sort order.","title":"Order"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many snapshots per page (1 to 200).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_snapshotsArguments","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_volumes":{"post":{"operationId":"list_volumes","summary":"List the persistent volumes of your organization with state and last use. Use for \"What Daytona volumes does my organiza","description":"List the persistent volumes of your organization with state and last use. Use for \"What Daytona volumes does my organization have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include deleted volumes.","title":"Include Deleted"}},"title":"list_volumesArguments","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_organizations":{"post":{"operationId":"list_organizations","summary":"List the Daytona organizations the key can see, with limits per sandbox, suspension flag, default region and rate limits","description":"List the Daytona organizations the key can see, with limits per sandbox, suspension flag, default region and rate limits. Use for \"Which Daytona organizations am I in, and what are their limits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_organizationsArguments","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_organization_usage":{"post":{"operationId":"get_organization_usage","summary":"Show quota and current usage of one organization per region (CPU, memory, disk, GPU) plus snapshot and volume quotas. Us","description":"Show quota and current usage of one organization per region (CPU, memory, disk, GPU) plus snapshot and volume quotas. Use for \"How much of my Daytona quota am I using\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization ID as returned by list_organizations (id).","maxLength":80,"title":"Organization Id","type":"string"}},"required":["organization_id"],"title":"get_organization_usageArguments","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_regions":{"post":{"operationId":"list_regions","summary":"List the regions your organization can run sandboxes in, with type and ID. Use for \"Which Daytona regions can I use\".","description":"List the regions your organization can run sandboxes in, with type and ID. Use for \"Which Daytona regions can I use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_regionsArguments","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_current_user":{"post":{"operationId":"get_current_user","summary":"Show the Daytona user the key belongs to: id, name, email and creation date. Use for \"Which Daytona account does my key ","description":"Show the Daytona user the key belongs to: id, name, email and creation date. Use for \"Which Daytona account does my key belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_userArguments","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_current_api_key":{"post":{"operationId":"get_current_api_key","summary":"Show details of the API key in use: name, permissions, creation, last use and expiry (the key value is not returned). Us","description":"Show details of the API key in use: name, permissions, creation, last use and expiry (the key value is not returned). Use for \"What permissions does my Daytona API key have and when does it expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_api_keyArguments","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}}}}