API Documentation

A documentation for developer

Web Application

POST Create web application

HTTP Request

POST https://manage.runcloud.io/base-api/servers/<server.id>/webapps

Arguments

Parameters Required Description
webApplicationName YES Name of the Web Application
domainName YES Domain name for the Web Application
user YES The System User who will own this Web Application. You need to use the username. E.g: runcloud
publicPath NO Append a public path to a Web Application. If not defined, Web Application root path will be used as publicPath
phpVersion YES You can get this from server._extra.php.versions
stack YES "hybrid", "nativenginx", or "customnginx"
stackMode YES "production" or "development"
clickjackingProtection YES Boolean true or false
xssProtection YES Boolean true or false
mimeSniffingProtection YES Boolean true or false
processManager YES "dynamic", "ondemand", or "static"
processManagerStartServers YES if processManager is "dynamic" Must be integer
processManagerMinSpareServers YES if processManager is "dynamic" Must be integer
processManagerMaxSpareServers YES if processManager is "dynamic" Must be integer
processManagerMaxChildren YES Must be integer
processManagerMaxRequests YES Must be integer
openBasedir NO If you left this empty, open_basedir will be empty. To add a default value, use "/home/<systemuser.username>/webapps/<webApp.name>:/var/lib/php/session:/tmp"
timezone YES You can get this from Static Data for Timezone
disableFunctions NO If you left this empty, no php functions will be disabled. If you wanted to supply the default value, see the request example
maxExecutionTime YES Integer. Use 0 for unlimited
maxInputTime YES Integer. Use 0 for unlimited
maxInputVars YES Integer. Use 0 for unlimited
memoryLimit YES Integer. Supplied value is in MB.
postMaxSize YES Integer. Supplied value is in MB. Use 0 for unlimited
uploadMaxFilesize YES Integer. Supplied value is in MB. Use 0 for unlimited
sessionGcMaxlifetime YES Integer. Supplied value is in seconds
allowUrlFopen YES Boolean true or false

Request

curl -X POST "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "webApplicationName": "myfirstwebapp",
        "domainName": "example.com",
        "user": "runcloud",
        "publicPath": "/public",
        "phpVersion": "php72rc",
        "stack": "nativenginx",
        "stackMode": "production",
        "clickjackingProtection": true,
        "xssProtection": true,
        "mimeSniffingProtection": true,
        "processManager": "ondemand",
        "processManagerMaxChildren": 50,
        "processManagerMaxRequests": 500,
        "openBasedir": "/home/runcloud/webapps/myfirstwebapp:/var/lib/php/session:/tmp",
        "timezone": "Asia/Kuala_Lumpur",
        "disableFunctions": "getmyuid,passthru,leak,listen,diskfreespace,tmpfile,link,ignore_user_abord,shell_exec,dl,set_time_limit,exec,system,highlight_file,source,show_source,fpassthru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,proc_open,proc_close,proc_nice,proc_terminate,escapeshellcmd,ini_alter,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,symlink,posix_geteuid,ini_alter,socket_listen,socket_create_listen,socket_read,socket_create_pair,stream_socket_server",
        "maxExecutionTime": 30,
        "maxInputTime": 60,
        "maxInputVars": 1000,
        "memoryLimit": 256,
        "postMaxSize": 256,
        "uploadMaxFilesize": 256,
        "sessionGcMaxlifetime": 1440,
        "allowUrlFopen": true
    }'

Response

{
    "message": "Succesfully added new Web Application myfirstwebapp.",
    "redirect": "\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/show"
}

GET List web applications

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps

Arguments

Parameters Required Description
page NO Page number of the resources
search NO Searching string if you wanted to search from list of Web Apps

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps?page=1" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "data": [
        {
            "id": "bZ0Ka4eK2PGR",
            "server_user_id": "LR6YA0XA71P8",
            "server_user_username": "runcloud",
            "name": "myfirstwebapp",
            "rootPath": "\/home\/runcloud\/webapps\/myfirstwebapp",
            "publicPath": "\/home\/runcloud\/webapps\/myfirstwebapp\/public",
            "phpVersion": "php72rc",
            "stack": "nativenginx",
            "stack_humanize": "Native NGINX (You won't be able to use .htaccess but it is faster)",
            "stackMode": "production",
            "defaultServer": false,
            "restorationStatus": "IDLE",
            "created_at": "2018-03-01 16:41:58",
            "created_at_humanize": "3 minutes ago",
            "updated_at": "2018-03-01 16:41:58",
            "updated_at_humanize": "3 minutes ago",
            "_links": {
                "delete": {
                    "method": "delete",
                    "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR"
                },
                "setasdefault": {
                    "method": "post",
                    "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/default"
                },
                "removeasdefault": {
                    "method": "delete",
                    "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/default"
                },
                "rebuild": {
                    "method": "patch",
                    "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/rebuild"
                }
            },
            "domains": [
                {
                    "id": "LR6YA0XgA71P",
                    "name": "example.com",
                    "_links": {
                        "delete": {
                            "method": "delete",
                            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/domains\/LR6YA0XgA71P"
                        }
                    }
                }
            ]
        }
    ],
    "meta": {
        "pagination": {
            "total": 1,
            "count": 1,
            "per_page": 20,
            "current_page": 1,
            "total_pages": 1,
            "links": []
        }
    }
}

GET Web application object

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "id": "bZ0Ka4eK2PGR",
    "server_user_id": "LR6YA0XA71P8",
    "server_user_username": "runcloud",
    "name": "myfirstwebapp",
    "rootPath": "\/home\/runcloud\/webapps\/myfirstwebapp",
    "publicPath": "\/home\/runcloud\/webapps\/myfirstwebapp\/public",
    "phpVersion": "php72rc",
    "stack": "nativenginx",
    "stackMode": "production",
    "stack_humanize": "Native NGINX (You won't be able to use .htaccess but it is faster)",
    "defaultServer": false,
    "restorationStatus": "IDLE",
    "created_at": "2018-03-01 16:41:58",
    "created_at_humanize": "18 minutes ago",
    "updated_at": "2018-03-01 16:41:58",
    "updated_at_humanize": "18 minutes ago",
    "_links": {
        "delete": {
            "method": "delete",
            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR"
        },
        "setasdefault": {
            "method": "post",
            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/default"
        },
        "removeasdefault": {
            "method": "delete",
            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/default"
        },
        "rebuild": {
            "method": "patch",
            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/rebuild"
        }
    }
}

POST Set as default

HTTP Request

POST https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/default

Request

curl -X POST "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/default" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "Successfully set Web Application myfirstwebapp as default Web Application."
}

DELETE Remove from default

HTTP Request

DELETE https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/default

Request

curl -X DELETE "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/default" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "Successfully remove default Web Application. Any access to your server via IP Address will be displaying 404 page."
}

PATCH Rebuild web application

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/rebuild

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/rebuild" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "Your Web Application will be rebuilt shortly."
}

DELETE Delete web application

HTTP Request

DELETE https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>

Arguments

Parameters Required Description
webApplicationName YES Name of the web application

Request

curl -X DELETE "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "webApplicationName": "myfirstwebapp"
    }'

Response

{
    "message": "Succesfully deleted Web Application myfirstwebapp."
}

POST GIT - Cloning repository

The timeout for cloning your script is around TWO MINUTES

HTTP Request

POST https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/git

Arguments

Parameters Required Description
provider YES "custom", "bitbucket", "github", "gitlab"
repository YES Must use this format: <username>/<repository>
branch YES Repository branch to clone
gitUser YES if provider is "custom" Username of git server user
gitHost YES if provider is "custom" Hostname of your GIT server

Request

curl -X POST "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/git" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "provider": "github",
        "repository": "coolcodemy/test",
        "branch": "master"
    }'

Response

{
    "message": "Successfully attached GIT repository to Web Application myfirstwebapp.",
    "git": {
        "id": "G9yX2vJ728kL",
        "provider": "github",
        "host": null,
        "user": null,
        "repository": "coolcodemy\/test",
        "repositoryURL": "https:\/\/github.com\/coolcodemy\/test",
        "branch": "master",
        "webhookURL": "https:\/\/manage.runcloud.io\/webhooks\/git\/DXtHZHB7fTUQ43Wu3AOuN8xb1519893718\/14caxEQhgBwY1YHbg4mBCmbLiSFQVnEf",
        "autoDeploy": false,
        "deployScript": "",
        "created_at": "2018-03-01 20:55:28",
        "created_at_humanize": "0 seconds ago",
        "_links": {
            "changebranch": {
                "method": "patch",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL\/branch"
            },
            "updatescript": {
                "method": "patch",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL\/script"
            },
            "manualdeploy": {
                "method": "put",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL\/script"
            },
            "delete": {
                "method": "delete",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL"
            }
        },
        "webhookHistories": [],
        "webhookErrors": []
    }
}

GET GIT - Object

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/git

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/git" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "git": {
        "id": "G9yX2vJ728kL",
        "provider": "github",
        "host": null,
        "user": null,
        "repository": "coolcodemy\/test",
        "repositoryURL": "https:\/\/github.com\/coolcodemy\/test",
        "branch": "master",
        "webhookURL": "https:\/\/manage.runcloud.io\/webhooks\/git\/DXtHZHB7fTUQ43Wu3AOuN8xb1519893718\/14caxEQhgBwY1YHbg4mBCmbLiSFQVnEf",
        "autoDeploy": false,
        "deployScript": "",
        "created_at": "2018-03-01 20:55:28",
        "created_at_humanize": "5 minutes ago",
        "_links": {
            "changebranch": {
                "method": "patch",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL\/branch"
            },
            "updatescript": {
                "method": "patch",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL\/script"
            },
            "manualdeploy": {
                "method": "put",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL\/script"
            },
            "delete": {
                "method": "delete",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/git\/G9yX2vJ728kL"
            }
        },
        "webhookHistories": [],
        "webhookErrors": []
    },
    "hasScriptInstaller": false
}

PATCH GIT - Change branch

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/git/<git.id>/branch

Arguments

Parameters Required Description
branch YES Available GIT branch for your repository

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/git/G9yX2vJ728kL/branch" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "branch": "development"
    }'

Response

{
    "message": "Successfully changed branch to development.",
    "resetForm": false
}

PATCH GIT - Customize deployment script

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/git/<git.id>/script

Arguments

Parameters Required Description
autoDeploy YES Boolean true or false to enable deployment script
deployScript NO The script that will be running when GIT Webhook URL got a hit

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/git/G9yX2vJ728kL/script" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "autoDeploy": true,
        "deployScript": "git merge\nphp artisan view:clear"
    }'

Response

{
    "message": "Deployment script updated",
    "resetForm": false
}

PUT GIT - Force deploy using deployment script

HTTP Request

PUT https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/git/<git.id>/script

Request

curl -X PUT "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/git/G9yX2vJ728kL/script" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "The deployment script will be running inside your server shortly."
}

DELETE GIT - Delete

HTTP Request

DELETE https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/git/<git.id>

Arguments

Parameters Required Description
repository YES The repository of the attached GIT

Request

curl -X DELETE "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/git/G9yX2vJ728kL" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "repository": "coolcodemy/test"
    }'

Response

{
    "message": "Successfully deleted GIT repository coolcodemy\/test from your server."
}

POST Script Installer - Install

HTTP Request

POST https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/installer

Arguments

Parameters Required Description
scriptName YES You can get this from Static Data for Available Script Installer

Request

curl -X POST "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/installer" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "scriptName": "wordpress"
    }'

Response

{
    "message": "Successfully triggered Wordpress installation. Your script will be ready in a few moments."
}

GET Script Installer - Object

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/installer

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/installer" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "script": {
        "id": "4QEwaDWA791y",
        "name": "WordPress",
        "_links": {
            "delete": {
                "method": "delete",
                "link": "https:\/\/runcloud.dev\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/installer\/4QEwaDWA791y"
            }
        }
    },
    "hasGit": false
}

DELETE Script Installer - Delete

HTTP Request

DELETE https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/installer/<installer.id>

Arguments

Parameters Required Description
typeYes YES You need to send "YES" string

Request

curl -X DELETE "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/installer/4QEwaDWA791y" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "typeYes": "YES"
    }'

Response

{
    "message": "Successfully deleted wordpress from your Web Application."
}

POST Domain Name - Add

HTTP Request

POST https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/domainname

Arguments

Parameters Required Description
domainName YES The domain name you would like to add

Request

curl -X POST "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/domainname" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "domainName": "www.example.com"
    }'

Response

{
    "message": "Successfully added new domain www.example.com to Web Application myfirstwebapp."
}

GET Domain Name - List

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/domainname

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/domainname" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "data": [
        {
            "id": "LR6YA0XgA71P",
            "name": "example.com",
            "_links": {
                "delete": {
                    "method": "delete",
                    "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/domainname\/LR6YA0XgA71P"
                }
            }
        },
        {
            "id": "QbyMAWZklEvL",
            "name": "www.example.com",
            "_links": {
                "delete": {
                    "method": "delete",
                    "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/domainname\/QbyMAWZklEvL"
                }
            }
        }
    ]
}

DELETE Domain Name - Delete

HTTP Request

DELETE https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/domainname/<domain.id>

Request

curl -X DELETE "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/domainname/QbyMAWZklEvL" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "Successfully removed domain www.example.com from Web Application myfirstwebapp."
}

POST SSL - Install

HTTP Request

POST https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/ssl

Arguments

Parameters Required Description
provider YES "letsencrypt" or "custom"
enableHttp YES Boolean true or false
enableHsts YES Boolean true or false
http2 YES Boolean true or false (Hardcoded to TRUE for now)
brotli YES Boolean true or false (Hardcoded to TRUE for now)
authorizationMethod YES if provider is "letsencrypt" "http-01" or "dns-01"
externalApi YES if provider is "letsencrypt" and authorizationMethod is "dns-01" Id of the 3rd Party API to use
environment YES if provider is "letsencrypt" "live" or "staging" environment
privateKey YES if provider is "custom" SSL Private Key
certificate YES if provider is "custom" SSL Certificate

Request

curl -X POST "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/ssl" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "provider": "custom",
        "enableHttp": false,
        "enableHsts": true,
        "privateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDem6F7HLVxStq/\n/t6aThEEntPgIjjgj1wL03hVTIHbDhzZ/hWh7KEo5nQCdL+HMJIGnpM/7htEVos0\nzkVT2QchP6p0p9PR1rY3+SVoxEcltJ9xug8EZ7Zut8F5VHjbNsTi7W0S3irj6MCg\nuVkSehE4PeV9P+zeXf+0Aa7KwDiQHI1krvqY9DQda4IGyPeZI3cFbzFBYHhUK5am\nLU3iSpwNdBPWsgxQNNtsFnfOvmhuxxZ8B55TKATAVZ6UDI4DR1ysyCsJv8bajWro\nCEIQ61dyJb+H5eyTrd86qN46mYgGLNdoClOhQ4QISoz8mhWzFf/oIUbiHzBpslvo\nrn+YPEvDAgMBAAECggEAXOcIqo+dra12w8ADeNRxx8LdW+IMaLOLz6euxbKLUzd9\nlQC0WIKf86jR66B7uljr6HVPsNOXb5rKt/wJ9OdTUW33nn3YKe/41j1VfnbD1pme\nHWFwGP+LpINt7EvzsFEYNDiwV7p+neUqVyljYhGtlBJI70+5dEg4ihBVuWolcQai\nH06XxdT72O41RKr/uSzKcuxZBQhdD9Y505UVMsHOjFu0HMUMZ/wk7msZg4nyYmfg\nW0h/LbzmzblbEzF+wd4PYTE5FC4SRiS1/E8aDe78Rg7ww7pxgW9OvGlMWv4lrfco\nBO430h+VBodQnHHaTj4lV59pYhQGvlHwkSDEHpuWAQKBgQD3Jh6sIY97kOCJ9oET\nlhsBZ6JICiqmsieWRuSmMoiErBezVZ9QS5C5GOL4GkPsc7Bw0s6RB+9TZsEPS3DH\nglpzr5a89d3BRlkSNFSSHeq/W8/s8DYvMoQeapYTr4ijH97y18IjChozx5fcmzQS\nY8J0hYOruabZgyjBvSABNxokwwKBgQDmlIR3Mj7YQsSyyvgOp0r0e1u2zNnnm5n6\nC/kZR1SuhVjQ2tdwPafqjdSoFimUMPrSmJBT6U7LqfEtRaByR9xEHR0d3qb8Ofni\nSngD4NWmPSX6GnWwJVsPHDSqn6JW1eEdAwMisB7F4FhRmvdffmIaVI89HZSuv5gl\n/uEQRGbNAQKBgH+ODQaJy6PaggiyUKvrLMTs17SWiqy+BfBpZljge9T9fL3x0ud+\nGJNvZLTn2WaPzuBr7HCtx7cjsUBTj0Fo5YYPeZzMyEaYKCBdIcjH6AAbQpTm5RA2\n4jlQiWRflAWczVRIRsoOzLcsrBQPhjB3jETXI73dc1+PcdmL4pi996BBAoGAEuob\n86srfJH9kK0VrB4NCAEWhOhI97bL6rcQuAIh8C8AGiHZiluEark3uJIY1w8thBj/\nveJllE9ceVo8zyMV7oB04v5gtFANL4LsVWUcIYbilqGVBd4KmjK2H0j5CCaDUN3u\nY+oOnCzLEeakZDD52y8UkO7cQ3l0AanmzG7QAAECgYBVTTgYqAoUG6wVuQw5Jrnz\n9/ItvU4zPKDadnoIRgMZq+wXo8f8dMSzNjlylv+vQF99E9NRMMIVbyeH4/q5ANGl\nkcFwSyAhE7z+uSV0Ho6OqZVqis8e9rcin9+opC5BePQAjgAyAYciXpE95YXQcYMM\nlXCUsdHQomIAwFN2TNWohQ==\n-----END PRIVATE KEY-----",
        "certificate": "-----BEGIN CERTIFICATE-----\nMIIDuDCCAqACCQC6DH7qQzl7LTANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMM\nD3d3dy5leGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRaGVsbG9AcnVuY2xvdWQu\naW8wHhcNMTgwMzAyMDMyNjI3WhcNMTkwMzAyMDMyNjI3WjCBnTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMM\nD3d3dy5leGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRaGVsbG9AcnVuY2xvdWQu\naW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDem6F7HLVxStq//t6a\nThEEntPgIjjgj1wL03hVTIHbDhzZ/hWh7KEo5nQCdL+HMJIGnpM/7htEVos0zkVT\n2QchP6p0p9PR1rY3+SVoxEcltJ9xug8EZ7Zut8F5VHjbNsTi7W0S3irj6MCguVkS\nehE4PeV9P+zeXf+0Aa7KwDiQHI1krvqY9DQda4IGyPeZI3cFbzFBYHhUK5amLU3i\nSpwNdBPWsgxQNNtsFnfOvmhuxxZ8B55TKATAVZ6UDI4DR1ysyCsJv8bajWroCEIQ\n61dyJb+H5eyTrd86qN46mYgGLNdoClOhQ4QISoz8mhWzFf/oIUbiHzBpslvorn+Y\nPEvDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAA+HxyKESRAzUmDt1aE0v6u95QBB\niGGhVszAviF6ZKaf6bov0Ozq+67Pq+3Tksu685Giux+ZSWIlDi3zL4NWz+rcvIhO\nKoVAPPYawIAhOszSg3IGD0eVP1I7al5sME7GZPM3kPwxTNCv8z91mPaSyI5/k88c\nm62Fijn4k92kWDOMF7ANFST6JhujB8OitHLFjB1Rapi0H0TpgAtiHCNYcgmFL66e\nlOkmbGzzjdQGIGfY7H3owmkuI5FMycV5TYDkLChasYSlW0sQSJD1j1CiM+qSAE7Y\npWiuEVjrSYgJlcQfBnpQjkjAp2F4bp0TDQT7e+MNCOfA+lUdSWKyZVTLHF0=\n-----END CERTIFICATE-----"
    }'

Response

{
    "message": "Successfully added SSL\/TLS to Web Application myfirstwebapp.",
    "ssl": {
        "id": "rjJ8lrNl1pnb",
        "method": "custom",
        "method_humanize": "Custom",
        "enableHTTP": "No",
        "enableHSTS": "Yes",
        "validUntil": null,
        "renewal_date": null,
        "runcloudAcme": false,
        "authorizationMethod": null,
        "certificate": "-----BEGIN CERTIFICATE-----\nMIIDuDCCAqACCQC6DH7qQzl7LTANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMM\nD3d3dy5leGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRaGVsbG9AcnVuY2xvdWQu\naW8wHhcNMTgwMzAyMDMyNjI3WhcNMTkwMzAyMDMyNjI3WjCBnTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMM\nD3d3dy5leGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRaGVsbG9AcnVuY2xvdWQu\naW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDem6F7HLVxStq\/\/t6a\nThEEntPgIjjgj1wL03hVTIHbDhzZ\/hWh7KEo5nQCdL+HMJIGnpM\/7htEVos0zkVT\n2QchP6p0p9PR1rY3+SVoxEcltJ9xug8EZ7Zut8F5VHjbNsTi7W0S3irj6MCguVkS\nehE4PeV9P+zeXf+0Aa7KwDiQHI1krvqY9DQda4IGyPeZI3cFbzFBYHhUK5amLU3i\nSpwNdBPWsgxQNNtsFnfOvmhuxxZ8B55TKATAVZ6UDI4DR1ysyCsJv8bajWroCEIQ\n61dyJb+H5eyTrd86qN46mYgGLNdoClOhQ4QISoz8mhWzFf\/oIUbiHzBpslvorn+Y\nPEvDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAA+HxyKESRAzUmDt1aE0v6u95QBB\niGGhVszAviF6ZKaf6bov0Ozq+67Pq+3Tksu685Giux+ZSWIlDi3zL4NWz+rcvIhO\nKoVAPPYawIAhOszSg3IGD0eVP1I7al5sME7GZPM3kPwxTNCv8z91mPaSyI5\/k88c\nm62Fijn4k92kWDOMF7ANFST6JhujB8OitHLFjB1Rapi0H0TpgAtiHCNYcgmFL66e\nlOkmbGzzjdQGIGfY7H3owmkuI5FMycV5TYDkLChasYSlW0sQSJD1j1CiM+qSAE7Y\npWiuEVjrSYgJlcQfBnpQjkjAp2F4bp0TDQT7e+MNCOfA+lUdSWKyZVTLHF0=\n-----END CERTIFICATE-----",
        "privateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDem6F7HLVxStq\/\n\/t6aThEEntPgIjjgj1wL03hVTIHbDhzZ\/hWh7KEo5nQCdL+HMJIGnpM\/7htEVos0\nzkVT2QchP6p0p9PR1rY3+SVoxEcltJ9xug8EZ7Zut8F5VHjbNsTi7W0S3irj6MCg\nuVkSehE4PeV9P+zeXf+0Aa7KwDiQHI1krvqY9DQda4IGyPeZI3cFbzFBYHhUK5am\nLU3iSpwNdBPWsgxQNNtsFnfOvmhuxxZ8B55TKATAVZ6UDI4DR1ysyCsJv8bajWro\nCEIQ61dyJb+H5eyTrd86qN46mYgGLNdoClOhQ4QISoz8mhWzFf\/oIUbiHzBpslvo\nrn+YPEvDAgMBAAECggEAXOcIqo+dra12w8ADeNRxx8LdW+IMaLOLz6euxbKLUzd9\nlQC0WIKf86jR66B7uljr6HVPsNOXb5rKt\/wJ9OdTUW33nn3YKe\/41j1VfnbD1pme\nHWFwGP+LpINt7EvzsFEYNDiwV7p+neUqVyljYhGtlBJI70+5dEg4ihBVuWolcQai\nH06XxdT72O41RKr\/uSzKcuxZBQhdD9Y505UVMsHOjFu0HMUMZ\/wk7msZg4nyYmfg\nW0h\/LbzmzblbEzF+wd4PYTE5FC4SRiS1\/E8aDe78Rg7ww7pxgW9OvGlMWv4lrfco\nBO430h+VBodQnHHaTj4lV59pYhQGvlHwkSDEHpuWAQKBgQD3Jh6sIY97kOCJ9oET\nlhsBZ6JICiqmsieWRuSmMoiErBezVZ9QS5C5GOL4GkPsc7Bw0s6RB+9TZsEPS3DH\nglpzr5a89d3BRlkSNFSSHeq\/W8\/s8DYvMoQeapYTr4ijH97y18IjChozx5fcmzQS\nY8J0hYOruabZgyjBvSABNxokwwKBgQDmlIR3Mj7YQsSyyvgOp0r0e1u2zNnnm5n6\nC\/kZR1SuhVjQ2tdwPafqjdSoFimUMPrSmJBT6U7LqfEtRaByR9xEHR0d3qb8Ofni\nSngD4NWmPSX6GnWwJVsPHDSqn6JW1eEdAwMisB7F4FhRmvdffmIaVI89HZSuv5gl\n\/uEQRGbNAQKBgH+ODQaJy6PaggiyUKvrLMTs17SWiqy+BfBpZljge9T9fL3x0ud+\nGJNvZLTn2WaPzuBr7HCtx7cjsUBTj0Fo5YYPeZzMyEaYKCBdIcjH6AAbQpTm5RA2\n4jlQiWRflAWczVRIRsoOzLcsrBQPhjB3jETXI73dc1+PcdmL4pi996BBAoGAEuob\n86srfJH9kK0VrB4NCAEWhOhI97bL6rcQuAIh8C8AGiHZiluEark3uJIY1w8thBj\/\nveJllE9ceVo8zyMV7oB04v5gtFANL4LsVWUcIYbilqGVBd4KmjK2H0j5CCaDUN3u\nY+oOnCzLEeakZDD52y8UkO7cQ3l0AanmzG7QAAECgYBVTTgYqAoUG6wVuQw5Jrnz\n9\/ItvU4zPKDadnoIRgMZq+wXo8f8dMSzNjlylv+vQF99E9NRMMIVbyeH4\/q5ANGl\nkcFwSyAhE7z+uSV0Ho6OqZVqis8e9rcin9+opC5BePQAjgAyAYciXpE95YXQcYMM\nlXCUsdHQomIAwFN2TNWohQ==\n-----END PRIVATE KEY-----",
        "staging": false
        "_links": {
            "redeploy": {
                "method": "patch",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/ssl"
            },
            "delete": {
                "method": "delete",
                "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/ssl\/rjJ8lrNl1pnb"
            }
        }
    }
}

GET SSL - Object

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/ssl

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/ssl" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "id": "rjJ8lrNl1pnb",
    "method": "custom",
    "method_humanize": "Custom",
    "enableHTTP": "No",
    "enableHSTS": "Yes",
    "validUntil": null,
    "renewal_date": null,
    "runcloudAcme": false,
    "authorizationMethod": null,
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIDuDCCAqACCQC6DH7qQzl7LTANBgkqhkiG9w0BAQsFADCBnTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMM\nD3d3dy5leGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRaGVsbG9AcnVuY2xvdWQu\naW8wHhcNMTgwMzAyMDMyNjI3WhcNMTkwMzAyMDMyNjI3WjCBnTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMM\nD3d3dy5leGFtcGxlLmNvbTEgMB4GCSqGSIb3DQEJARYRaGVsbG9AcnVuY2xvdWQu\naW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDem6F7HLVxStq\/\/t6a\nThEEntPgIjjgj1wL03hVTIHbDhzZ\/hWh7KEo5nQCdL+HMJIGnpM\/7htEVos0zkVT\n2QchP6p0p9PR1rY3+SVoxEcltJ9xug8EZ7Zut8F5VHjbNsTi7W0S3irj6MCguVkS\nehE4PeV9P+zeXf+0Aa7KwDiQHI1krvqY9DQda4IGyPeZI3cFbzFBYHhUK5amLU3i\nSpwNdBPWsgxQNNtsFnfOvmhuxxZ8B55TKATAVZ6UDI4DR1ysyCsJv8bajWroCEIQ\n61dyJb+H5eyTrd86qN46mYgGLNdoClOhQ4QISoz8mhWzFf\/oIUbiHzBpslvorn+Y\nPEvDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAA+HxyKESRAzUmDt1aE0v6u95QBB\niGGhVszAviF6ZKaf6bov0Ozq+67Pq+3Tksu685Giux+ZSWIlDi3zL4NWz+rcvIhO\nKoVAPPYawIAhOszSg3IGD0eVP1I7al5sME7GZPM3kPwxTNCv8z91mPaSyI5\/k88c\nm62Fijn4k92kWDOMF7ANFST6JhujB8OitHLFjB1Rapi0H0TpgAtiHCNYcgmFL66e\nlOkmbGzzjdQGIGfY7H3owmkuI5FMycV5TYDkLChasYSlW0sQSJD1j1CiM+qSAE7Y\npWiuEVjrSYgJlcQfBnpQjkjAp2F4bp0TDQT7e+MNCOfA+lUdSWKyZVTLHF0=\n-----END CERTIFICATE-----",
    "privateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDem6F7HLVxStq\/\n\/t6aThEEntPgIjjgj1wL03hVTIHbDhzZ\/hWh7KEo5nQCdL+HMJIGnpM\/7htEVos0\nzkVT2QchP6p0p9PR1rY3+SVoxEcltJ9xug8EZ7Zut8F5VHjbNsTi7W0S3irj6MCg\nuVkSehE4PeV9P+zeXf+0Aa7KwDiQHI1krvqY9DQda4IGyPeZI3cFbzFBYHhUK5am\nLU3iSpwNdBPWsgxQNNtsFnfOvmhuxxZ8B55TKATAVZ6UDI4DR1ysyCsJv8bajWro\nCEIQ61dyJb+H5eyTrd86qN46mYgGLNdoClOhQ4QISoz8mhWzFf\/oIUbiHzBpslvo\nrn+YPEvDAgMBAAECggEAXOcIqo+dra12w8ADeNRxx8LdW+IMaLOLz6euxbKLUzd9\nlQC0WIKf86jR66B7uljr6HVPsNOXb5rKt\/wJ9OdTUW33nn3YKe\/41j1VfnbD1pme\nHWFwGP+LpINt7EvzsFEYNDiwV7p+neUqVyljYhGtlBJI70+5dEg4ihBVuWolcQai\nH06XxdT72O41RKr\/uSzKcuxZBQhdD9Y505UVMsHOjFu0HMUMZ\/wk7msZg4nyYmfg\nW0h\/LbzmzblbEzF+wd4PYTE5FC4SRiS1\/E8aDe78Rg7ww7pxgW9OvGlMWv4lrfco\nBO430h+VBodQnHHaTj4lV59pYhQGvlHwkSDEHpuWAQKBgQD3Jh6sIY97kOCJ9oET\nlhsBZ6JICiqmsieWRuSmMoiErBezVZ9QS5C5GOL4GkPsc7Bw0s6RB+9TZsEPS3DH\nglpzr5a89d3BRlkSNFSSHeq\/W8\/s8DYvMoQeapYTr4ijH97y18IjChozx5fcmzQS\nY8J0hYOruabZgyjBvSABNxokwwKBgQDmlIR3Mj7YQsSyyvgOp0r0e1u2zNnnm5n6\nC\/kZR1SuhVjQ2tdwPafqjdSoFimUMPrSmJBT6U7LqfEtRaByR9xEHR0d3qb8Ofni\nSngD4NWmPSX6GnWwJVsPHDSqn6JW1eEdAwMisB7F4FhRmvdffmIaVI89HZSuv5gl\n\/uEQRGbNAQKBgH+ODQaJy6PaggiyUKvrLMTs17SWiqy+BfBpZljge9T9fL3x0ud+\nGJNvZLTn2WaPzuBr7HCtx7cjsUBTj0Fo5YYPeZzMyEaYKCBdIcjH6AAbQpTm5RA2\n4jlQiWRflAWczVRIRsoOzLcsrBQPhjB3jETXI73dc1+PcdmL4pi996BBAoGAEuob\n86srfJH9kK0VrB4NCAEWhOhI97bL6rcQuAIh8C8AGiHZiluEark3uJIY1w8thBj\/\nveJllE9ceVo8zyMV7oB04v5gtFANL4LsVWUcIYbilqGVBd4KmjK2H0j5CCaDUN3u\nY+oOnCzLEeakZDD52y8UkO7cQ3l0AanmzG7QAAECgYBVTTgYqAoUG6wVuQw5Jrnz\n9\/ItvU4zPKDadnoIRgMZq+wXo8f8dMSzNjlylv+vQF99E9NRMMIVbyeH4\/q5ANGl\nkcFwSyAhE7z+uSV0Ho6OqZVqis8e9rcin9+opC5BePQAjgAyAYciXpE95YXQcYMM\nlXCUsdHQomIAwFN2TNWohQ==\n-----END PRIVATE KEY-----",
    "staging": false
    "_links": {
        "redeploy": {
            "method": "patch",
            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/ssl"
        },
        "delete": {
            "method": "delete",
            "link": "\/api\/servers\/yO4VAbX2BkNz\/webapps\/bZ0Ka4eK2PGR\/ssl\/rjJ8lrNl1pnb"
        }
    }
}

PATCH SSL - Redeploy (Let’s Encrypt only)

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/ssl

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/ssl" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "Redeploying SSL/TLS to Web Application myfirstwebapp. Changes will happen shortly."
}

PATCH SSL - Update SSL Config

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/ssl/<ssl.id>

Arguments

Parameters Required Description
enableHttp YES Boolean true or false
enableHsts YES Boolean true or false
privateKey YES if provider is "custom" SSL Private Key
certificate YES if provider is "custom" SSL Certificate

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/ssl/rjJ8lrNl1pnb" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "enableHttp": false,
        "enableHsts": true,
        "privateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9FYQwWBmV9zCO\nhW4ws7G66xhF6a5L07DpIIqlufaK/W0tZ1Hm4HgZmaSzi9OAPxqSwmQmQlUcGACn\nm31urCayB+WZw9Dpx6mhWXsa8SXaziF/V/saC3uG4R79GGaeSqSEnpmc7kMBIu2a\nN5FpztsyZpzxHYUVv82pS5YLxBwIo/2gsXbzRKWXbSTml+yqwlMFcsur9M6q/w9q\nd0j108g/l5Ei37ttwfegdY9pocUh6IcNyN0Xx981xAtIG78L2+sux9acyDaju4D+\nw76aD/9U1u2c0fccvE7ssoaeZgjAE6fjk+uLZFhd+8sRWElT0u6A9CZdxSCDcVUz\nn/OCPzBXAgMBAAECggEBAKeumB7jUjVbFHWfwLtx8BCqgkkl1csq/X2QvUQBKbHS\n0upr8QcFU5yoU5ZiTvsxexhhSb1gH+gdJR9+Vfs6sco6FJSLQg7AYR9UokafSonD\nOZOb63QKcM6JgBjFdeO0oDd4CxRPe55bYkjcNJmXt2338AAnxKkoAnO7M2JV1OKX\nO9DzSWQWTjlD5xn1aD4yA/xYr3WxFK3ZjRrVc+43IuM4O8/G5Y/ys929rWHyPMVD\nOoHiTyvlOgTFmtJJ8mgjFwfoOC5QjLOinqIxizld0fsuURDna8rLuOdRcg4jJisb\npjPbkcYGio36lahq+PhuDYRSlKLFv8j/R2HDrRvI9iECgYEA8di+6nKksZq31vQ2\n2gvBtsqVMcQ/Xl3J3MDm1NAL6RjpqH+tHw3Uxtk13+yunbPMsXDwRXRZGbQ2oyws\nenFsO5/yjYF3m90iaFpKy/vSsmXCXfzg15aj2UyVKQrpCfADC8otNvKde9d5GAdb\npjB5I5YPNTw5tMEyDsuhs86hL9ECgYEAyCZNIHF9zTfnNpEkV+6C8RlkFEkB5jH3\nwHMi+7x52GtHSV7LClKPs06Qm+/hYK9xyRJkZieMFMUHzayoh2jqczH3ca5TJEPX\naL5oKMwJFuRXGAIc6YMBa2W9yPvIfdThTSMooqCN4QL3X8fCMpll6i5Mwx8ulXbQ\nwO3Aiw0/z6cCgYEApXskbzFQpcHy5t8lpR8ERnnpiir5HS3ZkPZhO967N5z3THdI\nUwZYwFMh/P1rIbdEaWmYzj1lNiRMemwgZwuy/j1cbxzWZczy3SpjIZ5GthDQ5RTC\nGGIX7Pjs2y9+83DJ9Mg7Fez+ex2d2yY1vMpQKVxlPYzfA2JqSRtmoqzRN/ECgYAX\nE3No/izG8F8UB3/tM26dZZQIUrKJW9F4us2ZwI07yoKZjvhR5Fr1DWXW1L1jbFbu\nG9S/gmfALUdNC08S7aG6TlR9IuArGjdHuExCB+Q0Y3c3KWcz9QrA2yYaeg0PlO+0\n+QzCU0iIXNMwk9NsCguaCGSJSpsQWHaRB9hfL9PfmQKBgD51n8if1w5trN1nVP0A\nNjPHO2ZBprGkVKfMh4eT7wCmqz2lll7hwifI7iqkw4GiYiBLGSD311jWjnGmTsyW\npQgaLnvA/BMV2WrLjZ0ODpgAKqa5uLIIL5PJdBquloU78RnXsftQhGBBF9kfMV1Z\n3SbLDvxeIcDy+MP3Sw9YvVJ7\n-----END PRIVATE KEY-----",
        "certificate": "-----BEGIN CERTIFICATE-----\nMIIDsDCCApgCCQCO0acPErSUUDANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMC\nTVkxDjAMBgNVBAgMBUpvaG9yMQ8wDQYDVQQHDAZTa3VkYWkxGzAZBgNVBAoMElJ1\nbkNsb3VkIFNkbi4gQmhkLjEQMA4GA1UECwwHU3RhZ2luZzEYMBYGA1UEAwwPd3d3\nLmV4YW1wbGUuY29tMSAwHgYJKoZIhvcNAQkBFhFoZWxsb0BydW5jbG91ZC5pbzAe\nFw0xODAzMDIwNjU4NTNaFw0xOTAzMDIwNjU4NTNaMIGZMQswCQYDVQQGEwJNWTEO\nMAwGA1UECAwFSm9ob3IxDzANBgNVBAcMBlNrdWRhaTEbMBkGA1UECgwSUnVuQ2xv\ndWQgU2RuLiBCaGQuMRAwDgYDVQQLDAdTdGFnaW5nMRgwFgYDVQQDDA93d3cuZXhh\nbXBsZS5jb20xIDAeBgkqhkiG9w0BCQEWEWhlbGxvQHJ1bmNsb3VkLmlvMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvRWEMFgZlfcwjoVuMLOxuusYRemu\nS9Ow6SCKpbn2iv1tLWdR5uB4GZmks4vTgD8aksJkJkJVHBgAp5t9bqwmsgflmcPQ\n6cepoVl7GvEl2s4hf1f7Ggt7huEe/RhmnkqkhJ6ZnO5DASLtmjeRac7bMmac8R2F\nFb/NqUuWC8QcCKP9oLF280Sll20k5pfsqsJTBXLLq/TOqv8PandI9dPIP5eRIt+7\nbcH3oHWPaaHFIeiHDcjdF8ffNcQLSBu/C9vrLsfWnMg2o7uA/sO+mg//VNbtnNH3\nHLxO7LKGnmYIwBOn45Pri2RYXfvLEVhJU9LugPQmXcUgg3FVM5/zgj8wVwIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4IBAQAZpo84syDaVCyhvIOSt4w5VmQ9szaKppLJf+FN\nZI0S8XF9BI8Zpcz6/0s0kDLf68/RxxXHSlv6dY35cxgbfQTIn7RZwfXglRSEB87t\neWTN0H7yERrJyJje/3O+anetnkEEpawts291FgoMojGyMho/OgtXczTy4XpxSn4V\n8TklCzdn11z05WNm4p6wPufgA01kzXhgfgrBSvdU+Nfpqrdu9DYgkz0HDSvDuk50\nGQ0EARJ/0Toc3LEhPAJTf3UL1nLoQy3j1B12gxY8YQAOiMGNqvi6aSnJV50A8Qhd\ntBAJ4JM9QNMP1en63max8GfnqBpiPIW14Xg/NxgeqsyY5U6g\n-----END CERTIFICATE-----"
    }'

Response

{
    "message": "Successfully updated SSL\/TLS Certificate for Web Application myfirstwebapp.",
    "resetForm": false
}

DELETE SSL - Delete

HTTP Request

DELETE https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/ssl/<ssl.id>

Request

curl -X DELETE "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/ssl/rjJ8lrNl1pnb" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "message": "Successfully removed SSL\/TLS Certificate from Web Application myfirstwebapp."
}

PATCH Settings - Change PHP version

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/settings/phpversion

Arguments

Parameters Required Description
phpVersion YES You can get this from server._extra.php.versions

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/settings/phpversion" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "phpVersion": "php70rc"
    }'

Response

{
    "message": "Web Application myfirstwebapp will be updated to php70rc.",
    "resetForm": false
}

PATCH Settings - PHP-FPM, NGiNX

HTTP Request

PATCH https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/settings/phpfpmnginx

Arguments

Parameters Required Description
stack YES "hybrid", "nativenginx" or "customnginx"
stackMode YES "production" or "development"
clickjackingProtection YES Boolean true or false
xssProtection YES Boolean true or false
mimeSniffingProtection YES Boolean true or false
processManager YES "dynamic", "ondemand", or "static"
processManagerStartServers YES if processManager is "dynamic" Must be integer
processManagerMinSpareServers YES if processManager is "dynamic" Must be integer
processManagerMaxSpareServers YES if processManager is "dynamic" Must be integer
processManagerMaxChildren YES Must be integer
processManagerMaxRequests YES Must be integer
openBasedir NO If you left this empty, open_basedir will be empty. To add a default value, use "/home/<systemuser.username>/webapps/<webApp.name>:/var/lib/php/session:/tmp"
timezone YES You can get this from Static Data for Timezone
disableFunctions NO If you left this empty, no php functions will be disabled. If you wanted to supply the default value, see the request example
maxExecutionTime YES Integer. Use 0 for unlimited
maxInputTime YES Integer. Use 0 for unlimited
maxInputVars YES Integer. Use 0 for unlimited
memoryLimit YES Integer. Supplied value is in MB.
postMaxSize YES Integer. Supplied value is in MB. Use 0 for unlimited
uploadMaxFilesize YES Integer. Supplied value is in MB. Use 0 for unlimited
sessionGcMaxlifetime YES Integer. Supplied value is in seconds
allowUrlFopen YES Boolean true or false

Request

curl -X PATCH "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/settings/phpfpmnginx" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    --data '{
        "stack": "hybrid",
        "stackMode": "developement",
        "clickjackingProtection": true,
        "xssProtection": true,
        "mimeSniffingProtection": true,
        "processManager": "ondemand",
        "processManagerMaxChildren": 300,
        "processManagerMaxRequests": 300,
        "openBasedir": "/home/runcloud/webapps/myfirstwebapp:/var/lib/php/session:/tmp",
        "timezone": "Asia/Kuala_Lumpur",
        "disableFunctions": "getmyuid,passthru,leak,listen,diskfreespace,tmpfile,link,ignore_user_abord,shell_exec,dl,set_time_limit,exec,system,highlight_file,source,show_source,fpassthru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,proc_open,proc_close,proc_nice,proc_terminate,escapeshellcmd,ini_alter,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,symlink,posix_geteuid,ini_alter,socket_listen,socket_create_listen,socket_read,socket_create_pair,stream_socket_server",
        "maxExecutionTime": 60,
        "maxInputTime": 120,
        "maxInputVars": 1000,
        "memoryLimit": 512,
        "postMaxSize": 256,
        "uploadMaxFilesize": 256,
        "sessionGcMaxlifetime": 1440,
        "allowUrlFopen": true
    }'

Response

{
    "message": "Changes will reflected on Web Application myfirstwebapp in a few moments.",
    "resetForm": false
}

GET Log

HTTP Request

GET https://manage.runcloud.io/base-api/servers/<server.id>/webapps/<webApp.id>/log

Arguments

Parameters Required Description
page NO Page number of the Web App log resources
search NO Filter log

Request

curl -X GET "https://manage.runcloud.io/base-api/servers/yO4VAbX2BkNz/webapps/bZ0Ka4eK2PGR/log?page=1" \
    -u YOUR_API_KEY:YOUR_API_SECRET \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

{
    "data": [
        {
            "id": "Nq02VLvJAE97",
            "type": "App\\WebApplication",
            "severity": 1,
            "log": "Update Web Application configuration",
            "created_at_date": "02 March 2018",
            "created_at_time": "3:54:28 PM",
            "created_at_humanize": "2 hours ago"
        },
        {
            "id": "Lx1AMzemaROP",
            "type": "App\\WebApplication",
            "severity": 1,
            "log": "Change PHP Version from php72rc to php70rc",
            "created_at_date": "02 March 2018",
            "created_at_time": "3:35:34 PM",
            "created_at_humanize": "3 hours ago"
        },
        {
            "id": "byMAWzvblEvL",
            "type": "App\\WebApplication",
            "severity": 3,
            "log": "Deleted SSL\/TLS from Web Application",
            "created_at_date": "02 March 2018",
            "created_at_time": "3:17:30 PM",
            "created_at_humanize": "3 hours ago"
        }
    ],
    "meta": {
        "pagination": {
            "total": 3,
            "count": 3,
            "per_page": 20,
            "current_page": 1,
            "total_pages": 1,
            "links": []
        }
    }
}