### POST /api/v1/users/{userId}/isos/{key} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi If "multipart=true", returns "uploadId" that is used to fetch upload URLs for each part with "GET /api/v1/users/{userId}/isos/{key}/{uploadId}/parts/{partNumber}". Use this URL to upload individual parts and get an "ETag" for each part. To finish, call "PUT /api/v1/users/{userId}/isos/{key}/{uploadId}" with the list of all uploaded parts, containing "ETag" and "partNumber" for each part. Part numbers start at 1. If "multipart=false", returns "presignedUrl" that is used to upload the ISO at once. ```markdown ### Parameters - **key** (string, path, required) - **multipart** (boolean, query, optional) ### Responses #### 201 - Successfully created a multipart upload **S3Upload** - **uploadId** (string) - **presignedUrl** (string) **S3Upload** ### Example Usage ```bash curl -X POST "/scp-core/api/v1/users/{userId}/isos/{key}?multipart=true" ``` ``` -------------------------------- ### POST /api/v1/users/{userId}/images/{key} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi If "multipart=true", returns "uploadId" that is used to fetch upload URLs for each part with "GET /api/v1/users/{userId}/images/{key}/{uploadId}/parts/{partNumber}". Use this URL to upload individual parts and get an "ETag" for each part. To finish, call "PUT /api/v1/users/{userId}/images/{key}/{uploadId}" with the list of all uploaded parts, containing "ETag" and "partNumber" for each part. Part numbers start at 1. If "multipart=false", returns "presignedUrl" that is used to upload the image at once. ```markdown ### Parameters - **key** (string, path, required) - **multipart** (boolean, query, optional) ### Responses #### 201 - Successfully created a multipart upload **S3Upload** - **uploadId** (string) - **presignedUrl** (string) **S3Upload** ### Example Usage ```bash curl -X POST "/scp-core/api/v1/users/{userId}/images/{key}?multipart=true" ``` ``` -------------------------------- ### GET /api/v1/servers Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers ```markdown ### Parameters - **firewallPolicyId** (integer (int32), query, optional): Filter by assigned firewall policy - **ip** (string, query, optional): Filter by ip - **limit** (integer (int32), query, optional) - **name** (string, query, optional): Filter by server name - **offset** (integer (int32), query, optional) - **q** (string, query, optional): Search ignoring case within the property name, nickname, or ipv4Addresses ### Responses #### 200 - Servers successfully loaded. - Array of ServerListMinimal - Array of ServerListMinimal ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers?firewallPolicyId=0&ip=string&limit=0&name=string&offset=0&q=string" ``` ``` -------------------------------- ### GET /api/v1/tasks Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/tasks ```markdown ### Parameters - **limit** (integer (int32), query, optional) - **offset** (integer (int32), query, optional) - **q** (string, query, optional): Search ignoring case within the properties name, uuid, server name, server nickname and server uuid - **serverId** (integer (int32), query, optional) - **state** (TaskState, query, optional): Filter by state (ROLLBACK is not supported) ### Responses #### 200 - Tasks successfully loaded. - Array of TaskInfoMinimal - Array of TaskInfoMinimal ### Example Usage ```bash curl -X GET "/scp-core/api/v1/tasks?limit=0&offset=0&q=string&serverId=0&state=value" ``` ``` -------------------------------- ### GET /api/v1/openapi Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/openapi ```markdown ### Responses #### 200 - OK ### Example Usage ```bash curl -X GET "/scp-core/api/v1/openapi" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/gpu-driver Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/gpu-driver ```markdown ### Parameters - **serverId** (integer (int32), path, required): Server id ### Responses #### 200 - Presigned download URL for GPU driver successfully generated. **S3DownloadInfos** - **filename** (string) - **presignedUrl** (string) - **presignedUrlValidityDurationInHours** (integer (int32)) - **headers** (object) **S3DownloadInfos** #### 400 - GPU driver or vGPU not available. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/gpu-driver" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/disks/supported-drivers Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/disks/supported-drivers ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Responses #### 200 - Supported storage drivers successfully loaded. - Array of StorageDriver - Array of StorageDriver #### 404 - Server not found. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/disks/supported-drivers" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/isos/{key}/{uploadId}/parts/{partNumber} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Call this endpoint for every part. Use the returned URL to upload the part and get an "ETag" from the HTTP headers in return. Once all parts are uploaded, call "PUT /api/v1/users/{userId}/isos/{key}/{uploadId}" with the list of all uploaded parts, containing "ETag" and "partNumber" for each part. ```markdown ### Parameters - **key** (string, path, required) - **partNumber** (integer (int32), path, required) - **uploadId** (string, path, required) ### Responses #### 200 - Successfully signed **S3SignPartURL** - **url** (string) **S3SignPartURL** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/isos/{key}/{uploadId}/parts/{partNumber}" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/metrics/disk Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/metrics/disk ```markdown ### Parameters - **serverId** (integer (int32), path, required) - **hours** (integer (int32), query, optional) ### Responses #### 200 - Metrics returned successfully. ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/metrics/disk?hours=0" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/rescuesystem Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/rescuesystem ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Responses #### 200 - Load rescue system status. **RescueSystemStatus** - **active** (boolean) - **password** (string) **RescueSystemStatus** #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/rescuesystem" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/snapshots Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/snapshots ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Responses #### 200 - Server snapshots successfully loaded. - Array of SnapshotMinimal - Array of SnapshotMinimal #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** #### 503 - Node is in maintenance mode. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/snapshots" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/images/{key}/{uploadId}/parts/{partNumber} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Call this endpoint for every part. Use the returned URL to upload the part and get an "ETag" from the HTTP headers in return. Once all parts are uploaded, call "PUT /api/v1/users/{userId}/images/{key}/{uploadId}" with the list of all uploaded parts, containing "ETag" and "partNumber" for each part. ```markdown ### Parameters - **key** (string, path, required) - **partNumber** (integer (int32), path, required) - **uploadId** (string, path, required) ### Responses #### 200 - Successfully signed **S3SignPartURL** - **url** (string) **S3SignPartURL** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/images/{key}/{uploadId}/parts/{partNumber}" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/metrics/cpu Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/metrics/cpu ```markdown ### Parameters - **serverId** (integer (int32), path, required) - **hours** (integer (int32), query, optional) ### Responses #### 200 - Metrics returned successfully. ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/metrics/cpu?hours=0" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/isos Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/isos ```markdown ### Responses #### 200 - ISOs successfully loaded. - Array of S3Object - Array of S3Object ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/isos" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/guest-agent Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/guest-agent ```markdown ### Parameters - **serverId** (integer (int32), path, required): Server id ### Responses #### 200 - Guest agent data for server successfully loaded. **GuestAgentData** - **guestAgentAvailable** (boolean) - **guestAgentData** (object): Information in json format about the qemu guest agent, which may change depending on the version. We do not guarantee backwards compatibility for this data. **GuestAgentData** #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/guest-agent" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/isos/{key} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/isos/{key} ```markdown ### Parameters - **key** (string, path, required) ### Responses #### 200 - URL successfully signed. **S3DownloadInfos** - **filename** (string) - **presignedUrl** (string) - **presignedUrlValidityDurationInHours** (integer (int32)) - **headers** (object) **S3DownloadInfos** #### 404 - ISO not found. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/isos/{key}" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/isoimages Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/isoimages ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Responses #### 200 - Server iso images successfully loaded. - Array of IsoImage - Array of IsoImage ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/isoimages" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/iso Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/iso ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Responses #### 200 - ISO returned successfully. **Iso** - **isoAttached** (boolean) - **iso** (string) **Iso** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/iso" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/snapshots/{name} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/snapshots/{name} ```markdown ### Parameters - **name** (string, path, required) - **serverId** (integer (int32), path, required) ### Responses #### 200 - Server snapshot successfully loaded. **Snapshot** - **uuid** (string) - **name** (string) - **description** (string) - **disks** (array (string)) - **creationTime** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **state** (string (NOSTATE|RUNNING|BLOCKED|PAUSED|SHUTDOWN|SHUTOFF|CRASHED|PMSUSPENDED|DISK_SNAPSHOT)) ("NOSTATE"|"RUNNING"|"BLOCKED"|"PAUSED"|"SHUTDOWN"|"SHUTOFF"|"CRASHED"|"PMSUSPENDED"|"DISK_SNAPSHOT") - **online** (boolean) - **exported** (boolean) - **exportedSizeInKiB** (integer (int64)) - **downloadInfos** (object) - **filename** (string) - **presignedUrl** (string) - **presignedUrlValidityDurationInHours** (integer (int32)) - **headers** (object) **Snapshot** #### 404 - Server or snapshot not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** #### 503 - Node is in maintenance mode. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/snapshots/{name}" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/imageflavours Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/imageflavours ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Responses #### 200 - Server image flavours successfully loaded. - Array of ImageFlavour - Array of ImageFlavour #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/imageflavours" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/interfaces/{mac}/firewall Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/interfaces/{mac}/firewall ```markdown ### Parameters - **mac** (string, path, required) - **serverId** (integer (int32), path, required) - **consistencyCheck** (boolean, query, optional): Check that the firewall rules have been applied. This will set the consistent attribute to true or false. ### Responses #### 200 - Firewall successfully loaded. **ServerFirewall** - **copiedPolicies** (array (FirewallPolicy)) Array items: - **id** (integer (int32)) - **name** (string) - **description** (string) - **rules** (array (FirewallRule)) Array items: - **numberOfEffectiveRules** (integer (int32)) - **description** (string) - **direction** (string (INGRESS|EGRESS)) (required) ("INGRESS"|"EGRESS") - **protocol** (string (TCP|UDP|ICMP|ICMPv6)) (required) ("TCP"|"UDP"|"ICMP"|"ICMPv6") - **action** (string (ACCEPT|DROP)) (required) ("ACCEPT"|"DROP") - **sources** (array (string)): Valid configurations are any IP (null or empty array), IPv4/IPv6 address (f.e. 192.168.10.1 or 0092:e10f:cb66:35a9::) or IPv4 network / IPv6 prefix (f.e. 192.168.10.0/24 or 0092:e10f:cb66:35a9::/64). If more than one IP/network is specified for the source, the destination must be empty (any) or contain only a single IP/network. If IPv4 addresses and IPv6 addresses are mixed in sources, destinations must empty (any). - **sourcePorts** (string): Valid configurations are any port (null), single port (f.e. 1234) or port range (f.e. 1024-65535). - **destinations** (array (string)): Valid configurations are any IP (null or empty array), IPv4/IPv6 address (f.e. 192.168.10.1 or 0092:e10f:cb66:35a9::) or IPv4 network / IPv6 prefix (f.e. 192.168.10.0/24 or 0092:e10f:cb66:35a9::/64). If more than one IP/network is specified for the destination, the source must be empty (any) or contain only a single IP/network. If IPv4 addresses and IPv6 addresses are mixed in destinations, sources must be empty (any). - **destinationPorts** (string): Valid configurations are any port (null), single port (f.e. 1234) or port range (f.e. 1024-65535). - **userPolicies** (array (FirewallPolicy)) Array items: - **ingressImplicitRule** (string (ACCEPT_ALL|DROP_ALL)) ("ACCEPT_ALL"|"DROP_ALL") - **egressImplicitRule** (string (ACCEPT_ALL|DROP_ALL)) ("ACCEPT_ALL"|"DROP_ALL") - **consistent** (boolean) - **active** (boolean) **ServerFirewall** #### 404 - Firewall not found. **ValidationError** - **code** (string) - **message** (string) - **errors** (array (FieldError)) Array items: - **field** (string) - **message** (string) **ValidationError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/interfaces/{mac}/firewall?consistencyCheck=false" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/interfaces/{mac} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/interfaces/{mac} ```markdown ### Parameters - **mac** (string, path, required) - **serverId** (integer (int32), path, required) - **loadRdns** (boolean, query, optional) ### Responses #### 200 - IPv4s of server successfully loaded. **Interface** - **mac** (string) - **driver** (string) - **speedInMBits** (integer (int32)) - **ipv4Addresses** (array (ServerIpv4)) Array items: - **id** (integer (int32)) - **interfaceMac** (string) - **type** (string (IP|ROUTED_IP)) ("IP"|"ROUTED_IP") - **ip** (string) - **cidr** (string) - **gateway** (string) - **rdns** (string) - **destinationIp** (string) - **editable** (boolean) - **ipv6Addresses** (array (ServerIpv6)) Array items: - **id** (integer (int32)) - **interfaceMac** (string) - **type** (string (IP|ROUTED_IP)) ("IP"|"ROUTED_IP") - **networkPrefix** (string) - **cidr** (string) - **gateway** (string) - **linkLocal** (boolean) - **rdns** (object) - **destinationIp** (string) - **editable** (boolean) **Interface** #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/interfaces/{mac}?loadRdns=true" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/images/{key} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/images/{key} ```markdown ### Parameters - **key** (string, path, required) ### Responses #### 200 - URL successfully signed. **S3DownloadInfos** - **filename** (string) - **presignedUrl** (string) - **presignedUrlValidityDurationInHours** (integer (int32)) - **headers** (object) **S3DownloadInfos** #### 404 - Image not found. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/images/{key}" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId}/disks/{diskName} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId}/disks/{diskName} ```markdown ### Parameters - **diskName** (string, path, required) - **serverId** (integer (int32), path, required) ### Responses #### 200 - Disk successfully loaded. **Disk** - **name** (string) - **allocationInMiB** (integer (int64)) - **capacityInMiB** (integer (int64)) - **storageDriver** (string (VIRTIO|VIRTIO_SCSI|IDE|SATA)) ("VIRTIO"|"VIRTIO_SCSI"|"IDE"|"SATA") **Disk** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}/disks/{diskName}" ``` ``` -------------------------------- ### Schema: Bootorder Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for Bootorder ```markdown ## Schema: Bootorder Schema definition for Bootorder **Type:** string ``` -------------------------------- ### Schema: ServerImageSetup Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for ServerImageSetup ```markdown ## Schema: ServerImageSetup Schema definition for ServerImageSetup **Type:** object - **imageFlavourId** (integer (int32)) - **diskName** (string) - **rootPartitionFullDiskSize** (boolean) - **hostname** (string) - **locale** (string) - **timezone** (string) - **additionalUserUsername** (string) - **additionalUserPassword** (string) - **sshKeyIds** (array (integer (int32))) - **sshPasswordAuthentication** (boolean) - **customScript** (string) - **emailToExecutingUser** (boolean) ``` -------------------------------- ### Schema: ServerStatePatch Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Optional query parameters: stateOption. ```markdown ## Schema: ServerStatePatch Optional query parameters: stateOption. **Type:** object - **state** (string (ON|OFF|SUSPENDED)) ("ON"|"OFF"|"SUSPENDED") ``` -------------------------------- ### GET /api/v1/maintenance Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/maintenance ```markdown ### Responses #### 200 - Maintenance successfully loaded. **Maintenance** - **startAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **finishAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") **Maintenance** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/maintenance" ``` ``` -------------------------------- ### GET /api/ping Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/ping ```markdown ### Responses #### 200 - Application available. ### Example Usage ```bash curl -X GET "/scp-core/api/ping" ``` ``` -------------------------------- ### Schema: ServerUserImageSetup Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for ServerUserImageSetup ```markdown ## Schema: ServerUserImageSetup Schema definition for ServerUserImageSetup **Type:** object - **userImageName** (string) (required) - **diskName** (string) - **emailNotification** (boolean) ``` -------------------------------- ### POST /api/v1/servers/{serverId}/interfaces/{mac}/firewall:reapply Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for POST /api/v1/servers/{serverId}/interfaces/{mac}/firewall:reapply ```markdown ### Parameters - **mac** (string, path, required) - **serverId** (integer (int32), path, required) ### Responses #### 202 - Firewall reapply successfully started. **TaskInfo** - **uuid** (string) - **name** (string) - **state** (string (PENDING|RUNNING|FINISHED|ERROR|WAITING_FOR_CANCEL|CANCELED|ROLLBACK)) ("PENDING"|"RUNNING"|"FINISHED"|"ERROR"|"WAITING_FOR_CANCEL"|"CANCELED"|"ROLLBACK") - **startedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **finishedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **executingUser** (object) - **id** (integer (int32)) - **username** (string) - **firstname** (string) - **lastname** (string) - **email** (string) - **company** (string) - **taskProgress** (object) - **expectedFinishedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **progressInPercent** (number (float)) - **message** (string) - **onRollback** (boolean) - **steps** (array (TaskInfoStep)) Array items: - **result** (object) - **responseError** (object) - **code** (string) - **message** (string) **TaskInfo** ### Example Usage ```bash curl -X POST "/scp-core/api/v1/servers/{serverId}/interfaces/{mac}/firewall:reapply" ``` ``` -------------------------------- ### Schema: ServerAutostartPatch Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for ServerAutostartPatch ```markdown ## Schema: ServerAutostartPatch Schema definition for ServerAutostartPatch **Type:** object - **autostart** (boolean) ``` -------------------------------- ### GET /api/v1/vlans/{vlanId} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/vlans/{vlanId} ```markdown ### Parameters - **vlanId** (integer (int32), path, required) ### Responses #### 200 - VLan successfully returned. **VLan** - **vlanId** (integer (int32)) - **name** (string) - **user** (object) - **id** (integer (int32)) - **username** (string) - **firstname** (string) - **lastname** (string) - **email** (string) - **company** (string) - **site** (object) - **id** (integer (int32)) - **city** (string) (required) - **bandwidthClass** (object) - **id** (integer (int32)) - **name** (string) (required) - **speedInMBit** (integer (int32)) (required) **VLan** #### 404 - VLan with id not found **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/vlans/{vlanId}" ``` ``` -------------------------------- ### GET /api/v1/users/{userId} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId} ```markdown ### Parameters - **userId** (integer (int32), path, required) ### Responses #### 200 - User successfully returned. **User** - **id** (integer (int32)) - **username** (string) - **firstname** (string) - **lastname** (string) - **email** (string) - **company** (string) - **language** (string) - **timeZone** (string) - **showNickname** (boolean) - **passwordlessMode** (boolean) - **secureMode** (boolean) - **secureModeAppAccess** (boolean) - **apiIpLoginRestrictions** (string) **User** #### 404 - User not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}" ``` ``` -------------------------------- ### GET /api/v1/tasks/{uuid} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/tasks/{uuid} ```markdown ### Parameters - **uuid** (string, path, required) ### Responses #### 200 - Task information successfully returned. **TaskInfo** - **uuid** (string) - **name** (string) - **state** (string (PENDING|RUNNING|FINISHED|ERROR|WAITING_FOR_CANCEL|CANCELED|ROLLBACK)) ("PENDING"|"RUNNING"|"FINISHED"|"ERROR"|"WAITING_FOR_CANCEL"|"CANCELED"|"ROLLBACK") - **startedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **finishedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **executingUser** (object) - **id** (integer (int32)) - **username** (string) - **firstname** (string) - **lastname** (string) - **email** (string) - **company** (string) - **taskProgress** (object) - **expectedFinishedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **progressInPercent** (number (float)) - **message** (string) - **onRollback** (boolean) - **steps** (array (TaskInfoStep)) Array items: - **result** (object) - **responseError** (object) - **code** (string) - **message** (string) **TaskInfo** #### 404 - Task not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/tasks/{uuid}" ``` ``` -------------------------------- ### GET /api/v1/servers/{serverId} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/servers/{serverId} ```markdown ### Parameters - **serverId** (integer (int32), path, required) - **loadServerLiveInfo** (boolean, query, optional) ### Responses #### 200 - Server successfully returned. **Server** - **id** (integer (int32)) - **name** (string) - **hostname** (string) - **nickname** (string) - **disabled** (boolean) - **template** (object) - **id** (integer (int32)) - **name** (string) (required) - **serverLiveInfo** (object) - **state** (string (NOSTATE|RUNNING|BLOCKED|PAUSED|SHUTDOWN|SHUTOFF|CRASHED|PMSUSPENDED|DISK_SNAPSHOT)) ("NOSTATE"|"RUNNING"|"BLOCKED"|"PAUSED"|"SHUTDOWN"|"SHUTOFF"|"CRASHED"|"PMSUSPENDED"|"DISK_SNAPSHOT") - **autostart** (boolean) - **uefi** (boolean) - **interfaces** (array (ServerInterface)) Array items: - **mac** (string) - **driver** (string) - **mtu** (integer (int32)) - **speedInMBits** (integer (int32)) - **rxMonthlyInMiB** (integer (int32)) - **txMonthlyInMiB** (integer (int32)) - **ipv4Addresses** (array (string)) - **ipv6LinkLocalAddresses** (array (string)) - **ipv6NetworkPrefixes** (array (string)) - **trafficThrottled** (boolean) - **vlanInterface** (boolean) - **vlanId** (integer (int32)) - **disks** (array (ServerDisk)) Array items: - **dev** (string) - **driver** (string) - **capacityInMiB** (integer (int64)) - **allocationInMiB** (integer (int64)) - **bootorder** (array (Bootorder)) - **requiredStorageOptimization** (string (INCONSISTENT|COMPAT|SLOW|FAST|NO)) ("INCONSISTENT"|"COMPAT"|"SLOW"|"FAST"|"NO") - **template** (string) - **uptimeInSeconds** (integer (int32)) - **currentServerMemoryInMiB** (integer (int64)) - **maxServerMemoryInMiB** (integer (int64)) - **cpuCount** (integer (int32)) - **cpuMaxCount** (integer (int32)) - **sockets** (integer (int32)) - **coresPerSocket** (integer (int32)) - **latestQemu** (boolean) - **configChanged** (boolean) - **osOptimization** (string (LINUX|WINDOWS|BSD|LINUX_LEGACY|UNKNOWN)) ("LINUX"|"WINDOWS"|"BSD"|"LINUX_LEGACY"|"UNKNOWN") - **nestedGuest** (boolean) - **machineType** (string) - **keyboardLayout** (string) - **cloudinitAttached** (boolean) - **ipv4Addresses** (array (IPv4AddressMinimal)) Array items: - **id** (integer (int32)) - **ip** (string) - **netmask** (string) - **gateway** (string) - **broadcast** (string) - **ipv6Addresses** (array (IPv6AddressMinimal)) Array items: - **id** (integer (int32)) - **networkPrefix** (string) - **networkPrefixLength** (integer (int32)) - **gateway** (string) - **site** (object) - **id** (integer (int32)) - **city** (string) (required) - **snapshotCount** (integer (int32)) - **maxCpuCount** (integer (int32)) - **disksAvailableSpaceInMiB** (integer (int64)) - **rescueSystemActive** (boolean) - **snapshotAllowed** (boolean) - **architecture** (string (AMD64|ARM64)) ("AMD64"|"ARM64") - **gpuDriverAvailable** (boolean) **Server** #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/servers/{serverId}?loadServerLiveInfo=true" ``` ``` -------------------------------- ### Schema: Site Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for Site ```markdown ## Schema: Site Schema definition for Site **Type:** object - **id** (integer (int32)) - **city** (string) (required) ``` -------------------------------- ### GET /api/v1/rdns/ipv6/{ip} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/rdns/ipv6/{ip} ```markdown ### Parameters - **ip** (string, path, required) ### Responses #### 200 - rDNS returned successfully. **Rdns** - **rdns** (string) **Rdns** #### 422 - Validation error. **ValidationError** - **code** (string) - **message** (string) - **errors** (array (FieldError)) Array items: - **field** (string) - **message** (string) **ValidationError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/rdns/ipv6/{ip}" ``` ``` -------------------------------- ### POST /api/v1/servers/{serverId}/snapshots:dryrun Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for POST /api/v1/servers/{serverId}/snapshots:dryrun ```markdown ### Parameters - **serverId** (integer (int32), path, required) ### Request Body **Content-Type:** application/json - **diskName** (string): Must be set if attribute onlineSnapshot is false. - **onlineSnapshot** (boolean) ### Responses #### 200 - Return empty list. Snapshot creation is possible with the chosen parameter. - Array of ResponseError - Array of ResponseError #### 400 - Return list of response errors that would be returned, if a snapshot would be created for this disk. Possible response codes: server.snapshot.create.error.disk, server.snapshot.create.error.template, server.snapshot.create.error.iso, server.snapshot.create.error.storageoptimization, server.snapshot.create.error.storagelimit, server.snapshot.create.error.online.diskselected, server.snapshot.create.error.online.uefi - Array of ResponseError - Array of ResponseError #### 404 - Server not found. **NotFoundError** - **code** (string) - **message** (string) **NotFoundError** ### Example Usage ```bash curl -X POST "/scp-core/api/v1/servers/{serverId}/snapshots:dryrun" \ -H "Content-Type: application/json" \ -d '{ "diskName": "string", "onlineSnapshot": "true" }' ``` ``` -------------------------------- ### GET /api/v1/rdns/ipv4/{ip} Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/rdns/ipv4/{ip} ```markdown ### Parameters - **ip** (string, path, required) ### Responses #### 200 - rDNS returned successfully. **Rdns** - **rdns** (string) **Rdns** #### 422 - Validation error. **ValidationError** - **code** (string) - **message** (string) - **errors** (array (FieldError)) Array items: - **field** (string) - **message** (string) **ValidationError** ### Example Usage ```bash curl -X GET "/scp-core/api/v1/rdns/ipv4/{ip}" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/vlans Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/vlans ```markdown ### Parameters - **serverId** (integer (int32), query, optional): Filter VLans of a user by server id ### Responses #### 200 - VLans successfully returned. - Array of VLan - Array of VLan ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/vlans?serverId=0" ``` ``` -------------------------------- ### POST /api/v1/servers/{serverId}/storageoptimization Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for POST /api/v1/servers/{serverId}/storageoptimization ```markdown ### Parameters - **serverId** (integer (int32), path, required) - **disks** (array (string), query, optional) - **startAfterOptimization** (boolean, query, optional) ### Responses #### 202 - Server storage optimization successfully started. **TaskInfo** - **uuid** (string) - **name** (string) - **state** (string (PENDING|RUNNING|FINISHED|ERROR|WAITING_FOR_CANCEL|CANCELED|ROLLBACK)) ("PENDING"|"RUNNING"|"FINISHED"|"ERROR"|"WAITING_FOR_CANCEL"|"CANCELED"|"ROLLBACK") - **startedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **finishedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **executingUser** (object) - **id** (integer (int32)) - **username** (string) - **firstname** (string) - **lastname** (string) - **email** (string) - **company** (string) - **taskProgress** (object) - **expectedFinishedAt** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **progressInPercent** (number (float)) - **message** (string) - **onRollback** (boolean) - **steps** (array (TaskInfoStep)) Array items: - **result** (object) - **responseError** (object) - **code** (string) - **message** (string) **TaskInfo** #### 503 - Node is in maintenance mode. **ResponseError** - **code** (string) - **message** (string) **ResponseError** ### Example Usage ```bash curl -X POST "/scp-core/api/v1/servers/{serverId}/storageoptimization?disks=item1,item2&startAfterOptimization=false" ``` ``` -------------------------------- ### GET /api/v1/users/{userId}/ssh-keys Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/ssh-keys ```markdown ### Responses #### 200 - SSH keys successfully loaded. - Array of SSHKey - Array of SSHKey ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/ssh-keys" ``` ``` -------------------------------- ### Schema: Disk Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for Disk ```markdown ## Schema: Disk Schema definition for Disk **Type:** object - **name** (string) - **allocationInMiB** (integer (int64)) - **capacityInMiB** (integer (int64)) - **storageDriver** (string (VIRTIO|VIRTIO_SCSI|IDE|SATA)) ("VIRTIO"|"VIRTIO_SCSI"|"IDE"|"SATA") ``` -------------------------------- ### GET /api/v1/users/{userId}/logs Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/logs ```markdown ### Parameters - **userId** (integer (int32), path, required): User id - **limit** (integer (int32), query, optional) - **offset** (integer (int32), query, optional) ### Responses #### 200 - User logs successfully loaded. - Array of Log - Array of Log ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/logs?limit=0&offset=0" ``` ``` -------------------------------- ### Schema: Snapshot Source: https://servercontrolpanel.de/scp-core/api/v1/openapi Schema definition for Snapshot ```markdown ## Schema: Snapshot Schema definition for Snapshot **Type:** object - **uuid** (string) - **name** (string) - **description** (string) - **disks** (array (string)) - **creationTime** (string (date-time)) (example: "2022-03-10T16:15:50Z") - **state** (string (NOSTATE|RUNNING|BLOCKED|PAUSED|SHUTDOWN|SHUTOFF|CRASHED|PMSUSPENDED|DISK_SNAPSHOT)) ("NOSTATE"|"RUNNING"|"BLOCKED"|"PAUSED"|"SHUTDOWN"|"SHUTOFF"|"CRASHED"|"PMSUSPENDED"|"DISK_SNAPSHOT") - **online** (boolean) - **exported** (boolean) - **exportedSizeInKiB** (integer (int64)) - **downloadInfos** (object) - **filename** (string) - **presignedUrl** (string) - **presignedUrlValidityDurationInHours** (integer (int32)) - **headers** (object) ``` -------------------------------- ### GET /api/v1/users/{userId}/images Source: https://servercontrolpanel.de/scp-core/api/v1/openapi API endpoint for GET /api/v1/users/{userId}/images ```markdown ### Responses #### 200 - Images successfully loaded. - Array of S3Object - Array of S3Object ### Example Usage ```bash curl -X GET "/scp-core/api/v1/users/{userId}/images" ``` ```