Interactive docs available with JavaScript enabled. Below is the full OpenAPI spec.
components: schemas: CurrentIdentity: properties: authType: description: The authentication mechanism used for this request. enum: - oauth - apikey example: oauth type: string availableOrganizations: description: OAuth only. Organizations the authenticated subject belongs to. items: $ref: '#/components/schemas/CurrentIdentityOrganization' type: array organizationId: description: The organization resolved from the authenticated token. example: org_123456 type: string tokenType: description: The effective token access level. enum: - ro - rw example: rw type: string user: allOf: - $ref: '#/components/schemas/CurrentIdentityUser' description: For OAuth, this is the OAuth token subject. For API keys, this is the API key creator. required: - authType - tokenType - organizationId - user type: object CurrentIdentityOrganization: properties: active: description: True when this is the organization resolved from the current token. example: true type: boolean default: description: Whether this organization is the user's default organization. example: false type: boolean id: description: The organization ID. example: org_123456 type: string name: description: The organization display name. example: Acme Inc. type: string required: - id - name - active - default type: object CurrentIdentityUser: properties: avatarUrl: description: User avatar URL. example: https://cdn.example.com/avatar.png type: string email: description: User email address. example: ada@example.com type: string githubAccountId: description: GitHub account ID of the resolved user. example: 12345678 format: int64 type: integer githubLogin: description: GitHub login of the resolved user. example: adalovelace type: string id: description: The resolved user ID for this request. example: user_123456 type: string name: description: User display name. example: Ada Lovelace type: string required: - id - name - email - avatarUrl type: object CustomDomain: properties: domain: description: The custom domain name example: example.com type: string id: description: The unique identifier of the custom domain example: custom_domain_123456 type: string status: description: The current status of the custom domain enum: - pending - active - failed example: active type: string required: - id - domain - status type: object EnvironmentVariable: properties: key: description: The environment variable key example: DATABASE_URL minLength: 1 type: string secret: description: Whether this environment variable should be treated as a secret example: true type: boolean value: description: The environment variable value. If secret is true, this will be masked in responses. example: "" type: string required: - key - value - secret type: object Error: properties: code: description: A unique identifier for the type of error enum: - invalid_request - invalid_token - missing_token - read_only_token - api_access_disabled - project_not_found - server_not_found - service_not_found - credential_not_found - oauth_client_not_found - insufficient_capacity - invalid_deployment - invalid_network - invalid_volume - invalid_environment - invalid_credentials - service_invalid_state - server_invalid_state - project_not_empty - internal_server_error - domain_already_exists - rate_limit_exceeded - token_revoked example: invalid_request type: string message: description: A human-readable message describing the error example: The request body is invalid type: string required: - code - message type: object ImageDeployment: properties: registryAuthenticationId: description: The ID of the registry credentials to use for authentication example: credential_123456 type: string url: description: The URL of the container image example: docker.io/library/nginx:latest type: string required: - url type: object InstanceType: description: | The size of the server instance. | Instance Type | Type | vCPU | RAM | Disk | Egress | Price (per month, excl. VAT) | |--------------|------|------|-----|------|--------|------------------| | Base | Shared | 2 | 2 GB | 40 GB | 2 TB | €9.00 | | Medium | Shared | 3 | 4 GB | 80 GB | 2 TB | €24.00 | | Large | Shared | 4 | 8 GB | 160 GB | 2 TB | €44.00 | | X-Large | Shared | 8 | 16 GB | 240 GB | 2 TB | €76.00 | | XX-Large | Shared | 16 | 32 GB | 360 GB | 2 TB | €224.00 | | Dedicated Base | Dedicated | 2 | 8 GB | 80 GB | 2 TB | €49.00 | | Dedicated Medium | Dedicated | 4 | 16 GB | 160 GB | 2 TB | €98.00 | | Dedicated Large | Dedicated | 8 | 32 GB | 240 GB | 2 TB | €196.00 | | Dedicated X-Large | Dedicated | 16 | 64 GB | 360 GB | 2 TB | €392.00 | | Dedicated XX-Large | Dedicated | 32 | 128 GB | 600 GB | 2 TB | €784.00 | | Dedicated XXX-Large | Dedicated | 48 | 192 GB | 960 GB | 2 TB | €1,176.00 | enum: - base - medium - large - x-large - xx-large - dedicated-base - dedicated-medium - dedicated-large - dedicated-x-large - dedicated-xx-large - dedicated-xxx-large type: string Location: description: | The geographical location of the server | Location ID | Location Name | |------------|---------------| | sin | Singapore, Singapore | | fsn | Falkenstein, Germany | | nbg | Nuremberg, Germany | | ash | Ashburn, USA | | hel | Helsinki, Finland | | hil | Hillsboro, USA | enum: - sin - fsn - nbg - ash - hel - hil type: string OAuthClient: properties: createdAt: description: Timestamp when the OAuth client was created. example: "2024-03-20T12:00:00Z" format: date-time type: string id: description: The unique identifier of the OAuth client. example: oclient_123456 type: string imageUrl: description: Optional image URL shown in consent screens. example: https://cdn.example.com/logo.png type: string name: description: The OAuth client display name. example: My Integrator App minLength: 1 type: string organizationId: description: The organization this OAuth client belongs to. example: org_123456 type: string redirectUris: description: List of allowed redirect callback URLs. example: - https://app.example.com/callback - http://localhost:3000/callback items: format: uri type: string minItems: 1 type: array updatedAt: description: Timestamp when the OAuth client was last updated. example: "2024-03-20T12:00:00Z" format: date-time type: string required: - id - organizationId - name - redirectUris - createdAt - updatedAt type: object OAuthClientUser: properties: avatarUrl: description: Avatar URL of the authorized user. example: https://cdn.example.com/avatar.png type: string email: description: Email address of the authorized user. example: ada@example.com format: email type: string firstAuthorizedAt: description: Timestamp of the first recorded authorization grant. example: "2024-03-20T12:00:00Z" format: date-time type: string grantCount: description: Total number of recorded authorization grants by this user. example: 3 format: int32 minimum: 1 type: integer lastAuthorizedAt: description: Timestamp of the latest recorded authorization grant. example: "2024-03-21T12:00:00Z" format: date-time type: string name: description: Display name of the authorized user. example: Ada Lovelace type: string userId: description: The user ID that authorized this OAuth client. example: user_123456 type: string required: - userId - name - email - avatarUrl - firstAuthorizedAt - lastAuthorizedAt - grantCount type: object Project: properties: id: description: The unique identifier of the project example: project_123456 type: string name: description: The name of the project example: My Project minLength: 1 type: string required: - id - name type: object RegistryCredentials: properties: createdAt: description: The timestamp when the credentials were created example: "2024-03-20T12:00:00Z" format: date-time type: string id: description: The unique identifier of the registry credentials example: credential_123456 type: string name: description: A name to identify these credentials example: Docker Hub Credentials minLength: 1 type: string type: description: The type of registry these credentials are for enum: - ghcr - dockerhub - dhi - generic example: dockerhub type: string username: description: The username for the registry example: myusername type: string required: - id - name - type - username - createdAt type: object RepositoryDeployment: properties: autoDeploy: default: true description: Whether to automatically deploy when changes are pushed to the branch example: true type: boolean branch: default: main description: The branch to deploy from example: main type: string dockerContext: default: . description: The build context for Docker example: . type: string dockerfilePath: default: Dockerfile description: The path to the Dockerfile in the repository example: Dockerfile type: string ignorePaths: description: List of file path glob patterns to exclude from triggering a rebuild. Changes to files matching only these patterns will not trigger auto-deploy. example: - docs/** - '*.md' items: type: string type: array includePaths: description: List of file path glob patterns that trigger a rebuild. If specified, only changes to files matching these patterns will trigger auto-deploy. example: - src/** - Dockerfile items: type: string type: array url: description: The URL of the repository example: https://github.com/username/repo format: uri type: string required: - url type: object Server: properties: createdAt: description: The timestamp when the server was created example: "2024-03-20T12:00:00Z" format: date-time type: string id: description: The unique identifier of the server example: server_123456 type: string instanceType: $ref: '#/components/schemas/InstanceType' ipv4: description: The IPv4 address of the server example: 192.168.1.1 format: ipv4 type: string ipv6: description: The IPv6 address of the server example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 format: ipv6 type: string location: $ref: '#/components/schemas/Location' name: description: The name of the server example: Production Server minLength: 1 type: string status: $ref: '#/components/schemas/ServerStatus' required: - id - name - instanceType - location - status - createdAt type: object ServerMetric: properties: cpuUsage: description: CPU usage percentage example: 35.7 format: float type: number createdAt: description: The timestamp when the metric was recorded example: "2024-03-20T12:00:00Z" format: date-time type: string freeMemory: description: Free memory in MB example: 4096 format: float type: number totalMemory: description: Total memory in MB example: 8192 format: float type: number usedMemory: description: Used memory in MB example: 4096 format: float type: number required: - createdAt - usedMemory - freeMemory - totalMemory - cpuUsage type: object ServerStatus: description: The current status of the server enum: - booting - running - error - rescaling - deleting type: string ServerVolumeResponse: properties: id: description: The unique identifier of the volume example: volume_123456 type: string name: description: The name of the volume example: data type: string required: - id - name type: object Service: properties: cmd: description: Override the Docker CMD instruction example: npm start type: string createdAt: description: The timestamp when the service was created example: "2024-03-20T12:00:00Z" format: date-time type: string deployment: description: The deployment configuration for the service oneOf: - $ref: '#/components/schemas/RepositoryDeployment' Repository Deployment: null - $ref: '#/components/schemas/ImageDeployment' Image Deployment: null type: object env: description: Environment variables for the service items: $ref: '#/components/schemas/EnvironmentVariable' type: array healthcheck: default: / description: The path to use for health checks example: /health type: string id: description: The unique identifier of the service example: service_123456 type: string name: description: The name of the service example: My Service minLength: 1 type: string network: $ref: '#/components/schemas/ServiceNetworkResponse' projectId: description: The ID of the project containing the service example: project_123456 type: string serverId: description: The ID of the server running the service example: server_123456 type: string status: $ref: '#/components/schemas/ServiceStatus' volumes: description: Volumes mounted to the service items: $ref: '#/components/schemas/VolumeResponse' type: array required: - id - name - serverId - projectId - status - createdAt - deployment - network type: object ServiceEvent: properties: createdAt: description: The timestamp when the event occurred example: "2024-03-20T12:00:00Z" format: date-time type: string id: description: The unique identifier of the event example: service_event_123456 type: string message: description: Human-readable description of the event example: Deploy started type: string payload: description: Additional event metadata as a JSON object example: branchName: main commitHash: abc123 deployEventId: service_event_abc123 type: object trigger: description: | What triggered the event. Triggers include: - github_push, manual, api, settings_change, image_tag_change, commit_check example: github_push type: string type: description: | The type of event. Types include: - service_deploy, service_deploy_success, service_deploy_failed, service_deploy_cancelled - service_build, service_build_failed - service_suspend, service_suspend_success, service_suspend_failed - service_resume, service_resume_success, service_resume_failed - service_delete, service_delete_success, service_delete_failed - service_oom - service_container_status_changed example: service_deploy_success type: string required: - id - type - createdAt - message - trigger type: object ServiceLog: properties: createdAt: description: The timestamp when the log was created example: "2024-03-20T12:00:00Z" format: date-time type: string message: description: The log message example: Application started successfully type: string required: - message - createdAt type: object ServiceMetric: properties: cpuUsage: description: CPU usage percentage example: 45.2 format: float type: number createdAt: description: The timestamp when the metric was recorded example: "2024-03-20T12:00:00Z" format: date-time type: string freeMemory: description: Free memory in MB example: 1536 format: float type: number totalMemory: description: Total memory in MB example: 2048 format: float type: number usedMemory: description: Used memory in MB example: 512.5 format: float type: number required: - createdAt - usedMemory - freeMemory - totalMemory - cpuUsage type: object ServiceNetworkRequest: properties: protocol: description: The protocol to use for the service. Only required when public is true. enum: - http - tcp - udp example: http type: string public: default: false description: Whether the service is publicly accessible example: true type: boolean required: - public type: object ServiceNetworkResponse: properties: customDomains: description: Custom domains assigned to this service items: $ref: '#/components/schemas/CustomDomain' type: array internalDomain: description: The internal domain name for accessing the service within the server. example: my-service.internal type: string managedDomain: description: The managed domain assigned to this service. Only included in responses if the service is public. example: example.sliplane.app type: string protocol: description: The protocol to use for the service. Only required when public is true. enum: - http - tcp - udp example: http type: string public: default: false description: Whether the service is publicly accessible example: true type: boolean required: - public type: object ServiceStatus: description: The current status of the service enum: - pending - live - failed - suspended - deleting type: string UpdateOAuthClient: properties: imageUrl: description: Updated image URL. Send an empty string to clear it. example: https://cdn.example.com/new-logo.png type: string name: description: Updated OAuth client display name. example: Updated Integrator App minLength: 1 type: string redirectUris: description: Full replacement list of allowed redirect callback URLs. example: - https://app.example.com/callback items: format: uri type: string minItems: 1 type: array type: object Volume: oneOf: - name: Existing Volume properties: id: description: The ID of an existing volume to mount example: volume_123456 type: string mountPath: description: The path where the volume should be mounted in the container example: /data type: string required: - id - mountPath - name: New Volume properties: mountPath: description: The path where the volume should be mounted in the container example: /data type: string name: description: The name of the volume example: data type: string required: - name - mountPath VolumeResponse: properties: id: description: The unique identifier of the volume example: volume_123456 type: string mountPath: description: The path where the volume is mounted in the container example: /data type: string name: description: The name of the volume example: data type: string required: - id - name - mountPath type: object securitySchemes: bearerAuth: description: Bearer token obtained from the Sliplane dashboard. Tokens embed the organization ID (api_rw_org_xxx_secret). scheme: bearer type: http info: contact: email: support@sliplane.io name: Sliplane Support description: | The Sliplane API allows you to manage your services programmatically. ## Authentication All requests require authentication using a Bearer token, which can be obtained from the Sliplane Dashboard in your team settings. Tokens embed the organization ID directly (e.g., `api_rw_org_xxx_secret`), so only the `Authorization` header is needed: ``` Authorization: Bearer api_rw_org_xxx_secret ``` You can create a `read-only` or `read-write` token. `read-only` tokens can only make `GET` requests, all other requests fail with a `403 Forbidden` error. A token is specific to an organization and has access to all resources within that organization. ## API Versioning The API is versioned using a version prefix in the URL path (e.g., `/v0/`). The current version is `v0`. Within a version, non-breaking changes (such as adding optional fields) may be introduced, but breaking changes will not be made. ## Rate Limiting The API is subject to rate limits to ensure fair usage and system stability. The following limits apply: | Endpoint Type | Rate Limit | Response Code | |--------------|------------|---------------| | Server Creation | 50 requests per hour | 429 Too Many Requests | | Server Rescaling | 10 requests per hour | 429 Too Many Requests | | Service Creation | 10 requests per minute | 429 Too Many Requests | | Service Deploy | 10 requests per minute | 429 Too Many Requests | | All other endpoints | 400 requests per minute | 429 Too Many Requests | If you require higher rate limits, please contact [support@sliplane.io](mailto:support@sliplane.io). ## LLMs If you want to vibecode your Sliplane integration, you can use our [llms.txt file](https://ctrl.sliplane.io/llms.txt). title: Sliplane API version: 0.3.2 openapi: 3.0.4 paths: /me: get: description: | Returns the authenticated caller identity and token context. User semantics: - For OAuth tokens, `user` is the OAuth token subject. - For API key tokens, `user` is the user who created the API key. - For OAuth tokens, `availableOrganizations` lists the subject's organizations, and `active` marks the token organization. - For API key tokens, `availableOrganizations` is omitted. operationId: getMe responses: "200": content: application/json: schema: $ref: '#/components/schemas/CurrentIdentity' description: Current caller identity "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token summary: Get current identity tags: - Identity /oauth-clients: get: description: Returns all OAuth clients bound to the authenticated organization. operationId: listOAuthClients responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/OAuthClient' type: array description: List of OAuth clients "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key summary: List OAuth clients tags: - OAuth Clients /oauth-clients/{clientId}: get: description: Returns details for a single OAuth client in the authenticated organization. operationId: getOAuthClient parameters: - description: The OAuth client ID to retrieve. in: path name: clientId required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/OAuthClient' description: OAuth client details "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: OAuth client not found summary: Get OAuth client tags: - OAuth Clients patch: description: Updates OAuth client metadata. Provide at least one field to update. operationId: updateOAuthClient parameters: - description: The OAuth client ID to update. in: path name: clientId required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateOAuthClient' required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/OAuthClient' description: OAuth client updated successfully "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request - Invalid request body "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: OAuth client not found summary: Update OAuth client tags: - OAuth Clients /oauth-clients/{clientId}/users: get: description: Lists users who authorized the OAuth client in the authenticated organization. operationId: listOAuthClientUsers parameters: - description: The OAuth client ID to inspect. in: path name: clientId required: true schema: type: string responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/OAuthClientUser' type: array description: OAuth client authorized users "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: OAuth client not found summary: List OAuth client users tags: - OAuth Clients /projects: get: description: Returns a list of all projects in the organization operationId: listProjects responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/Project' type: array description: List of projects "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key summary: List projects tags: - Projects post: description: Creates a new project with the specified name operationId: createProject requestBody: content: application/json: schema: properties: name: description: The name of the project example: My Project minLength: 1 type: string required: - name type: object required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Project' description: Project created successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key summary: Create a new project tags: - Projects /projects/{projectId}: delete: description: Deletes an existing project. The project must not contain any services. operationId: deleteProject parameters: - description: The ID of the project to delete in: path name: projectId required: true schema: type: string responses: "204": description: Project deleted successfully "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found example: project_not_found type: string message: example: Project not found type: string type: object description: Project not found "409": content: application/json: schema: properties: code: enum: - project_not_empty example: project_not_empty type: string message: example: Cannot delete project that contains services type: string type: object description: Project contains services summary: Delete a project tags: - Projects patch: description: Updates the name of an existing project operationId: updateProject parameters: - description: The ID of the project to update in: path name: projectId required: true schema: type: string requestBody: content: application/json: schema: properties: name: description: The new name of the project minLength: 1 type: string required: - name type: object required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/Project' description: Project updated successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": description: Project not found summary: Update a project tags: - Projects /projects/{projectId}/services: get: description: Returns a list of all services in the project operationId: listServices parameters: - description: The ID of the project to list services from in: path name: projectId required: true schema: type: string responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/Service' type: array description: List of services "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found example: project_not_found type: string message: example: Project not found type: string type: object description: Project not found summary: List services tags: - Services post: description: Creates a new service within a project operationId: createService parameters: - description: The ID of the project to create the service in in: path name: projectId required: true schema: type: string requestBody: content: application/json: schema: properties: cmd: description: Override the Docker CMD instruction example: npm start type: string deployment: description: The deployment configuration for the service oneOf: - $ref: '#/components/schemas/RepositoryDeployment' Repository Deployment: null - $ref: '#/components/schemas/ImageDeployment' Image Deployment: null type: object env: description: Environment variables for the service items: $ref: '#/components/schemas/EnvironmentVariable' type: array healthcheck: default: / description: The path to use for health checks example: /health type: string name: description: The name of the service example: My Service minLength: 1 type: string network: $ref: '#/components/schemas/ServiceNetworkRequest' serverId: description: The ID of the server to run the service on example: server_123456 type: string volumes: description: Volumes to mount to the service items: $ref: '#/components/schemas/Volume' type: array required: - name - serverId - deployment - network type: object required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Service' description: Service created successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - server_not_found example: project_not_found type: string message: example: Project or server not found type: string type: object description: Project or server not found summary: Create a new service tags: - Services /projects/{projectId}/services/{serviceId}: delete: description: Deletes an existing service operationId: deleteService parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to delete in: path name: serviceId required: true schema: type: string responses: "204": description: Service deleted successfully "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - service_not_found example: project_not_found type: string message: example: Project or service not found type: string type: object description: Project or service not found summary: Delete a service tags: - Services get: description: Returns the details of a specific service operationId: getService parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to retrieve in: path name: serviceId required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/Service' description: Service details "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - service_not_found example: project_not_found type: string message: example: Project or service not found type: string type: object description: Project or service not found summary: Get service details tags: - Services patch: description: | Updates an existing service. The deployment type (image or repository) cannot be changed. Network settings cannot be changed. Volumes cannot be modified through this endpoint. When updating environment variables, providing the `env` key means full replacement. If you want to add a new environment variable, you must include all previous environment variables in the array. If a variable is secret, you can keep the value empty. Otherwise it will be overwritten. operationId: updateService parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to update in: path name: serviceId required: true schema: type: string requestBody: content: application/json: schema: properties: cmd: description: Override the Docker CMD instruction example: npm start type: string deployment: description: The deployment configuration for the service. Must match the current deployment type (image or repository) oneOf: - $ref: '#/components/schemas/RepositoryDeployment' Repository Deployment: null - $ref: '#/components/schemas/ImageDeployment' Image Deployment: null type: object env: description: Environment variables for the service. Providing this key will replace all existing environment variables items: $ref: '#/components/schemas/EnvironmentVariable' type: array healthcheck: description: The path to use for health checks example: /health type: string name: description: The new name of the service minLength: 1 type: string type: object required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/Service' description: Service updated successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - service_not_found example: project_not_found type: string message: example: Project or service not found type: string type: object description: Project or service not found "409": content: application/json: schema: properties: code: enum: - invalid_deployment example: invalid_deployment type: string message: example: Cannot change deployment type type: string type: object description: Invalid deployment type change summary: Update a service tags: - Services /projects/{projectId}/services/{serviceId}/deploy: post: description: | Manually triggers a deployment of a service. For image-based services, you can specify a new tag to deploy. operationId: deployService parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to deploy in: path name: serviceId required: true schema: type: string requestBody: content: application/json: schema: properties: tag: description: The new tag to deploy for image-based services example: latest type: string type: object required: false responses: "202": description: Deployment request accepted "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request is invalid type: string type: object description: Bad Request - Invalid request "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - service_not_found example: project_not_found type: string message: example: Project or service not found type: string type: object description: Project or service not found "409": content: application/json: schema: properties: code: enum: - service_invalid_state example: service_invalid_state type: string message: example: Service is not in a state that allows deployment type: string type: object description: Service is not in a state that allows deployment summary: Create a deployment tags: - Services /projects/{projectId}/services/{serviceId}/domains: post: description: Adds a custom domain to a service. The domain will be verified by checking for either a CNAME record pointing to the service's managed domain or an A record pointing to the server's IP address. Once verified, the domain will be added to the service. The verification process can take up to 24 hours, after which the domain will be marked as failed if not verified. operationId: addCustomDomain parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to add the domain to in: path name: serviceId required: true schema: type: string requestBody: content: application/json: schema: properties: domain: description: The custom domain to add example: example.com type: string required: - domain type: object required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/CustomDomain' description: Custom domain added successfully "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request - Invalid request body "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Project or service not found "409": content: application/json: schema: properties: code: enum: - domain_already_exists example: domain_already_exists type: string message: example: Domain is already attached to a service type: string type: object description: Custom domain already exists summary: Add a custom domain tags: - Services /projects/{projectId}/services/{serviceId}/domains/{domainId}: delete: description: Removes a custom domain from a service operationId: removeCustomDomain parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to remove the domain from in: path name: serviceId required: true schema: type: string - description: The ID of the custom domain to remove in: path name: domainId required: true schema: type: string responses: "204": description: Custom domain removed successfully "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Project, service, or domain not found summary: Remove a custom domain tags: - Services /projects/{projectId}/services/{serviceId}/events: get: description: | Returns events for a service showing deployment history, build status, and system events. Events are returned in reverse chronological order (newest first). operationId: getServiceEvents parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to get events for in: path name: serviceId required: true schema: type: string responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ServiceEvent' type: array description: Service events retrieved successfully "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Service or project not found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal server error security: - bearerAuth: [] summary: Get service events tags: - Services /projects/{projectId}/services/{serviceId}/logs: get: description: Returns logs for a service with optional time range filtering. Only returns message and creation timestamp. operationId: getServiceLogs parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to get logs for in: path name: serviceId required: true schema: type: string - description: From timestamp (Unix seconds) in: query name: from required: false schema: format: int64 type: integer - description: To timestamp (Unix seconds) in: query name: to required: false schema: format: int64 type: integer responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ServiceLog' type: array description: List of service logs "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request - Invalid query parameters "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Project or service not found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal server error summary: Get service logs tags: - Services /projects/{projectId}/services/{serviceId}/metrics: get: description: Returns metrics for a service with optional time range filtering. Provides CPU and memory usage data for monitoring service performance. Use either 'range' parameter OR 'from'+'to' parameters, but not both. operationId: getServiceMetrics parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to get metrics for in: path name: serviceId required: true schema: type: string - description: Predefined time range for metrics. Do not use with from/to parameters. in: query name: range required: false schema: enum: - 10min - 1h - 24h - 7d type: string - description: From timestamp (Unix seconds). Use only with 'to' parameter, not with 'range'. in: query name: from required: false schema: format: int64 type: integer - description: To timestamp (Unix seconds). Use only with 'from' parameter, not with 'range'. in: query name: to required: false schema: format: int64 type: integer responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ServiceMetric' type: array description: Service metrics data "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request - Invalid query parameters "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Project or service not found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal server error summary: Get service metrics tags: - Services x-codeSamples: - label: Using predefined range lang: curl source: | curl 'https://ctrl.sliplane.io/v0/projects/{projectId}/services/{serviceId}/metrics?range=1h' /projects/{projectId}/services/{serviceId}/pause: post: description: Pause a service operationId: pauseService parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to pause in: path name: serviceId required: true schema: type: string responses: "202": description: Service pause request accepted "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - service_not_found example: project_not_found type: string message: example: Project or service not found type: string type: object description: Project or service not found "409": content: application/json: schema: properties: code: enum: - service_invalid_state example: service_invalid_state type: string message: example: Service is not in a state that allows this operation type: string type: object description: Conflict - Invalid state transition summary: Pause a service tags: - Services /projects/{projectId}/services/{serviceId}/unpause: post: description: Unpause a service operationId: unpauseService parameters: - description: The ID of the project containing the service in: path name: projectId required: true schema: type: string - description: The ID of the service to unpause in: path name: serviceId required: true schema: type: string responses: "202": description: Service unpause request accepted "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - project_not_found - service_not_found example: project_not_found type: string message: example: Project or service not found type: string type: object description: Project or service not found "409": content: application/json: schema: properties: code: enum: - service_invalid_state example: service_invalid_state type: string message: example: Service is not in a state that allows this operation type: string type: object description: Conflict - Invalid state transition summary: Unpause a service tags: - Services /registry-credentials: get: description: Returns a list of all registry credentials in the organization operationId: listRegistryCredentials responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/RegistryCredentials' type: array description: List of registry credentials "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key summary: List registry credentials tags: - Registry Credentials post: description: Creates new credentials for a container registry operationId: createRegistryCredentials requestBody: content: application/json: schema: properties: name: description: A name to identify these credentials example: Docker Hub Credentials minLength: 1 type: string token: description: The authentication token for the registry example: mytoken type: string type: description: The type of registry these credentials are for enum: - ghcr - dockerhub - dhi - generic example: dockerhub type: string username: description: The username for the registry example: myusername type: string required: - name - type - username - token type: object required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/RegistryCredentials' description: Registry credentials created successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key summary: Create registry credentials tags: - Registry Credentials /registry-credentials/{credentialId}: delete: description: Deletes existing registry credentials operationId: deleteRegistryCredentials parameters: - description: The ID of the registry credentials to delete in: path name: credentialId required: true schema: type: string responses: "204": description: Registry credentials deleted successfully "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - credential_not_found example: credential_not_found type: string message: example: Registry credentials not found type: string type: object description: Registry credentials not found summary: Delete registry credentials tags: - Registry Credentials get: description: Returns the details of specific registry credentials operationId: getRegistryCredentials parameters: - description: The ID of the registry credentials to retrieve in: path name: credentialId required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/RegistryCredentials' description: Registry credentials details "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - credential_not_found example: credential_not_found type: string message: example: Registry credentials not found type: string type: object description: Registry credentials not found summary: Get registry credentials tags: - Registry Credentials patch: description: Updates the name of existing registry credentials. Only the name can be updated after creation. operationId: updateRegistryCredentials parameters: - description: The ID of the registry credentials to update in: path name: credentialId required: true schema: type: string requestBody: content: application/json: schema: properties: name: description: A name to identify these credentials example: Docker Hub Credentials minLength: 1 type: string required: - name type: object required: true responses: "200": content: application/json: schema: $ref: '#/components/schemas/RegistryCredentials' description: Registry credentials updated successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - credential_not_found example: credential_not_found type: string message: example: Registry credentials not found type: string type: object description: Registry credentials not found summary: Update registry credentials tags: - Registry Credentials /servers: get: description: Returns a list of all servers in the organization operationId: listServers responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/Server' type: array description: List of servers "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key summary: List servers tags: - Servers post: description: Creates a new server with the specified configuration operationId: createServer requestBody: content: application/json: schema: properties: instanceType: $ref: '#/components/schemas/InstanceType' location: $ref: '#/components/schemas/Location' name: description: The name of the server example: Production Server minLength: 1 type: string required: - name - instanceType - location type: object required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/Server' description: Server created successfully "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "503": content: application/json: schema: properties: code: enum: - insufficient_capacity example: insufficient_capacity type: string message: example: Insufficient capacity in the requested location type: string type: object description: Service Unavailable - Insufficient capacity in the requested location summary: Create a new server tags: - Servers /servers/{serverId}: delete: description: Deletes an existing server operationId: deleteServer parameters: - description: The ID of the server to delete in: path name: serverId required: true schema: type: string responses: "204": description: Server deleted successfully "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - server_not_found example: server_not_found type: string message: example: Server not found type: string type: object description: Server not found summary: Delete a server tags: - Servers get: description: Returns the details of a specific server operationId: getServer parameters: - description: The ID of the server to retrieve in: path name: serverId required: true schema: type: string responses: "200": content: application/json: schema: $ref: '#/components/schemas/Server' description: Server details "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - server_not_found example: server_not_found type: string message: example: Server not found type: string type: object description: Server not found summary: Get server details tags: - Servers post: description: Changes the instance type of an existing server. You can only scale up, not down. Scaling will make your services unavailable for a few minutes. operationId: rescaleServer parameters: - description: The ID of the server to rescale in: path name: serverId required: true schema: type: string requestBody: content: application/json: schema: properties: instanceType: $ref: '#/components/schemas/InstanceType' required: - instanceType type: object required: true responses: "202": description: Rescale request accepted "400": content: application/json: schema: properties: code: enum: - invalid_request example: invalid_request type: string message: example: The request body is invalid type: string type: object description: Bad Request - Invalid request body "401": content: application/json: schema: properties: code: enum: - invalid_token - missing_token example: missing_token type: string message: example: No authentication token provided type: string type: object description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: properties: code: enum: - read_only_token - api_access_disabled example: read_only_token type: string message: example: This token does not have write permissions type: string type: object description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: properties: code: enum: - server_not_found example: server_not_found type: string message: example: Server not found type: string type: object description: Server not found "409": content: application/json: schema: properties: code: enum: - server_invalid_state example: server_invalid_state type: string message: example: Server is not in a state that allows rescaling type: string type: object description: Server is not in a state that allows rescaling "503": content: application/json: schema: properties: code: enum: - insufficient_capacity example: insufficient_capacity type: string message: example: Insufficient capacity for the requested instance type type: string type: object description: Service Unavailable - Insufficient capacity for the requested instance type summary: Rescale a server tags: - Servers /servers/{serverId}/metrics: get: description: Returns metrics for a server with optional time range filtering. Provides CPU and memory usage data for monitoring server performance. Use either 'range' parameter OR 'from'+'to' parameters, but not both. operationId: getServerMetrics parameters: - description: The ID of the server to get metrics for in: path name: serverId required: true schema: type: string - description: Predefined time range for metrics. Do not use with from/to parameters. in: query name: range required: false schema: enum: - 10min - 1h - 24h - 7d type: string - description: From timestamp (Unix seconds). Use only with 'to' parameter, not with 'range'. in: query name: from required: false schema: format: int64 type: integer - description: To timestamp (Unix seconds). Use only with 'from' parameter, not with 'range'. in: query name: to required: false schema: format: int64 type: integer responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ServerMetric' type: array description: Server metrics data "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request - Invalid query parameters "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Server not found "500": content: application/json: schema: $ref: '#/components/schemas/Error' description: Internal server error summary: Get server metrics tags: - Servers x-codeSamples: - label: Using predefined range lang: curl source: | curl 'https://ctrl.sliplane.io/v0/servers/{serverId}/metrics?range=1h' /servers/{serverId}/volumes: get: description: Returns a list of all volumes available on the server operationId: listServerVolumes parameters: - description: The ID of the server to list volumes for in: path name: serverId required: true schema: type: string responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ServerVolumeResponse' type: array description: List of server volumes "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Server not found summary: List server volumes tags: - Servers post: description: Creates a new volume on a server. The volume can later be attached to a service. operationId: createServerVolume parameters: - description: The ID of the server to create the volume on in: path name: serverId required: true schema: type: string requestBody: content: application/json: schema: properties: name: description: The name of the volume example: data minLength: 1 type: string required: - name type: object required: true responses: "201": content: application/json: schema: $ref: '#/components/schemas/ServerVolumeResponse' description: Volume created successfully "400": content: application/json: schema: $ref: '#/components/schemas/Error' description: Bad Request - Invalid request body "401": content: application/json: schema: $ref: '#/components/schemas/Error' description: Unauthorized - Invalid or missing authentication token "403": content: application/json: schema: $ref: '#/components/schemas/Error' description: Forbidden - API access not enabled for organization or read-only key "404": content: application/json: schema: $ref: '#/components/schemas/Error' description: Server not found summary: Create a volume tags: - Servers security: - bearerAuth: [] servers: - description: Production API server url: https://ctrl.sliplane.io/v0 tags: - description: Operations related to caller identity and authentication context. name: Identity - description: Operations related to project management. Projects are used to logically group services. There is no limit to the number of projects you can create. name: Projects - description: Operations related to server management. Servers are the compute resources that run your services. name: Servers - description: Operations related to service management. Services are applications running on servers within a project. name: Services - description: Operations related to container registry credentials management. These credentials are used to authenticate with container registries when deploying services. name: Registry Credentials - description: Operations related to OAuth client metadata and authorization visibility. name: OAuth Clients