Wodby 1 API Reference (3.0)

Download OpenAPI specification:

Introduction

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.

Authentication

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'

Organization

Retrieve organizations

Retrieve organizations

Authorizations:
ApiKeyAuth
query Parameters
name
string

Organization name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve organization

Retrieve organization

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Organization ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "name": "string",
  • "status": "ok",
  • "created": 0,
  • "updated": 0
}

Application

Retrieve applications

Retrieve applications

Authorizations:
ApiKeyAuth
query Parameters
org_id
string <uuid>

Organization ID

name
string

Application name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create application

Create application

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "deployment_type": "vanilla",
  • "post_deployment": true,
  • "git": {
    }
}

Response samples

Content type
application/json
{
  • "app": {
    },
  • "task": {
    }
}

Retrieve application

Retrieve application

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Application ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "name": "string",
  • "stack_id": "string",
  • "org_id": "string",
  • "git_repo_id": "string",
  • "status": "ok",
  • "created": 0,
  • "updated": 0
}

Delete application

Delete application

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Application ID

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

Retrieve Drupal application`s instances Drush aliases

Retrieve Drupal application`s instances Drush aliases

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Application ID

Responses

Response samples

Content type
application/json
"string"

Instance

Retrieve instances

Retrieve instances

Authorizations:
ApiKeyAuth
query Parameters
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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create instance

Create instance

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "app_id": "string",
  • "server_id": "string",
  • "type": "dev",
  • "name": "string",
  • "title": "string",
  • "post_deployment": true,
  • "git": {
    }
}

Response samples

Content type
application/json
{
  • "instance": {
    },
  • "task": {
    }
}

Retrieve application instance

Retrieve application instance

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Instance ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "title": "string",
  • "type": "dev",
  • "org_id": "string",
  • "app_id": "string",
  • "build": {
    },
  • "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

Delete application instance

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Instance ID

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

Deploy instance

Deploy instance

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Instance ID

Request Body schema: application/json
post_deployment
boolean

Responses

Request samples

Content type
application/json
{
  • "post_deployment": true
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Deploy instance codebase

Deploy instance codebase

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Instance ID

Request Body schema: application/json
object
post_deployment
boolean

Responses

Request samples

Content type
application/json
{
  • "git": {
    },
  • "post_deployment": true
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Upgrade instances

Upgrade instances

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
instances
required
Array of strings (UUID) [ 1 .. 50 ] items

Responses

Request samples

Content type
application/json
{
  • "instances": [
    ]
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Upgrade instance

Upgrade instance

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Instance ID

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

Task

Retrieve tasks

Retrieve tasks

Authorizations:
ApiKeyAuth
query Parameters
org_id
string <uuid>

Organization ID

user_id
string <uuid>

User ID

status
string

Task status

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve task

Retrieve task

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Task ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "org_id": "string",
  • "status": "waiting",
  • "start": 0,
  • "end": 0,
  • "ttl": 0,
  • "created": 0,
  • "updated": 0
}

Stack

Retrieve stacks

Retrieve stacks

Authorizations:
ApiKeyAuth
query Parameters
org_id
string <uuid>

Organization ID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update official stacks from upstream

Update official stacks from upstream

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
stacks
required
Array of strings (UUID) [ 1 .. 50 ] items

Responses

Request samples

Content type
application/json
{
  • "stacks": [
    ]
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Retrieve stack

Retrieve stack

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Stack ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "version": "string",
  • "new_version": "string",
  • "revision_number": 0,
  • "services": [
    ],
  • "org_id": "string",
  • "created": 0,
  • "updated": 0
}

Update official stack from upstream

Update official stack from upstream

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Stack ID

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

Git repository

Retrieve git repositories

Retrieve git repositories

Authorizations:
ApiKeyAuth
query Parameters
org_id
string <uuid>

Organization ID

name
string

Git repository name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve git repository

Retrieve git repository

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Git repository ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "url": "string",
  • "org_id": "string",
  • "status": "ok",
  • "created": 0,
  • "updated": 0
}

Server

Retrieve servers

Retrieve servers

Authorizations:
ApiKeyAuth
query Parameters
org_id
string <uuid>

Organization ID

name
string

Server name

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve server

Retrieve server

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Server ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "ip_address": "string",
  • "version": "string",
  • "org_id": "string",
  • "status": "ok",
  • "created": 0,
  • "updated": 0
}

Domain

Retrieve domains

Retrieve domains

Authorizations:
ApiKeyAuth
query Parameters
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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve domain

Retrieve domain

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Domain ID

Responses

Response samples

Content type
application/json
{
  • "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
}

Backup

Retrieve backups by instance

Retrieve backups by instance

Authorizations:
ApiKeyAuth
query Parameters
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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create manual backup

Create a manual instance backup

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "instance_id": "string",
  • "components": [
    ],
  • "mirror": false,
  • "uuid": "string",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "task": {
    }
}

Retrieve backup

Retrieve backup

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Backup ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "type": "system",
  • "org_id": "string",
  • "instance_id": "string",
  • "spent": 0,
  • "status": "ok",
  • "files": [
    ],
  • "created": 0,
  • "updated": 0
}

Delete backup

Delete backup

Authorizations:
ApiKeyAuth
path Parameters
id
required
string <uuid>

Backup ID

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

User

Retrieve authenticated user

Retrieve authenticated user

Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "email": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "created": 0,
  • "updated": 0
}