{"openapi":"3.1.0","info":{"title":"Sevalla (BYOK) API","version":"0.1.0","description":"Sevalla (BYOK) lets an AI assistant read your own Sevalla data through the Sevalla API with a key you supply (API key (give it read permissions only)). Read-only: 11 tools (list_projects, list_applications, get_application, list_application_deployments, list_application_domains, list_databases, list_database_backups, list_static_sites, list_pipelines, list_load_balancers,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-sevalla.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-sevalla/docs"},"termsOfService":"https://connectorbay.com/byok-sevalla/terms"},"servers":[{"url":"https://byok-sevalla.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-sevalla/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_projects":{"post":{"operationId":"list_projects","summary":"List projects with name, display name and dates. Search by name; 25 per page by default, 100 at most. Use for \"Which Sev","description":"List projects with name, display name and dates. Search by name; 25 per page by default, 100 at most. Use for \"Which Sevalla projects do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects whose name or display name contains this text (case-insensitive).","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_projectsArguments","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_applications":{"post":{"operationId":"list_applications","summary":"List applications with status, source type (Git or Docker image), suspension flag and dates. Filter by status, source, p","description":"List applications with status, source type (Git or Docker image), suspension flag and dates. Filter by status, source, project or name. Use for \"Which of my Sevalla applications failed their last deployment\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["deploymentInProgress","deploymentFailed","deploymentSuccess","deleting","appDeletionFailed","deploymentCancelled"],"type":"string"},{"type":"null"}],"default":null,"description":"Only applications with this status.","title":"Status"},"source":{"anyOf":[{"enum":["privateGit","publicGit","dockerImage","app"],"type":"string"},{"type":"null"}],"default":null,"description":"Only applications with this source type.","title":"Source"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications that belong to this project id.","title":"Project Id"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only applications whose name or display name contains this text (case-insensitive).","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_applicationsArguments","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_application":{"post":{"operationId":"get_application","summary":"Get one application: status, source, Git repository and branch, build type, auto-deploy and hibernation settings, CDN fl","description":"Get one application: status, source, Git repository and branch, build type, auto-deploy and hibernation settings, CDN flag and dates. Use for \"How is Sevalla application app-id-123 built and deployed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Application id, as returned by list_applications.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_applicationArguments","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_application_deployments":{"post":{"operationId":"list_application_deployments","summary":"List the deployments of an application with status, trigger, branch, commit sha and message, author login and start/fini","description":"List the deployments of an application with status, trigger, branch, commit sha and message, author login and start/finish times. Use for \"What were the latest deployments of Sevalla application app-id-123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Application id, as returned by list_applications.","maxLength":200,"title":"Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"required":["id"],"title":"list_application_deploymentsArguments","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_application_domains":{"post":{"operationId":"list_application_domains","summary":"List the domains attached to an application with type, status, enabled/wildcard/primary flags and DNS records to set. Us","description":"List the domains attached to an application with type, status, enabled/wildcard/primary flags and DNS records to set. Use for \"Which domains point at Sevalla application app-id-123\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Application id, as returned by list_applications.","maxLength":200,"title":"Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"required":["id"],"title":"list_application_domainsArguments","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_databases":{"post":{"operationId":"list_databases","summary":"List databases (PostgreSQL, MariaDB, MySQL, MongoDB, Redis, Valkey) with status, engine, version, resource size and susp","description":"List databases (PostgreSQL, MariaDB, MySQL, MongoDB, Redis, Valkey) with status, engine, version, resource size and suspension flag. Connection secrets are not returned. Use for \"Which databases do I run on Sevalla and are they ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["creating","ready","updating","passwordChange","passwordChangeFailed","deleting","error","dbDeletionFailed","restoring","restoringFailed","updatingExternalConnection"],"type":"string"},{"type":"null"}],"default":null,"description":"Only databases with this status.","title":"Status"},"type":{"anyOf":[{"enum":["postgresql","mariadb","mysql","mongodb","redis","valkey"],"type":"string"},{"type":"null"}],"default":null,"description":"Only databases of this engine.","title":"Type"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only databases that belong to this project id.","title":"Project Id"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only databases whose name or display name contains this text (case-insensitive).","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_databasesArguments","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_database_backups":{"post":{"operationId":"list_database_backups","summary":"List the backups of a database (daily and manual) with type, creation time and expiry. Use for \"When was the last backup","description":"List the backups of a database (daily and manual) with type, creation time and expiry. Use for \"When was the last backup of Sevalla database db-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Database id, as returned by list_databases.","maxLength":200,"title":"Id","type":"string"},"type":{"anyOf":[{"enum":["daily","manual"],"type":"string"},{"type":"null"}],"default":null,"description":"Only backups of this type: daily or manual.","title":"Type"}},"required":["id"],"title":"list_database_backupsArguments","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_static_sites":{"post":{"operationId":"list_static_sites","summary":"List static sites with name, display name and status. Use for \"Which static sites do I host on Sevalla\".","description":"List static sites with name, display name and status. Use for \"Which static sites do I host on Sevalla\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_static_sitesArguments","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_pipelines":{"post":{"operationId":"list_pipelines","summary":"List deployment pipelines with type (trunk or branch) and their stages. Use for \"What pipelines and stages are configure","description":"List deployment pipelines with type (trunk or branch) and their stages. Use for \"What pipelines and stages are configured on Sevalla\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"enum":["trunk","branch"],"type":"string"},{"type":"null"}],"default":null,"description":"Only pipelines of this type: trunk or branch.","title":"Type"},"project_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only pipelines that belong to this project id.","title":"Project Id"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only pipelines whose name or display name contains this text (case-insensitive).","title":"Search"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_pipelinesArguments","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_load_balancers":{"post":{"operationId":"list_load_balancers","summary":"List load balancers with name, type (DEFAULT or GEO) and project. Use for \"Which load balancers do I have on Sevalla\".","description":"List load balancers with name, type (DEFAULT or GEO) and project. Use for \"Which load balancers do I have on Sevalla\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_load_balancersArguments","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_object_storage_buckets":{"post":{"operationId":"list_object_storage_buckets","summary":"List object storage buckets with location, jurisdiction, status and public domain. Access credentials are not returned. ","description":"List object storage buckets with location, jurisdiction, status and public domain. Access credentials are not returned. Use for \"Which object storage buckets do I have on Sevalla and where are they\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Maximum number of items per page (1 to 100, default 25).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip (0 to 10000).","title":"Offset"}},"title":"list_object_storage_bucketsArguments","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}}}}