openapi: 3.0.3 info: title: 'API Documentation' description: "VitoDeploy's API documentation." version: 1.0.0 servers: - url: 'https://your-vito-url' paths: '/api/projects/{project_id}/servers/{server_id}/cron-jobs': get: summary: list operationId: list description: 'Get all cron jobs.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null - id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - cron-jobs post: summary: create operationId: create description: 'Create a new cron job.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - cron-jobs requestBody: required: true content: application/json: schema: type: object properties: command: type: string description: '' example: sit nullable: false user: type: string description: '' example: root nullable: false enum: - root - vito frequency: type: string description: 'Frequency of the cron job.' example: '* * * * *' nullable: false required: - command - user - frequency parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}': get: summary: show operationId: show description: 'Get a cron job by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null command: 'ls -la' user: root frequency: '* * * * *' status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null command: type: string example: 'ls -la' user: type: string example: root frequency: type: string example: '* * * * *' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - cron-jobs delete: summary: delete operationId: delete description: 'Delete cron job.' parameters: [] responses: 204: description: '' tags: - cron-jobs parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: cronJob_id description: 'The ID of the cronJob.' example: 13 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/database-users': get: summary: list operationId: list description: 'Get all database users.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null username: imurray databases: [] host: '%' status: null created_at: null updated_at: null - id: null server_id: null username: raleigh.heidenreich databases: [] host: '%' status: 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null username: imurray databases: [] host: '%' status: null created_at: null updated_at: null - id: null server_id: null username: raleigh.heidenreich databases: [] host: '%' status: null created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null username: type: string example: imurray databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - database-users post: summary: create operationId: create description: 'Create a new database user.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null username: kbernhard databases: [] host: '%' status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null username: type: string example: kbernhard databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - database-users requestBody: required: true content: application/json: schema: type: object properties: username: type: string description: '' example: ut nullable: false password: type: string description: '' example: "L&1)4X-w>&T=:'Y2#x" nullable: false host: type: string description: 'Host, if it is a remote user.' example: '%' nullable: false required: - username - password - host parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}': get: summary: show operationId: show description: 'Get a database user by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null username: lavada.casper databases: [] host: '%' status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null username: type: string example: lavada.casper databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - database-users delete: summary: delete operationId: delete description: 'Delete database user.' parameters: [] responses: 204: description: '' tags: - database-users parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: databaseUser_id description: 'The ID of the databaseUser.' example: 8 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}/link': post: summary: link operationId: link description: 'Link to databases' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null username: ojerde databases: [] host: '%' status: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null username: type: string example: ojerde databases: type: array example: [] host: type: string example: '%' status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - database-users requestBody: required: true content: application/json: schema: type: object properties: databases: type: string description: 'Array of database names to link to the user.' example: laboriosam nullable: false required: - databases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: databaseUser_id description: 'The ID of the databaseUser.' example: 3 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/databases': get: summary: list operationId: list description: 'Get all databases.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null name: fkrajcik status: ready created_at: null updated_at: null - id: null server_id: null name: critchie status: ready 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null name: fkrajcik status: ready created_at: null updated_at: null - id: null server_id: null name: critchie status: ready created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null name: type: string example: fkrajcik status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - databases post: summary: create operationId: create description: 'Create a new database.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null name: cory33 status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null name: type: string example: cory33 status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - databases requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: esse nullable: false charset: type: string description: '' example: ut nullable: false collation: type: string description: '' example: labore nullable: false required: - name - charset - collation parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/databases/{id}': get: summary: show operationId: show description: 'Get a database by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null name: walter.jacey status: ready created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null name: type: string example: walter.jacey status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null tags: - databases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: id description: 'The ID of the database.' example: 9 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/databases/{database_id}': delete: summary: delete operationId: delete description: 'Delete database.' parameters: [] responses: 204: description: '' tags: - databases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: database_id description: 'The ID of the database.' example: 16 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/firewall-rules': get: summary: list operationId: list description: 'Get all firewall rules.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null name: optio server_id: null type: allow protocol: tcp port: 52674 source: 142.10.115.135 mask: 24 note: test status: null created_at: null updated_at: null - id: null name: dolores server_id: null type: allow protocol: tcp port: 34607 source: 20.175.64.76 mask: 24 note: test status: 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null name: optio server_id: null type: allow protocol: tcp port: 52674 source: 142.10.115.135 mask: 24 note: test status: null created_at: null updated_at: null - id: null name: dolores server_id: null type: allow protocol: tcp port: 34607 source: 20.175.64.76 mask: 24 note: test status: null created_at: null updated_at: null items: type: object properties: id: type: string example: null name: type: string example: optio server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 52674 source: type: string example: 142.10.115.135 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - firewall-rules post: summary: create operationId: create description: 'Create a new firewall rule.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null name: molestiae server_id: null type: allow protocol: tcp port: 26783 source: 190.202.255.27 mask: 24 note: test status: null created_at: null updated_at: null properties: id: type: string example: null name: type: string example: molestiae server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 26783 source: type: string example: 190.202.255.27 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - firewall-rules requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: voluptas nullable: false type: type: string description: '' example: deny nullable: false enum: - allow - deny protocol: type: string description: '' example: udp nullable: false enum: - tcp - udp port: type: string description: '' example: qui nullable: false source: type: string description: '' example: amet nullable: false mask: type: string description: 'Mask for source IP.' example: '0' nullable: false required: - name - type - protocol - port - mask parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}': put: summary: edit operationId: edit description: 'Update an existing firewall rule.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null name: labore server_id: null type: allow protocol: tcp port: 29044 source: 113.132.217.224 mask: 24 note: test status: null created_at: null updated_at: null properties: id: type: string example: null name: type: string example: labore server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 29044 source: type: string example: 113.132.217.224 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - firewall-rules requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: et nullable: false type: type: string description: '' example: allow nullable: false enum: - allow - deny protocol: type: string description: '' example: tcp nullable: false enum: - tcp - udp port: type: string description: '' example: rerum nullable: false source: type: string description: '' example: sed nullable: false mask: type: string description: 'Mask for source IP.' example: '0' nullable: false required: - name - type - protocol - port - mask get: summary: show operationId: show description: 'Get a firewall rule by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null name: ipsa server_id: null type: allow protocol: tcp port: 50679 source: 42.114.67.31 mask: 24 note: test status: null created_at: null updated_at: null properties: id: type: string example: null name: type: string example: ipsa server_id: type: string example: null type: type: string example: allow protocol: type: string example: tcp port: type: integer example: 50679 source: type: string example: 42.114.67.31 mask: type: integer example: 24 note: type: string example: test status: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - firewall-rules delete: summary: delete operationId: delete description: 'Delete firewall rule.' parameters: [] responses: 204: description: '' tags: - firewall-rules parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: firewallRule_id description: 'The ID of the firewallRule.' example: 85 required: true schema: type: integer /api/health: get: summary: health-check operationId: healthCheck description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: success: true version: 2.4.0 properties: success: type: boolean example: true version: type: string example: 2.4.0 tags: - general security: [] /api/projects: get: summary: list operationId: list description: 'Get all projects.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 3 name: 'Kattie Haley' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 4 name: 'Kailyn Kiehn' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 3 name: 'Kattie Haley' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 4 name: 'Kailyn Kiehn' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' items: type: object properties: id: type: integer example: 3 name: type: string example: 'Kattie Haley' created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - projects post: summary: create operationId: create description: 'Create a new project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Dayne White' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Dayne White' created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - projects requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the project.' example: excepturi nullable: false required: - name '/api/projects/{id}': get: summary: show operationId: show description: 'Get a project by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Cheyenne Ankunding III' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Cheyenne Ankunding III' created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - projects put: summary: update operationId: update description: 'Update project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 name: 'Susanna Stark' created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 3 name: type: string example: 'Susanna Stark' created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - projects requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the project.' example: mollitia nullable: false required: - name parameters: - in: path name: id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}': delete: summary: delete operationId: delete description: 'Delete project.' parameters: [] responses: 204: description: '' tags: - projects parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects': get: summary: index operationId: index description: 'Get all redirects.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null site_id: null mode: 301 from: error to: 'https://www.pfannerstill.com/facere-est-totam-laudantium-in-illo-sequi' status: ready created_at: null updated_at: null - id: null site_id: null mode: 301 from: repellat to: 'http://gislason.biz/sed-corrupti-et-id-earum-qui-consequatur-quis-voluptas.html' status: ready 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null site_id: null mode: 301 from: error to: 'https://www.pfannerstill.com/facere-est-totam-laudantium-in-illo-sequi' status: ready created_at: null updated_at: null - id: null site_id: null mode: 301 from: repellat to: 'http://gislason.biz/sed-corrupti-et-id-earum-qui-consequatur-quis-voluptas.html' status: ready created_at: null updated_at: null items: type: object properties: id: type: string example: null site_id: type: string example: null mode: type: integer example: 301 from: type: string example: error to: type: string example: 'https://www.pfannerstill.com/facere-est-totam-laudantium-in-illo-sequi' status: type: string example: ready created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - redirects post: summary: create operationId: create description: 'Create a new redirect.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - redirects requestBody: required: true content: application/json: schema: type: object properties: from: type: string description: '' example: vel nullable: false to: type: string description: '' example: ea nullable: false mode: type: string description: '' example: 307 nullable: false enum: - 301 - 302 - 307 - 308 required: - from - to - mode parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 11 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}': delete: summary: delete operationId: delete description: 'Delete a redirect.' parameters: [] responses: 204: description: '' tags: - redirects parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 11 required: true schema: type: integer - in: path name: redirect_id description: 'The ID of the redirect.' example: 9 required: true schema: type: integer '/api/projects/{project_id}/server-providers': get: summary: list operationId: list description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 3 project_id: null global: true name: id provider: custom created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 4 project_id: null global: true name: culpa provider: linode created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 3 project_id: null global: true name: id provider: custom created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 4 project_id: null global: true name: culpa provider: linode created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' items: type: object properties: id: type: integer example: 3 project_id: type: string example: null global: type: boolean example: true name: type: string example: id provider: type: string example: custom created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - server-providers post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 project_id: null global: true name: et provider: vultr created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 3 project_id: type: string example: null global: type: boolean example: true name: type: string example: et provider: type: string example: vultr created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - server-providers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' example: mollitia nullable: false name: type: string description: 'The name of the server provider.' example: adipisci nullable: false token: type: string description: 'The token if provider requires api token' example: animi nullable: false key: type: string description: 'The key if provider requires key' example: provident nullable: false secret: type: string description: 'The secret if provider requires key' example: deserunt nullable: false required: - provider - name - token - key - secret parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/server-providers/{serverProvider_id}': get: summary: show operationId: show description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 project_id: null global: true name: ab provider: digitalocean created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 3 project_id: type: string example: null global: type: boolean example: true name: type: string example: ab provider: type: string example: digitalocean created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - server-providers put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 3 project_id: null global: true name: expedita provider: aws created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 3 project_id: type: string example: null global: type: boolean example: true name: type: string example: expedita provider: type: string example: aws created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - server-providers requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the server provider.' example: eveniet nullable: false global: type: string description: 'Accessible in all projects' example: false nullable: false enum: - true - false required: - name - global delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - server-providers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: serverProvider_id description: 'The ID of the serverProvider.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers': get: summary: list operationId: list description: 'Get all servers in a project.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null project_id: null user_id: null provider_id: null name: 'Consuelo Connelly' ssh_user: vito ip: 80.154.83.232 local_ip: 45.31.117.65 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: null last_update_check: null created_at: null updated_at: null - id: null project_id: null user_id: null provider_id: null name: 'Rodolfo Fadel' ssh_user: vito ip: 103.227.79.93 local_ip: 33.49.217.56 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: null last_update_check: 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null project_id: null user_id: null provider_id: null name: 'Consuelo Connelly' ssh_user: vito ip: 80.154.83.232 local_ip: 45.31.117.65 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: null last_update_check: null created_at: null updated_at: null - id: null project_id: null user_id: null provider_id: null name: 'Rodolfo Fadel' ssh_user: vito ip: 103.227.79.93 local_ip: 33.49.217.56 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: null last_update_check: null created_at: null updated_at: null items: type: object properties: id: type: string example: null project_id: type: string example: null user_id: type: string example: null provider_id: type: string example: null name: type: string example: 'Consuelo Connelly' ssh_user: type: string example: vito ip: type: string example: 80.154.83.232 local_ip: type: string example: 45.31.117.65 port: type: integer example: 22 os: type: string example: ubuntu_22 type: type: string example: regular type_data: type: string example: null provider: type: string example: custom provider_data: type: string example: null public_key: type: string example: test status: type: string example: ready auto_update: type: string example: null available_updates: type: integer example: 0 security_updates: type: string example: null progress: type: integer example: 100 progress_step: type: string example: null updates: type: string example: null last_update_check: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - servers post: summary: create operationId: create description: 'Create a new server.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null project_id: null user_id: null provider_id: null name: 'Herbert VonRueden' ssh_user: vito ip: 91.154.105.143 local_ip: 62.75.177.7 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: null last_update_check: null created_at: null updated_at: null properties: id: type: string example: null project_id: type: string example: null user_id: type: string example: null provider_id: type: string example: null name: type: string example: 'Herbert VonRueden' ssh_user: type: string example: vito ip: type: string example: 91.154.105.143 local_ip: type: string example: 62.75.177.7 port: type: integer example: 22 os: type: string example: ubuntu_22 type: type: string example: regular type_data: type: string example: null provider: type: string example: custom provider_data: type: string example: null public_key: type: string example: test status: type: string example: ready auto_update: type: string example: null available_updates: type: integer example: 0 security_updates: type: string example: null progress: type: integer example: 100 progress_step: type: string example: null updates: type: string example: null last_update_check: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - servers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The server provider type' example: incidunt nullable: false server_provider: type: string description: 'If the provider is not custom, the ID of the server provider profile' example: hetzner nullable: false enum: - custom - hetzner - digitalocean - linode - vultr region: type: string description: 'Provider region if the provider is not custom' example: ut nullable: false plan: type: string description: 'Provider plan if the provider is not custom' example: ullam nullable: false ip: type: string description: 'SSH IP address if the provider is custom' example: architecto nullable: false port: type: string description: 'SSH Port if the provider is custom' example: praesentium nullable: false name: type: string description: 'The name of the server.' example: facere nullable: false os: type: string description: 'The os of the server' example: illo nullable: false webserver: type: string description: 'Web server' example: none nullable: false enum: - none - nginx database: type: string description: Database example: none nullable: false enum: - none - mysql57 - mysql80 - mariadb103 - mariadb104 - mariadb103 - postgresql12 - postgresql13 - postgresql14 - postgresql15 - postgresql16 php: type: string description: 'PHP version' example: '8.1' nullable: false enum: - '7.0' - '7.1' - '7.2' - '7.3' - '7.4' - '8.0' - '8.1' - '8.2' - '8.3' required: - provider - server_provider - region - plan - ip - port - name - os - webserver - database - php parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers/{id}': get: summary: show operationId: show description: 'Get a server by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null project_id: null user_id: null provider_id: null name: 'Connie Simonis' ssh_user: vito ip: 202.119.26.253 local_ip: 112.75.79.203 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: null last_update_check: null created_at: null updated_at: null properties: id: type: string example: null project_id: type: string example: null user_id: type: string example: null provider_id: type: string example: null name: type: string example: 'Connie Simonis' ssh_user: type: string example: vito ip: type: string example: 202.119.26.253 local_ip: type: string example: 112.75.79.203 port: type: integer example: 22 os: type: string example: ubuntu_22 type: type: string example: regular type_data: type: string example: null provider: type: string example: custom provider_data: type: string example: null public_key: type: string example: test status: type: string example: ready auto_update: type: string example: null available_updates: type: integer example: 0 security_updates: type: string example: null progress: type: integer example: 100 progress_step: type: string example: null updates: type: string example: null last_update_check: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/reboot': post: summary: reboot operationId: reboot description: 'Reboot a server.' parameters: [] responses: 204: description: '' tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/upgrade': post: summary: upgrade operationId: upgrade description: 'Upgrade server.' parameters: [] responses: 204: description: '' tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}': delete: summary: delete operationId: delete description: 'Delete server.' parameters: [] responses: 204: description: '' tags: - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services': get: summary: list operationId: list description: 'Get all services.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null - id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null type: type: string example: null type_data: type: string example: null name: type: string example: null version: type: string example: null unit: type: string example: null status: type: string example: null is_default: type: string example: null created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{id}': get: summary: show operationId: show description: 'Get a service by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null type: null type_data: null name: null version: null unit: null status: null is_default: null created_at: null updated_at: null properties: id: type: string example: null server_id: type: string example: null type: type: string example: null type_data: type: string example: null name: type: string example: null version: type: string example: null unit: type: string example: null status: type: string example: null is_default: type: string example: null created_at: type: string example: null updated_at: type: string example: null tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/start': post: summary: start operationId: start description: 'Start service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop': post: summary: stop operationId: stop description: 'Stop service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart': post: summary: restart operationId: restart description: 'Restart service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable': post: summary: enable operationId: enable description: 'Enable service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable': post: summary: disable operationId: disable description: 'Disable service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/services/{service_id}': delete: summary: delete operationId: delete description: 'Delete service.' parameters: [] responses: 204: description: '' tags: - services parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: service_id description: 'The ID of the service.' example: 169 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites': get: summary: list operationId: list description: 'Get all sites.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null server_id: null 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: null updated_at: null - id: null server_id: null 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: 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null server_id: null 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: null updated_at: null - id: null server_id: null 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: null updated_at: null items: type: object properties: id: type: string example: null server_id: type: string example: null source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null domain: type: string example: test.com aliases: type: string example: null web_directory: type: string example: / path: type: string example: /home php_version: type: string example: '8.2' repository: type: string example: null branch: type: string example: main status: type: string example: ready port: type: string example: null user: type: string example: vito progress: type: integer example: 100 created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - sites post: summary: create operationId: create description: 'Create a new site.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null 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: null updated_at: null properties: id: type: string example: null server_id: type: string example: null source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null domain: type: string example: test.com aliases: type: string example: null web_directory: type: string example: / path: type: string example: /home php_version: type: string example: '8.2' repository: type: string example: null branch: type: string example: main status: type: string example: ready port: type: string example: null user: type: string example: vito progress: type: integer example: 100 created_at: type: string example: null updated_at: type: string example: null tags: - sites requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: phpmyadmin nullable: false enum: - php - php-blank - phpmyadmin - laravel - wordpress - load-balancer domain: type: string description: '' example: tenetur nullable: false aliases: type: array description: '' example: - aut items: type: string php_version: type: string description: 'One of the installed PHP Versions' example: '7.4' nullable: false web_directory: type: string description: 'Required for PHP and Laravel sites' example: public nullable: false source_control: type: string description: 'Source control ID, Required for Sites which support source control' example: quasi nullable: false repository: type: string description: 'Repository, Required for Sites which support source control' example: organization/repository nullable: false branch: type: string description: 'Branch, Required for Sites which support source control' example: main nullable: false composer: type: boolean description: 'Run composer if site supports composer' example: true nullable: false version: type: string description: 'Version, if the site type requires a version like PHPMyAdmin' example: 5.2.1 nullable: false user: type: string description: 'user, to isolate the website under a new user' example: deleniti nullable: false method: type: string description: 'Load balancer method, Required if the site type is Load balancer' example: round-robin nullable: false enum: - round-robin - least-connections - ip-hash required: - type - domain - aliases - php_version - web_directory - source_control - repository - branch - composer - version - user - method parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{id}': get: summary: show operationId: show description: 'Get a site by ID.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null server_id: null 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: null updated_at: null properties: id: type: string example: null server_id: type: string example: null source_control_id: type: string example: null type: type: string example: laravel type_data: type: string example: null domain: type: string example: test.com aliases: type: string example: null web_directory: type: string example: / path: type: string example: /home php_version: type: string example: '8.2' repository: type: string example: null branch: type: string example: main status: type: string example: ready port: type: string example: null user: type: string example: vito progress: type: integer example: 100 created_at: type: string example: null updated_at: type: string example: null tags: - sites parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: id description: 'The ID of the site.' example: 12 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}': delete: summary: delete operationId: delete description: 'Delete site.' parameters: [] responses: 204: description: '' tags: - sites parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 9 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer': post: summary: load-balancer operationId: loadBalancer description: 'Update load balancer.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites requestBody: required: true content: application/json: schema: type: object properties: method: type: string description: 'Load balancer method, Required if the site type is Load balancer' example: ip-hash nullable: false enum: - round-robin - least-connections - ip-hash servers: type: array description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)' example: - dolores items: type: string required: - method - servers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 19 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases': put: summary: aliases operationId: aliases description: 'Update aliases.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites requestBody: required: true content: application/json: schema: type: object properties: aliases: type: array description: 'Array of aliases' example: - aut items: type: string required: - aliases parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 16 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script': put: summary: deployment-script operationId: deploymentScript description: 'Update site deployment script' parameters: [] responses: 204: description: '' tags: - sites requestBody: required: true content: application/json: schema: type: object properties: script: type: string description: 'Content of the deployment script' example: qui nullable: false required: - script get: summary: deployment-script operationId: deploymentScript description: 'Get site deployment script content' parameters: [] responses: 200: description: '' content: application/json: schema: type: object nullable: true tags: - sites parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: site_id description: 'The ID of the site.' example: 3 required: true schema: type: integer '/api/projects/{project_id}/source-controls': get: summary: list operationId: list description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 5 project_id: null global: true name: 'Emil Leannon' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 6 project_id: null global: true name: 'Eleazar Pacocha Sr.' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 5 project_id: null global: true name: 'Emil Leannon' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 6 project_id: null global: true name: 'Eleazar Pacocha Sr.' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' items: type: object properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Emil Leannon' provider: type: string example: github created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - source-controls post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: 'Ahmad Kulas' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Ahmad Kulas' provider: type: string example: github created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - source-controls requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider' example: github nullable: false enum: - gitlab - github - bitbucket name: type: string description: 'The name of the storage provider.' example: aliquam nullable: false token: type: string description: 'The token if provider requires api token' example: voluptatem nullable: false url: type: string description: 'The URL if the provider is Gitlab and it is self-hosted' example: 'https://brown.org/placeat-optio-illum-eius-ipsa.html' nullable: false username: type: string description: 'The username if the provider is Bitbucket' example: a nullable: false password: type: string description: 'The password if the provider is Bitbucket' example: "_/_,9'/6z;9" nullable: false required: - provider - name - token - url - username - password parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/source-controls/{sourceControl_id}': get: summary: show operationId: show description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: 'Mr. Marquis Kunde IV' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Mr. Marquis Kunde IV' provider: type: string example: github created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - source-controls put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: 'Mrs. Arvilla Mitchell' provider: github created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: 'Mrs. Arvilla Mitchell' provider: type: string example: github created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - source-controls requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the storage provider.' example: laudantium nullable: false token: type: string description: 'The token if provider requires api token' example: nulla nullable: false url: type: string description: 'The URL if the provider is Gitlab and it is self-hosted' example: 'http://wiza.com/' nullable: false username: type: string description: 'The username if the provider is Bitbucket' example: numquam nullable: false password: type: string description: 'The password if the provider is Bitbucket' example: 'MlD,$m:8^A' nullable: false global: type: string description: 'Accessible in all projects' example: false nullable: false enum: - true - false required: - name - token - url - username - password - global delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - source-controls parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: sourceControl_id description: 'The ID of the sourceControl.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/ssh-keys': get: summary: list operationId: list description: 'Get all ssh keys.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: null user: null name: 'Dr. Pansy Kunde DVM' created_at: null updated_at: null - id: null user: null name: 'Ms. Maximillia DuBuque Sr.' 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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: null user: null name: 'Dr. Pansy Kunde DVM' created_at: null updated_at: null - id: null user: null name: 'Ms. Maximillia DuBuque Sr.' created_at: null updated_at: null items: type: object properties: id: type: string example: null user: type: string example: null name: type: string example: 'Dr. Pansy Kunde DVM' created_at: type: string example: null updated_at: type: string example: null links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - ssh-keys post: summary: create operationId: create description: 'Deploy ssh key to server.' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: null user: null name: 'Uriah Harvey' created_at: null updated_at: null properties: id: type: string example: null user: type: string example: null name: type: string example: 'Uriah Harvey' created_at: type: string example: null updated_at: type: string example: null tags: - ssh-keys requestBody: required: true content: application/json: schema: type: object properties: key_id: type: string description: 'The ID of the key.' example: debitis nullable: false name: type: string description: 'Key name, required if key_id is not provided.' example: illum nullable: false public_key: type: string description: 'Public Key, required if key_id is not provided.' example: dignissimos nullable: false required: - key_id - name - public_key parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer '/api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}': delete: summary: delete operationId: delete description: 'Delete ssh key from server.' parameters: [] responses: 204: description: '' tags: - ssh-keys parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: server_id description: 'The ID of the server.' example: 29 required: true schema: type: integer - in: path name: sshKey_id description: 'The ID of the sshKey.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/storage-providers': get: summary: list operationId: list description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 5 project_id: null global: true name: autem provider: s3 created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 6 project_id: null global: true name: nihil provider: ftp created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.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: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: / per_page: 25 to: 2 total: 2 properties: data: type: array example: - id: 5 project_id: null global: true name: autem provider: s3 created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' - id: 6 project_id: null global: true name: nihil provider: ftp created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' items: type: object properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: autem provider: type: string example: s3 created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' links: type: object properties: first: type: string example: '/?page=1' last: type: string example: '/?page=1' prev: type: string example: null next: type: string example: null meta: type: object properties: current_page: type: integer example: 1 from: type: integer example: 1 last_page: type: integer example: 1 links: type: array example: - url: null label: '« Previous' active: false - url: '/?page=1' label: '1' active: true - url: null label: 'Next »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Previous' active: type: boolean example: false path: type: string example: / per_page: type: integer example: 25 to: type: integer example: 2 total: type: integer example: 2 tags: - storage-providers post: summary: create operationId: create description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: omnis provider: local created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: omnis provider: type: string example: local created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - storage-providers requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)' example: est nullable: false name: type: string description: 'The name of the storage provider.' example: voluptatem nullable: false token: type: string description: 'The token if provider requires api token' example: delectus nullable: false key: type: string description: 'The key if provider requires key' example: natus nullable: false secret: type: string description: 'The secret if provider requires key' example: saepe nullable: false required: - provider - name - token - key - secret parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer '/api/projects/{project_id}/storage-providers/{storageProvider_id}': get: summary: show operationId: show description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: molestiae provider: dropbox created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: molestiae provider: type: string example: dropbox created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - storage-providers put: summary: update operationId: update description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 5 project_id: null global: true name: dolorum provider: s3 created_at: '2025-03-31T15:27:17.000000Z' updated_at: '2025-03-31T15:27:17.000000Z' properties: id: type: integer example: 5 project_id: type: string example: null global: type: boolean example: true name: type: string example: dolorum provider: type: string example: s3 created_at: type: string example: '2025-03-31T15:27:17.000000Z' updated_at: type: string example: '2025-03-31T15:27:17.000000Z' tags: - storage-providers requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The name of the storage provider.' example: exercitationem nullable: false global: type: string description: 'Accessible in all projects' example: true nullable: false enum: - true - false required: - name - global delete: summary: delete operationId: delete description: '' parameters: [] responses: 204: description: '' tags: - storage-providers parameters: - in: path name: project_id description: 'The ID of the project.' example: 1 required: true schema: type: integer - in: path name: storageProvider_id description: 'The ID of the storageProvider.' example: 3 required: true schema: type: integer tags: - name: cron-jobs description: '' - name: database-users description: '' - name: databases description: '' - name: firewall-rules description: '' - name: general description: '' - name: projects description: '' - name: redirects description: '' - name: server-providers description: '' - name: servers description: '' - name: services description: '' - name: sites description: '' - name: source-controls description: '' - name: ssh-keys description: '' - name: storage-providers description: '' components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting here' security: - default: []