MENU navbar-image

Introduction

VitoDeploy's API documentation.

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

This API is not authenticated.

cron-jobs

list

Get all cron jobs.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/cron-jobs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/cron-jobs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 5,
            "server_id": 1,
            "command": "ls -la",
            "user": "root",
            "frequency": "* * * * *",
            "status": "ready",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 6,
            "server_id": 1,
            "command": "ls -la",
            "user": "root",
            "frequency": "* * * * *",
            "status": "ready",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/cron-jobs

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

create

Create a new cron job.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/cron-jobs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"command\": \"consequatur\",
    \"user\": \"vito\",
    \"frequency\": \"* * * * *\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/cron-jobs"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "command": "consequatur",
    "user": "vito",
    "frequency": "* * * * *"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "server_id": 1,
    "command": "ls -la",
    "user": "root",
    "frequency": "* * * * *",
    "status": "ready",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers/{server_id}/cron-jobs

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

Body Parameters

command    string    

Example: consequatur

user    string    

Example: vito

Must be one of:
  • root
  • vito
frequency    string    

Frequency of the cron job. Example: * * * * *

show

Get a cron job by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/cron-jobs/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/cron-jobs/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "server_id": 1,
    "command": "ls -la",
    "user": "root",
    "frequency": "* * * * *",
    "status": "ready",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

cronJob_id    integer    

The ID of the cronJob. Example: 17

delete

Delete cron job.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/cron-jobs/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/cron-jobs/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

cronJob_id    integer    

The ID of the cronJob. Example: 17

database-users

list

Get all database users.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/database-users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/database-users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 19,
            "server_id": 1,
            "username": "graciela37",
            "databases": [],
            "host": "%",
            "status": "creating",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 20,
            "server_id": 1,
            "username": "vconn",
            "databases": [],
            "host": "%",
            "status": "creating",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/database-users

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

create

Create a new database user.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/database-users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"consequatur\",
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"host\": \"%\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/database-users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "consequatur",
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "host": "%"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 19,
    "server_id": 1,
    "username": "nolan.jaylan",
    "databases": [],
    "host": "%",
    "status": "creating",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers/{server_id}/database-users

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

Body Parameters

username    string    

Example: consequatur

password    string    

Example: O[2UZ5ij-e/dl4m{o,

host    string    

Host, if it is a remote user. Example: %

show

Get a database user by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/database-users/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/database-users/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 19,
    "server_id": 1,
    "username": "carolyne.luettgen",
    "databases": [],
    "host": "%",
    "status": "creating",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

databaseUser_id    integer    

The ID of the databaseUser. Example: 17

Link to databases

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/database-users/17/link" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"databases\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/database-users/17/link"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "databases": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 19,
    "server_id": 1,
    "username": "carolyne.luettgen",
    "databases": [],
    "host": "%",
    "status": "creating",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

delete

Delete database user.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/database-users/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/database-users/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

databaseUser_id    integer    

The ID of the databaseUser. Example: 17

databases

list

Get all databases.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/databases" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/databases"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 21,
            "server_id": 1,
            "name": "carolyne.luettgen",
            "status": "ready",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 22,
            "server_id": 1,
            "name": "orville77",
            "status": "ready",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/databases

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

create

Create a new database.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/databases" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"charset\": \"consequatur\",
    \"collation\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/databases"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "charset": "consequatur",
    "collation": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 21,
    "server_id": 1,
    "name": "carolyne.luettgen",
    "status": "ready",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers/{server_id}/databases

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

Body Parameters

name    string    

Example: consequatur

charset    string    

Example: consequatur

collation    string    

Example: consequatur

show

Get a database by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/databases/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/databases/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 21,
    "server_id": 1,
    "name": "carolyne.luettgen",
    "status": "ready",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/databases/{id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

id    integer    

The ID of the database. Example: 17

delete

Delete database.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/databases/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/databases/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/databases/{database_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

database_id    integer    

The ID of the database. Example: 17

firewall-rules

list

Get all firewall rules.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/firewall-rules" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/firewall-rules"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 97,
            "name": "dolores",
            "server_id": 1,
            "type": "allow",
            "protocol": "tcp",
            "port": 40770,
            "source": "199.76.131.15",
            "mask": "24",
            "note": "test",
            "status": "creating",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 98,
            "name": "laborum",
            "server_id": 1,
            "type": "allow",
            "protocol": "tcp",
            "port": 14235,
            "source": "100.14.146.200",
            "mask": "24",
            "note": "test",
            "status": "creating",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/firewall-rules

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

create

Create a new firewall rule.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/firewall-rules" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"type\": \"allow\",
    \"protocol\": \"tcp\",
    \"port\": \"consequatur\",
    \"source\": \"consequatur\",
    \"mask\": \"0\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/firewall-rules"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "type": "allow",
    "protocol": "tcp",
    "port": "consequatur",
    "source": "consequatur",
    "mask": "0"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 97,
    "name": "dolores",
    "server_id": 1,
    "type": "allow",
    "protocol": "tcp",
    "port": 40770,
    "source": "199.76.131.15",
    "mask": "24",
    "note": "test",
    "status": "creating",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers/{server_id}/firewall-rules

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

Body Parameters

name    string    

Example: consequatur

type    string    

Example: allow

Must be one of:
  • allow
  • deny
protocol    string    

Example: tcp

Must be one of:
  • tcp
  • udp
port    string    

Example: consequatur

source    string   optional  

Example: consequatur

mask    string    

Mask for source IP. Example: 0

edit

Update an existing firewall rule.

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/servers/32/firewall-rules/94" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"type\": \"allow\",
    \"protocol\": \"tcp\",
    \"port\": \"consequatur\",
    \"source\": \"consequatur\",
    \"mask\": \"0\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/firewall-rules/94"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "type": "allow",
    "protocol": "tcp",
    "port": "consequatur",
    "source": "consequatur",
    "mask": "0"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 97,
    "name": "dolores",
    "server_id": 1,
    "type": "allow",
    "protocol": "tcp",
    "port": 40770,
    "source": "199.76.131.15",
    "mask": "24",
    "note": "test",
    "status": "creating",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

PUT api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

firewallRule_id    integer    

The ID of the firewallRule. Example: 94

Body Parameters

name    string    

Example: consequatur

type    string    

Example: allow

Must be one of:
  • allow
  • deny
protocol    string    

Example: tcp

Must be one of:
  • tcp
  • udp
port    string    

Example: consequatur

source    string   optional  

Example: consequatur

mask    string    

Mask for source IP. Example: 0

show

Get a firewall rule by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/firewall-rules/94" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/firewall-rules/94"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 97,
    "name": "laborum",
    "server_id": 1,
    "type": "allow",
    "protocol": "tcp",
    "port": 14235,
    "source": "100.14.146.200",
    "mask": "24",
    "note": "test",
    "status": "creating",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

firewallRule_id    integer    

The ID of the firewallRule. Example: 94

delete

Delete firewall rule.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/firewall-rules/94" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/firewall-rules/94"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

firewallRule_id    integer    

The ID of the firewallRule. Example: 94

general

health-check

Example request:
curl --request GET \
    --get "https://vito.test/api/health" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/health"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 57
access-control-allow-origin: *
 

{
    "success": true,
    "version": "2.5.0"
}
 

Request      

GET api/health

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

projects

list

Get all projects.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 3,
            "name": "Nash Corwin",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 4,
            "name": "Patience Douglas",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

create

Create a new project.

Example request:
curl --request POST \
    "https://vito.test/api/projects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 3,
    "name": "Dr. Cornelius Luettgen V",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

Body Parameters

name    string    

The name of the project. Example: consequatur

show

Get a project by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 3,
    "name": "Orville Satterfield",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

id    integer    

The ID of the project. Example: 1

update

Update project.

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 3,
    "name": "Dr. Cornelius Luettgen V",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

PUT api/projects/{id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

id    integer    

The ID of the project. Example: 1

Body Parameters

name    string    

The name of the project. Example: consequatur

delete

Delete project.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

redirects

index

Get all redirects.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/sites/17/redirects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/redirects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 11,
            "site_id": 1,
            "mode": 308,
            "from": "dolores",
            "to": "http://dibbert.com/eius-est-dolor-dolores-minus-voluptatem-quisquam",
            "status": "ready",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 12,
            "site_id": 1,
            "mode": 302,
            "from": "sed",
            "to": "http://williamson.net/fugit-facilis-perferendis-dolores-molestias.html",
            "status": "ready",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

create

Create a new redirect.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/sites/17/redirects" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"from\": \"consequatur\",
    \"to\": \"consequatur\",
    \"mode\": 302
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/redirects"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "from": "consequatur",
    "to": "consequatur",
    "mode": 302
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):



 

Request      

POST api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

Body Parameters

from    string    

Example: consequatur

to    string    

Example: consequatur

mode    string    

Example: 302

Must be one of:
  • 301
  • 302
  • 307
  • 308

delete

Delete a redirect.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/sites/17/redirects/9" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/redirects/9"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

redirect_id    integer    

The ID of the redirect. Example: 9

server-providers

list

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/server-providers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/server-providers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 4,
            "project_id": null,
            "global": true,
            "name": "quo",
            "provider": "custom",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 5,
            "project_id": null,
            "global": true,
            "name": "sed",
            "provider": "digitalocean",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/server-providers

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

create

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/server-providers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"provider\": \"consequatur\",
    \"name\": \"consequatur\",
    \"token\": \"consequatur\",
    \"key\": \"consequatur\",
    \"secret\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/server-providers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "provider": "consequatur",
    "name": "consequatur",
    "token": "consequatur",
    "key": "consequatur",
    "secret": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 4,
    "project_id": null,
    "global": true,
    "name": "dolores",
    "provider": "digitalocean",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/server-providers

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

Body Parameters

provider    string    

The provider (aws, linode, hetzner, digitalocean, vultr, ...) Example: consequatur

name    string    

The name of the server provider. Example: consequatur

token    string    

The token if provider requires api token Example: consequatur

key    string    

The key if provider requires key Example: consequatur

secret    string    

The secret if provider requires key Example: consequatur

show

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/server-providers/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/server-providers/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 4,
    "project_id": null,
    "global": true,
    "name": "voluptatem",
    "provider": "vultr",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{project_id}/server-providers/{serverProvider_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

serverProvider_id    integer    

The ID of the serverProvider. Example: 1

update

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/server-providers/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"global\": false
}"
const url = new URL(
    "https://vito.test/api/projects/1/server-providers/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "global": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 4,
    "project_id": null,
    "global": true,
    "name": "dolores",
    "provider": "digitalocean",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

PUT api/projects/{project_id}/server-providers/{serverProvider_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

serverProvider_id    integer    

The ID of the serverProvider. Example: 1

Body Parameters

name    string    

The name of the server provider. Example: consequatur

global    string    

Accessible in all projects Example: false

Must be one of:
  • 1

delete

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/server-providers/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/server-providers/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/server-providers/{serverProvider_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

serverProvider_id    integer    

The ID of the serverProvider. Example: 1

servers

list

Get all servers in a project.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 33,
            "project_id": 1,
            "user_id": 1,
            "provider_id": null,
            "name": "Maiya Connelly",
            "ssh_user": "vito",
            "ip": "7.83.102.177",
            "local_ip": "130.245.181.91",
            "port": 22,
            "os": "ubuntu_22",
            "type": "regular",
            "type_data": null,
            "provider": "custom",
            "provider_data": null,
            "public_key": "test",
            "status": "ready",
            "auto_update": null,
            "available_updates": 0,
            "security_updates": null,
            "progress": 100,
            "progress_step": null,
            "updates": 0,
            "last_update_check": null,
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 34,
            "project_id": 1,
            "user_id": 1,
            "provider_id": null,
            "name": "Dr. Kyler Runolfsdottir DVM",
            "ssh_user": "vito",
            "ip": "106.112.51.73",
            "local_ip": "248.246.77.93",
            "port": 22,
            "os": "ubuntu_22",
            "type": "regular",
            "type_data": null,
            "provider": "custom",
            "provider_data": null,
            "public_key": "test",
            "status": "ready",
            "auto_update": null,
            "available_updates": 0,
            "security_updates": null,
            "progress": 100,
            "progress_step": null,
            "updates": 0,
            "last_update_check": null,
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

create

Create a new server.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"provider\": \"consequatur\",
    \"server_provider\": \"hetzner\",
    \"region\": \"consequatur\",
    \"plan\": \"consequatur\",
    \"ip\": \"consequatur\",
    \"port\": \"consequatur\",
    \"name\": \"consequatur\",
    \"os\": \"consequatur\",
    \"webserver\": \"none\",
    \"database\": \"mariadb104\",
    \"php\": \"8.0\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "provider": "consequatur",
    "server_provider": "hetzner",
    "region": "consequatur",
    "plan": "consequatur",
    "ip": "consequatur",
    "port": "consequatur",
    "name": "consequatur",
    "os": "consequatur",
    "webserver": "none",
    "database": "mariadb104",
    "php": "8.0"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 33,
    "project_id": 1,
    "user_id": 1,
    "provider_id": null,
    "name": "Dr. Cornelius Luettgen V",
    "ssh_user": "vito",
    "ip": "226.187.235.251",
    "local_ip": "18.62.212.253",
    "port": 22,
    "os": "ubuntu_22",
    "type": "regular",
    "type_data": null,
    "provider": "custom",
    "provider_data": null,
    "public_key": "test",
    "status": "ready",
    "auto_update": null,
    "available_updates": 0,
    "security_updates": null,
    "progress": 100,
    "progress_step": null,
    "updates": 0,
    "last_update_check": null,
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

Body Parameters

provider    string    

The server provider type Example: consequatur

server_provider    string    

If the provider is not custom, the ID of the server provider profile Example: hetzner

Must be one of:
  • custom
  • hetzner
  • digitalocean
  • linode
  • vultr
region    string    

Provider region if the provider is not custom Example: consequatur

plan    string    

Provider plan if the provider is not custom Example: consequatur

ip    string    

SSH IP address if the provider is custom Example: consequatur

port    string    

SSH Port if the provider is custom Example: consequatur

name    string    

The name of the server. Example: consequatur

os    string    

The os of the server Example: consequatur

webserver    string    

Web server Example: none

Must be one of:
  • none
  • nginx
database    string    

Database Example: mariadb104

Must be one of:
  • none
  • mysql57
  • mysql80
  • mariadb103
  • mariadb104
  • mariadb103
  • postgresql12
  • postgresql13
  • postgresql14
  • postgresql15
  • postgresql16
php    string    

PHP version Example: 8.0

Must be one of:
  • 7.0
  • 7.1
  • 7.2
  • 7.3
  • 7.4
  • 8.0
  • 8.1
  • 8.2
  • 8.3

show

Get a server by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 33,
    "project_id": 1,
    "user_id": 1,
    "provider_id": null,
    "name": "Brandy Reichel",
    "ssh_user": "vito",
    "ip": "26.180.121.142",
    "local_ip": "122.175.6.215",
    "port": 22,
    "os": "ubuntu_22",
    "type": "regular",
    "type_data": null,
    "provider": "custom",
    "provider_data": null,
    "public_key": "test",
    "status": "ready",
    "auto_update": null,
    "available_updates": 0,
    "security_updates": null,
    "progress": 100,
    "progress_step": null,
    "updates": 0,
    "last_update_check": null,
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

GET api/projects/{project_id}/servers/{id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

id    integer    

The ID of the server. Example: 32

reboot

Reboot a server.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/reboot" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/reboot"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/reboot

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

upgrade

Upgrade server.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/upgrade" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/upgrade"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/upgrade

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

delete

Delete server.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

services

list

Get all services.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/services" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": null,
            "server_id": 1,
            "type": "webserver",
            "type_data": null,
            "name": "nginx",
            "version": null,
            "unit": null,
            "status": "ready",
            "is_default": null,
            "created_at": null,
            "updated_at": null
        },
        {
            "id": null,
            "server_id": 1,
            "type": "webserver",
            "type_data": null,
            "name": "nginx",
            "version": null,
            "unit": null,
            "status": "ready",
            "is_default": null,
            "created_at": null,
            "updated_at": null
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/services

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

show

Get a service by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/services/184" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": null,
    "server_id": 1,
    "type": "webserver",
    "type_data": null,
    "name": "nginx",
    "version": null,
    "unit": null,
    "status": "ready",
    "is_default": null,
    "created_at": null,
    "updated_at": null
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/services/{id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

id    integer    

The ID of the service. Example: 184

start

Start service.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/services/184/start" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184/start"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/services/{service_id}/start

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

service_id    integer    

The ID of the service. Example: 184

stop

Stop service.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/services/184/stop" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184/stop"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

service_id    integer    

The ID of the service. Example: 184

restart

Restart service.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/services/184/restart" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184/restart"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

service_id    integer    

The ID of the service. Example: 184

enable

Enable service.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/services/184/enable" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184/enable"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

service_id    integer    

The ID of the service. Example: 184

disable

Disable service.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/services/184/disable" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184/disable"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

POST api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

service_id    integer    

The ID of the service. Example: 184

delete

Delete service.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/services/184" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/services/184"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/services/{service_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

service_id    integer    

The ID of the service. Example: 184

sites

list

Get all sites.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/sites" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 50,
            "server_id": 1,
            "source_control_id": null,
            "type": "laravel",
            "type_data": null,
            "domain": "test.com",
            "aliases": null,
            "web_directory": "/",
            "path": "/home",
            "php_version": "8.2",
            "repository": null,
            "branch": "main",
            "status": "ready",
            "port": null,
            "user": "vito",
            "progress": 100,
            "created_at": "2025-04-21T18:40:20.000000Z",
            "updated_at": "2025-04-21T18:40:20.000000Z"
        },
        {
            "id": 51,
            "server_id": 1,
            "source_control_id": null,
            "type": "laravel",
            "type_data": null,
            "domain": "test.com",
            "aliases": null,
            "web_directory": "/",
            "path": "/home",
            "php_version": "8.2",
            "repository": null,
            "branch": "main",
            "status": "ready",
            "port": null,
            "user": "vito",
            "progress": 100,
            "created_at": "2025-04-21T18:40:20.000000Z",
            "updated_at": "2025-04-21T18:40:20.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/sites

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

create

Create a new site.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/sites" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"load-balancer\",
    \"domain\": \"consequatur\",
    \"aliases\": [
        \"consequatur\"
    ],
    \"php_version\": \"7.4\",
    \"web_directory\": \"public\",
    \"source_control\": \"consequatur\",
    \"repository\": \"organization\\/repository\",
    \"branch\": \"main\",
    \"composer\": true,
    \"version\": \"5.2.1\",
    \"user\": \"consequatur\",
    \"method\": \"ip-hash\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": "load-balancer",
    "domain": "consequatur",
    "aliases": [
        "consequatur"
    ],
    "php_version": "7.4",
    "web_directory": "public",
    "source_control": "consequatur",
    "repository": "organization\/repository",
    "branch": "main",
    "composer": true,
    "version": "5.2.1",
    "user": "consequatur",
    "method": "ip-hash"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 50,
    "server_id": 1,
    "source_control_id": null,
    "type": "laravel",
    "type_data": null,
    "domain": "test.com",
    "aliases": null,
    "web_directory": "/",
    "path": "/home",
    "php_version": "8.2",
    "repository": null,
    "branch": "main",
    "status": "ready",
    "port": null,
    "user": "vito",
    "progress": 100,
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers/{server_id}/sites

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

Body Parameters

type    string    

Example: load-balancer

Must be one of:
  • php
  • php-blank
  • phpmyadmin
  • laravel
  • wordpress
  • load-balancer
domain    string    

Example: consequatur

aliases    string[]    
php_version    string    

One of the installed PHP Versions Example: 7.4

web_directory    string    

Required for PHP and Laravel sites Example: public

source_control    string    

Source control ID, Required for Sites which support source control Example: consequatur

repository    string    

Repository, Required for Sites which support source control Example: organization/repository

branch    string    

Branch, Required for Sites which support source control Example: main

composer    boolean    

Run composer if site supports composer Example: true

version    string    

Version, if the site type requires a version like PHPMyAdmin Example: 5.2.1

user    string    

user, to isolate the website under a new user Example: consequatur

method    string    

Load balancer method, Required if the site type is Load balancer Example: ip-hash

Must be one of:
  • round-robin
  • least-connections
  • ip-hash

show

Get a site by ID.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/sites/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 50,
    "server_id": 1,
    "source_control_id": null,
    "type": "laravel",
    "type_data": null,
    "domain": "test.com",
    "aliases": null,
    "web_directory": "/",
    "path": "/home",
    "php_version": "8.2",
    "repository": null,
    "branch": "main",
    "status": "ready",
    "port": null,
    "user": "vito",
    "progress": 100,
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/sites/{id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

id    integer    

The ID of the site. Example: 17

delete

Delete site.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/sites/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/sites/{site_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

load-balancer

Update load balancer.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/sites/17/load-balancer" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"method\": \"ip-hash\",
    \"servers\": [
        \"consequatur\"
    ]
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/load-balancer"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "method": "ip-hash",
    "servers": [
        "consequatur"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):



 

Request      

POST api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

Body Parameters

method    string    

Load balancer method, Required if the site type is Load balancer Example: ip-hash

Must be one of:
  • round-robin
  • least-connections
  • ip-hash
servers    string[]    

Array of servers including server, port, weight, backup. (server is the local IP of the server)

aliases

Update aliases.

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/servers/32/sites/17/aliases" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"aliases\": [
        \"consequatur\"
    ]
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/aliases"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "aliases": [
        "consequatur"
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):



 

Request      

PUT api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

Body Parameters

aliases    string[]    

Array of aliases

deploy

Run site deployment script

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/sites/17/deploy" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/deploy"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Example response (200):



 

Request      

POST api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deploy

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

deployment-script

Update site deployment script

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"script\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "script": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

PUT api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

Body Parameters

script    string    

Content of the deployment script Example: consequatur

deployment-script

Get site deployment script content

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/deployment-script"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):



 

Request      

GET api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

env

Get site .env file content

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/sites/17/env" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/env"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": {
        "env": "APP_NAME=Laravel\\nAPP_ENV=production"
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

env

Update site .env file

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/servers/32/sites/17/env" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"env\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/sites/17/env"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "env": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):



 

Request      

PUT api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

site_id    integer    

The ID of the site. Example: 17

Body Parameters

env    string    

Content of the .env file Example: consequatur

source-controls

list

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/source-controls" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/source-controls"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 5,
            "project_id": null,
            "global": true,
            "name": "Dr. Cornelius Luettgen V",
            "provider": "github",
            "created_at": "2025-04-21T18:40:20.000000Z",
            "updated_at": "2025-04-21T18:40:20.000000Z"
        },
        {
            "id": 6,
            "project_id": null,
            "global": true,
            "name": "Orville Satterfield",
            "provider": "github",
            "created_at": "2025-04-21T18:40:20.000000Z",
            "updated_at": "2025-04-21T18:40:20.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/source-controls

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

create

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/source-controls" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"provider\": \"gitlab\",
    \"name\": \"consequatur\",
    \"token\": \"consequatur\",
    \"url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
    \"username\": \"consequatur\",
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/source-controls"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "provider": "gitlab",
    "name": "consequatur",
    "token": "consequatur",
    "url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "username": "consequatur",
    "password": "O[2UZ5ij-e\/dl4m{o,"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "project_id": null,
    "global": true,
    "name": "Lonny Ankunding",
    "provider": "github",
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

POST api/projects/{project_id}/source-controls

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

Body Parameters

provider    string    

The provider Example: gitlab

Must be one of:
  • gitlab
  • github
  • bitbucket
name    string    

The name of the storage provider. Example: consequatur

token    string    

The token if provider requires api token Example: consequatur

url    string    

The URL if the provider is Gitlab and it is self-hosted Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

username    string    

The username if the provider is Bitbucket Example: consequatur

password    string    

The password if the provider is Bitbucket Example: O[2UZ5ij-e/dl4m{o,

show

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/source-controls/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/source-controls/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "project_id": null,
    "global": true,
    "name": "Dr. Enoch Harber II",
    "provider": "github",
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

GET api/projects/{project_id}/source-controls/{sourceControl_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

sourceControl_id    integer    

The ID of the sourceControl. Example: 1

update

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/source-controls/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"token\": \"consequatur\",
    \"url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
    \"username\": \"consequatur\",
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"global\": false
}"
const url = new URL(
    "https://vito.test/api/projects/1/source-controls/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "token": "consequatur",
    "url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "username": "consequatur",
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "global": false
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "project_id": null,
    "global": true,
    "name": "Lonny Ankunding",
    "provider": "github",
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

PUT api/projects/{project_id}/source-controls/{sourceControl_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

sourceControl_id    integer    

The ID of the sourceControl. Example: 1

Body Parameters

name    string    

The name of the storage provider. Example: consequatur

token    string    

The token if provider requires api token Example: consequatur

url    string    

The URL if the provider is Gitlab and it is self-hosted Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

username    string    

The username if the provider is Bitbucket Example: consequatur

password    string    

The password if the provider is Bitbucket Example: O[2UZ5ij-e/dl4m{o,

global    string    

Accessible in all projects Example: false

Must be one of:
  • 1

delete

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/source-controls/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/source-controls/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/source-controls/{sourceControl_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

sourceControl_id    integer    

The ID of the sourceControl. Example: 1

ssh-keys

list

Get all ssh keys.

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/servers/32/ssh-keys" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/ssh-keys"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 2,
            "user": {
                "id": 1,
                "name": "Saeed Vaziry",
                "email": "demo@vitodeploy.com",
                "created_at": "2024-12-19T23:19:20.000000Z",
                "updated_at": "2025-04-19T21:24:56.000000Z"
            },
            "name": "Prof. Aurelia Buckridge MD",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        },
        {
            "id": 3,
            "user": {
                "id": 1,
                "name": "Saeed Vaziry",
                "email": "demo@vitodeploy.com",
                "created_at": "2024-12-19T23:19:20.000000Z",
                "updated_at": "2025-04-19T21:24:56.000000Z"
            },
            "name": "Jaylan Lakin",
            "created_at": "2025-04-21T18:40:19.000000Z",
            "updated_at": "2025-04-21T18:40:19.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/servers/{server_id}/ssh-keys

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

create

Deploy ssh key to server.

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/servers/32/ssh-keys" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"key_id\": \"consequatur\",
    \"name\": \"consequatur\",
    \"public_key\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/ssh-keys"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "key_id": "consequatur",
    "name": "consequatur",
    "public_key": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 2,
    "user": {
        "id": 1,
        "name": "Saeed Vaziry",
        "email": "demo@vitodeploy.com",
        "created_at": "2024-12-19T23:19:20.000000Z",
        "updated_at": "2025-04-19T21:24:56.000000Z"
    },
    "name": "Dr. Cornelius Luettgen V",
    "created_at": "2025-04-21T18:40:19.000000Z",
    "updated_at": "2025-04-21T18:40:19.000000Z"
}
 

Request      

POST api/projects/{project_id}/servers/{server_id}/ssh-keys

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

Body Parameters

key_id    string    

The ID of the key. Example: consequatur

name    string    

Key name, required if key_id is not provided. Example: consequatur

public_key    string    

Public Key, required if key_id is not provided. Example: consequatur

delete

Delete ssh key from server.

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/servers/32/ssh-keys/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/servers/32/ssh-keys/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

server_id    integer    

The ID of the server. Example: 32

sshKey_id    integer    

The ID of the sshKey. Example: 1

storage-providers

list

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/storage-providers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/storage-providers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "data": [
        {
            "id": 5,
            "project_id": null,
            "global": true,
            "name": "dolores",
            "provider": "local",
            "created_at": "2025-04-21T18:40:20.000000Z",
            "updated_at": "2025-04-21T18:40:20.000000Z"
        },
        {
            "id": 6,
            "project_id": null,
            "global": true,
            "name": "dignissimos",
            "provider": "dropbox",
            "created_at": "2025-04-21T18:40:20.000000Z",
            "updated_at": "2025-04-21T18:40:20.000000Z"
        }
    ],
    "links": {
        "first": "/?page=1",
        "last": "/?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "/?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "path": "/",
        "per_page": 25,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/projects/{project_id}/storage-providers

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

create

Example request:
curl --request POST \
    "https://vito.test/api/projects/1/storage-providers" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"provider\": \"consequatur\",
    \"name\": \"consequatur\",
    \"token\": \"consequatur\",
    \"key\": \"consequatur\",
    \"secret\": \"consequatur\"
}"
const url = new URL(
    "https://vito.test/api/projects/1/storage-providers"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "provider": "consequatur",
    "name": "consequatur",
    "token": "consequatur",
    "key": "consequatur",
    "secret": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "project_id": null,
    "global": true,
    "name": "dolores",
    "provider": "local",
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

POST api/projects/{project_id}/storage-providers

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

Body Parameters

provider    string    

The provider (aws, linode, hetzner, digitalocean, vultr, ...) Example: consequatur

name    string    

The name of the storage provider. Example: consequatur

token    string    

The token if provider requires api token Example: consequatur

key    string    

The key if provider requires key Example: consequatur

secret    string    

The secret if provider requires key Example: consequatur

show

Example request:
curl --request GET \
    --get "https://vito.test/api/projects/1/storage-providers/3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/storage-providers/3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "project_id": null,
    "global": true,
    "name": "facilis",
    "provider": "dropbox",
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

GET api/projects/{project_id}/storage-providers/{storageProvider_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

storageProvider_id    integer    

The ID of the storageProvider. Example: 3

update

Example request:
curl --request PUT \
    "https://vito.test/api/projects/1/storage-providers/3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"global\": true
}"
const url = new URL(
    "https://vito.test/api/projects/1/storage-providers/3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "global": true
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 5,
    "project_id": null,
    "global": true,
    "name": "dolores",
    "provider": "local",
    "created_at": "2025-04-21T18:40:20.000000Z",
    "updated_at": "2025-04-21T18:40:20.000000Z"
}
 

Request      

PUT api/projects/{project_id}/storage-providers/{storageProvider_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

storageProvider_id    integer    

The ID of the storageProvider. Example: 3

Body Parameters

name    string    

The name of the storage provider. Example: consequatur

global    string    

Accessible in all projects Example: true

Must be one of:
  • 1

delete

Example request:
curl --request DELETE \
    "https://vito.test/api/projects/1/storage-providers/3" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://vito.test/api/projects/1/storage-providers/3"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (204):

Empty response
 

Request      

DELETE api/projects/{project_id}/storage-providers/{storageProvider_id}

Headers

Content-Type       

Example: application/json

Accept       

Example: application/json

URL Parameters

project_id    integer    

The ID of the project. Example: 1

storageProvider_id    integer    

The ID of the storageProvider. Example: 3