Download OpenAPI specification:
This is the Wodby 1 API reference, covering the public REST API at https://api.wodby.com/api/v3. For Wodby 2, see the Wodby 2 API reference.
The Wodby 1 API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients.
JSON is returned by all API responses, including errors.
Authenticate your account by including your secret key in API requests. Create an organization-scoped API key under Account > API Keys in the Dashboard. New keys can access only their organization and inherit the permissions of their owner. The secret is shown once; keys may expire or be revoked. Existing legacy global keys remain compatible. Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Example of authenticated request:
curl https://api.wodby.com/api/v3/user -H 'X-API-KEY: YOUR_API_KEY'
Retrieve applications
| org_id | string <uuid> Organization ID |
| name | string Application name |
[- {
- "id": "string",
- "title": "string",
- "name": "string",
- "stack_id": "string",
- "org_id": "string",
- "git_repo_id": "string",
- "status": "ok",
- "created": 0,
- "updated": 0
}
]Create application
| org_id required | string (UUID) |
| title | string |
| name required | string^[a-z0-9][a-z0-9-]{0,28}[a-z0-9]$ |
| stack_id required | string (UUID) |
| docroot | string |
| sitename | string |
| server_id required | string (UUID) |
| instance_type | string (Instance Type) Enum: "dev" "stage" "prod" |
| instance_name | string^[a-z0-9][a-z0-9-]{0,18}[a-z0-9]$ |
| instance_title | string |
Array of objects | |
| deployment_type | string Default: "vanilla" Enum: "vanilla" "git" "ci" |
| post_deployment | boolean |
object |
{- "org_id": "string",
- "title": "string",
- "name": "string",
- "stack_id": "string",
- "docroot": "string",
- "sitename": "string",
- "server_id": "string",
- "instance_type": "dev",
- "instance_name": "string",
- "instance_title": "string",
- "services": [
- {
- "name": "http-server",
- "implementation": "nginx-1-15",
- "enable": true
}
], - "deployment_type": "vanilla",
- "post_deployment": true,
- "git": {
- "repo_id": "string",
- "tree_ish": "string"
}
}{- "app": {
- "id": "string",
- "title": "string",
- "name": "string",
- "stack_id": "string",
- "org_id": "string",
- "git_repo_id": "string",
- "status": "ok",
- "created": 0,
- "updated": 0
}, - "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve application
| id required | string <uuid> Application ID |
{- "id": "string",
- "title": "string",
- "name": "string",
- "stack_id": "string",
- "org_id": "string",
- "git_repo_id": "string",
- "status": "ok",
- "created": 0,
- "updated": 0
}Delete application
| id required | string <uuid> Application ID |
{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve instances
| org_id | string <uuid> Organization ID |
| server_id | string <uuid> Server ID |
| app_id | string <uuid> Application ID |
| type | string Instance type |
| name | string Instance name |
[- {
- "id": "string",
- "name": "string",
- "title": "string",
- "type": "dev",
- "org_id": "string",
- "app_id": "string",
- "build": {
- "uuid": "string",
- "provider": "string",
- "number": 0,
- "url": "string",
- "repo_url": "string",
- "branch": "string",
- "tag": "string",
- "commit": "string",
- "message": "string",
- "username": "string",
- "email": "string",
- "deployed": 0,
- "slug": "string",
- "images": "string",
- "stack_ver": "string"
}, - "server_id": "string",
- "stack_rev_number": 0,
- "stack_version": "string",
- "stack_id": "string",
- "git_repo_id": "string",
- "git_repo_target": "string",
- "has_new_version": true,
- "status": "ok",
- "created": 0,
- "updated": 0,
- "last_deploy": 0
}
]Create instance
| app_id required | string (UUID) |
| server_id required | string (UUID) |
| type required | string (Instance Type) Enum: "dev" "stage" "prod" |
| name required | string^[a-z0-9][a-z0-9-]{0,18}[a-z0-9]$ |
| title | string |
| post_deployment | boolean |
object |
{- "app_id": "string",
- "server_id": "string",
- "type": "dev",
- "name": "string",
- "title": "string",
- "post_deployment": true,
- "git": {
- "tree_ish": "string"
}
}{- "instance": {
- "id": "string",
- "name": "string",
- "title": "string",
- "type": "dev",
- "org_id": "string",
- "app_id": "string",
- "build": {
- "uuid": "string",
- "provider": "string",
- "number": 0,
- "url": "string",
- "repo_url": "string",
- "branch": "string",
- "tag": "string",
- "commit": "string",
- "message": "string",
- "username": "string",
- "email": "string",
- "deployed": 0,
- "slug": "string",
- "images": "string",
- "stack_ver": "string"
}, - "server_id": "string",
- "stack_rev_number": 0,
- "stack_version": "string",
- "stack_id": "string",
- "git_repo_id": "string",
- "git_repo_target": "string",
- "has_new_version": true,
- "status": "ok",
- "created": 0,
- "updated": 0,
- "last_deploy": 0
}, - "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve application instance
| id required | string <uuid> Instance ID |
{- "id": "string",
- "name": "string",
- "title": "string",
- "type": "dev",
- "org_id": "string",
- "app_id": "string",
- "build": {
- "uuid": "string",
- "provider": "string",
- "number": 0,
- "url": "string",
- "repo_url": "string",
- "branch": "string",
- "tag": "string",
- "commit": "string",
- "message": "string",
- "username": "string",
- "email": "string",
- "deployed": 0,
- "slug": "string",
- "images": "string",
- "stack_ver": "string"
}, - "server_id": "string",
- "stack_rev_number": 0,
- "stack_version": "string",
- "stack_id": "string",
- "git_repo_id": "string",
- "git_repo_target": "string",
- "has_new_version": true,
- "status": "ok",
- "created": 0,
- "updated": 0,
- "last_deploy": 0
}Delete application instance
| id required | string Instance ID |
{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Deploy instance
| id required | string <uuid> Instance ID |
| post_deployment | boolean |
{- "post_deployment": true
}{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Deploy instance codebase
| id required | string <uuid> Instance ID |
object | |
| post_deployment | boolean |
{- "git": {
- "tree_ish": "string"
}, - "post_deployment": true
}{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Upgrade instances
| instances required | Array of strings (UUID) [ 1 .. 50 ] items |
{- "instances": [
- "string"
]
}{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Upgrade instance
| id required | string <uuid> Instance ID |
{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve tasks
| org_id | string <uuid> Organization ID |
| user_id | string <uuid> User ID |
| status | string Task status |
[- {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
]Retrieve stacks
| org_id | string <uuid> Organization ID |
[- {
- "id": "string",
- "title": "string",
- "version": "string",
- "new_version": "string",
- "revision_number": 0,
- "services": [
- {
- "id": "string",
- "title": "string",
- "name": "string",
- "required": true,
- "default": true,
- "implementations": [
- {
- "title": "string",
- "name": "string",
- "default": true,
- "docker_image": "string"
}
]
}
], - "org_id": "string",
- "created": 0,
- "updated": 0
}
]Update official stacks from upstream
| stacks required | Array of strings (UUID) [ 1 .. 50 ] items |
{- "stacks": [
- "string"
]
}{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve stack
| id required | string <uuid> Stack ID |
{- "id": "string",
- "title": "string",
- "version": "string",
- "new_version": "string",
- "revision_number": 0,
- "services": [
- {
- "id": "string",
- "title": "string",
- "name": "string",
- "required": true,
- "default": true,
- "implementations": [
- {
- "title": "string",
- "name": "string",
- "default": true,
- "docker_image": "string"
}
]
}
], - "org_id": "string",
- "created": 0,
- "updated": 0
}Update official stack from upstream
| id required | string <uuid> Stack ID |
{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve git repositories
| org_id | string <uuid> Organization ID |
| name | string Git repository name |
[- {
- "id": "string",
- "title": "string",
- "url": "string",
- "org_id": "string",
- "status": "ok",
- "created": 0,
- "updated": 0
}
]Retrieve servers
| org_id | string <uuid> Organization ID |
| name | string Server name |
[- {
- "id": "string",
- "title": "string",
- "ip_address": "string",
- "version": "string",
- "org_id": "string",
- "status": "ok",
- "created": 0,
- "updated": 0
}
]Retrieve server
| id required | string <uuid> Server ID |
{- "id": "string",
- "title": "string",
- "ip_address": "string",
- "version": "string",
- "org_id": "string",
- "status": "ok",
- "created": 0,
- "updated": 0
}Retrieve domains
| org_id | string <uuid> Organization ID |
| instance_id | string <uuid> Instance ID |
| server_id | string <uuid> Server ID |
| status | string Domain status |
| type | string Domain type |
| name | string Domain name |
[- {
- "id": "string",
- "name": "string",
- "org_id": "string",
- "instance_id": "string",
- "enabled": true,
- "primary": true,
- "protected": true,
- "indexed": true,
- "ssl": true,
- "ssl_required": true,
- "ssl_custom": true,
- "hsts": true,
- "hsts_subdomains": true,
- "redirect_to_www": true,
- "redirect_to_non_www": true,
- "status": "ok",
- "type": "technical",
- "created": 0,
- "updated": 0
}
]Retrieve domain
| id required | string <uuid> Domain ID |
{- "id": "string",
- "name": "string",
- "org_id": "string",
- "instance_id": "string",
- "enabled": true,
- "primary": true,
- "protected": true,
- "indexed": true,
- "ssl": true,
- "ssl_required": true,
- "ssl_custom": true,
- "hsts": true,
- "hsts_subdomains": true,
- "redirect_to_www": true,
- "redirect_to_non_www": true,
- "status": "ok",
- "type": "technical",
- "created": 0,
- "updated": 0
}Retrieve backups by instance
| org_id | string <uuid> Organization ID |
| instance_id | string <uuid> Instance ID |
| server_id | string <uuid> Server ID |
| type | string Backup type |
| status | string Backup status |
| days | integer Get backups for N days |
[- {
- "id": "string",
- "type": "system",
- "org_id": "string",
- "instance_id": "string",
- "spent": 0,
- "status": "ok",
- "files": [
- {
- "name": "database",
- "status": "ok",
- "spent": 0,
- "url": "string",
- "mirrored_url": "string",
- "created": 0,
- "updated": 0
}
], - "created": 0,
- "updated": 0
}
]Create a manual instance backup
| instance_id required | string (UUID) |
| components required | Array of strings non-empty unique Items Enum: "db" "files" |
| mirror | boolean Default: false |
| uuid | string (UUID) |
| comment | string <= 255 characters |
{- "instance_id": "string",
- "components": [
- "db"
], - "mirror": false,
- "uuid": "string",
- "comment": "string"
}{- "task": {
- "id": "string",
- "title": "string",
- "org_id": "string",
- "status": "waiting",
- "start": 0,
- "end": 0,
- "ttl": 0,
- "created": 0,
- "updated": 0
}
}Retrieve backup
| id required | string <uuid> Backup ID |
{- "id": "string",
- "type": "system",
- "org_id": "string",
- "instance_id": "string",
- "spent": 0,
- "status": "ok",
- "files": [
- {
- "name": "database",
- "status": "ok",
- "spent": 0,
- "url": "string",
- "mirrored_url": "string",
- "created": 0,
- "updated": 0
}
], - "created": 0,
- "updated": 0
}