Skip to main content
Ready to deploy? Start Free Trial

Documentation Reference

API reference

Every function of /api/v1: its path, parameters, answer and errors.

Generated
Base URL
https://cloudwady.com/api/v1
Every call sends
Authorization: Bearer cwk_…
An answer
{"data": …}
A refusal
{"error": {"code": …, "message": …}}
OpenAPI
/api/v1/openapi.json

A refusal comes with its HTTP status. Every error code, and what to do about it

Apps

apps.backup

POST /api/v1/apps/{id}/backup

Back the app up now (a change: the token must hold it)

Permission
deployment_backup: create + backup
MCP tool
apps_backup
A change. Your role is graded by the app's environment (production, staging, development): a token holds this function only for the environments your role may change. An AI assistant asks you to confirm it before it runs.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
format body string: zip | dump "zip" zip: database and filestore; dump: the database alone.
The answer: 5 fields
FieldTypeDescription
state string: started | already_running
run_id integer or null The run to follow with runs.get.
app_id integer or null
backup_id integer or null
backup_run_id integer or null The backup taken first, when one was asked for: the change's run waits for it.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 writes_disabled403 idempotency_key_required428 idempotency_key_reused422 request_in_progress409 locked423 plan_required403 in_progress409

curl -X POST -H "Authorization: Bearer $CW_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{}' https://cloudwady.com/api/v1/apps/42/backup

apps.get

GET /api/v1/apps/{id}

One app, with its URLs, repositories and any version upgrade under way

Permission
deployment_app: read
MCP tool
apps_get
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 46 fields
FieldTypeDescription
id integer
name string
namespace string
project string
environment string
environment_type string or null: production | staging | development null for an app outside any environment.
version string
edition string
state string
url string or null
server string or null
deployed_at string or null
updated_at string or null
backup_health string: healthy | warning | critical | none
last_backup_at string or null
urls array of object
urls[].url string
urls[].primary boolean
urls[].state string
urls[].ssl_status string: valid | expiring_soon | expired | error | unknown
urls[].ssl_expires_at string or null
urls[].public_check string or null: passed | failed The last outside check: the URL answered as this app, or not; null: not checked.
urls[].public_check_code string or null What the last check found, or why it did not run.
urls[].public_checked_at string or null
repositories array of object
repositories[].repository string
repositories[].repository_url string or null
repositories[].branch string
repositories[].main boolean
repositories[].deployed_sha string or null The commit checked out on the server, when last read.
repositories[].head_sha string or null The branch's newest commit the platform knows.
repositories[].deployed_message string or null
repositories[].up_to_date boolean or null null when either commit is unknown.
repositories[].checked_at string or null
repositories[].deleted_upstream boolean
upgrade object or null The app's open version upgrade, as the old app or the new one; null when none.
upgrade.id integer
upgrade.from_version string
upgrade.to_version string
upgrade.purpose string: test | production
upgrade.state string
upgrade.source_app_id integer
upgrade.source_app string
upgrade.new_app_id integer or null
upgrade.new_app string or null
maintenance boolean In maintenance: its users see the maintenance page until it is taken out.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/apps/42

apps.list

GET /api/v1/apps

Apps in the token's namespaces

Permission
deployment_app: read
MCP tool
apps_list

Parameters

NameInTypeDefaultDescription
search query string Only apps whose name contains this (any case).
environment_type query string: production | staging | development
server_id query integer
version query string An Odoo version, e.g. 19.0.
edition query string: community | enterprise
project query string Project name or code contains this.
state query string
include_deleted query boolean false Also list deleted and disabled records.
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 17 fields
FieldTypeDescription
items array of object
items[].id integer
items[].name string
items[].namespace string
items[].project string
items[].environment string
items[].environment_type string or null: production | staging | development null for an app outside any environment.
items[].version string
items[].edition string
items[].state string
items[].url string or null
items[].server string or null
items[].deployed_at string or null
items[].updated_at string or null
items[].backup_health string: healthy | warning | critical | none
items[].last_backup_at string or null
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/apps

apps.maintenance

POST /api/v1/apps/{id}/maintenance

Put the app in maintenance or take it out (a change: users see the maintenance page)

Permission
deployment_app: update + deploy
MCP tool
apps_maintenance
A change. Your role is graded by the app's environment (production, staging, development): a token holds this function only for the environments your role may change. An AI assistant asks you to confirm it before it runs.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
on required body boolean true puts the app in maintenance, false takes it out.
The answer: 5 fields
FieldTypeDescription
state string: started | already_running
run_id integer or null The run to follow with runs.get.
app_id integer or null
backup_id integer or null
backup_run_id integer or null The backup taken first, when one was asked for: the change's run waits for it.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 writes_disabled403 idempotency_key_required428 idempotency_key_reused422 request_in_progress409 locked423 plan_required403 missing_parameter400 in_progress409 not_deployed409 upgrade_standby409

curl -X POST -H "Authorization: Bearer $CW_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"on": true}' https://cloudwady.com/api/v1/apps/42/maintenance

apps.restart

POST /api/v1/apps/{id}/restart

Restart the app (a change: its users are cut off for a moment)

Permission
deployment_app: update + deploy
MCP tool
apps_restart
A change. Your role is graded by the app's environment (production, staging, development): a token holds this function only for the environments your role may change. An AI assistant asks you to confirm it before it runs.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 5 fields
FieldTypeDescription
state string: started | already_running
run_id integer or null The run to follow with runs.get.
app_id integer or null
backup_id integer or null
backup_run_id integer or null The backup taken first, when one was asked for: the change's run waits for it.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 writes_disabled403 idempotency_key_required428 idempotency_key_reused422 request_in_progress409 locked423 plan_required403 in_progress409 upgrade_standby409

curl -X POST -H "Authorization: Bearer $CW_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{}' https://cloudwady.com/api/v1/apps/42/restart

apps.update

POST /api/v1/apps/{id}/update

Update the app to its branches' latest code, and its modules (a change)

Permission
deployment_app: update + deploy
MCP tool
apps_update
A change. Your role is graded by the app's environment (production, staging, development): a token holds this function only for the environments your role may change. An AI assistant asks you to confirm it before it runs.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
quick body boolean false Pull the code and restart on the same image, without rebuilding.
modules body string: changed | configured | none "changed" The module update that follows: of the addons the pull changed, of the app's configured scope, or none (quick only).
backup body boolean Back the app up first, in the same queue. Default: on in production, off elsewhere.
backup_format body string: zip | dump "zip" zip: database and filestore; dump: the database alone.
The answer: 5 fields
FieldTypeDescription
state string: started | already_running
run_id integer or null The run to follow with runs.get.
app_id integer or null
backup_id integer or null
backup_run_id integer or null The backup taken first, when one was asked for: the change's run waits for it.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 writes_disabled403 idempotency_key_required428 idempotency_key_reused422 request_in_progress409 locked423 plan_required403 in_progress409 not_deployed409 upgrade_standby409

curl -X POST -H "Authorization: Bearer $CW_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{}' https://cloudwady.com/api/v1/apps/42/update

apps.update_modules

POST /api/v1/apps/{id}/update-modules

Update the named modules (odoo -u) on the app's database (a change)

Permission
deployment_app: update + deploy
MCP tool
apps_update_modules
A change. Your role is graded by the app's environment (production, staging, development): a token holds this function only for the environments your role may change. An AI assistant asks you to confirm it before it runs.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
modules required body string The modules to update, comma-separated: sale,stock.
backup body boolean Back the app up first, in the same queue. Default: on in production, off elsewhere.
backup_format body string: zip | dump "zip" zip: database and filestore; dump: the database alone.
The answer: 5 fields
FieldTypeDescription
state string: started | already_running
run_id integer or null The run to follow with runs.get.
app_id integer or null
backup_id integer or null
backup_run_id integer or null The backup taken first, when one was asked for: the change's run waits for it.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 writes_disabled403 idempotency_key_required428 idempotency_key_reused422 request_in_progress409 locked423 plan_required403 missing_parameter400 in_progress409 not_deployed409 upgrade_standby409

curl -X POST -H "Authorization: Bearer $CW_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{"modules": "sale,stock"}' https://cloudwady.com/api/v1/apps/42/update-modules

Attention

attention.list

GET /api/v1/attention

What needs attention: the dashboard's Needs attention rules, with their records

Permission
deployment_project: read
MCP tool
attention_list

Parameters

NameInTypeDefaultDescription
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 8 fields
FieldTypeDescription
sections array of object Only rules with something to report, most severe first.
sections[].rule string The dashboard rule, e.g. apps_error.
sections[].severity string: danger | warning | info
sections[].label string
sections[].kind string: app | url | failure
sections[].count integer
sections[].items array of one of: object, object, object The first 20; shaped by kind.
total integer Sum of the sections' counts.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/attention

Backups

backups.get

GET /api/v1/backups/{id}

One backup

Permission
deployment_backup: read
MCP tool
backups_get
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 22 fields
FieldTypeDescription
id integer
name string
namespace string
app_id integer or null
app string or null
project string or null
environment_type string or null: production | staging | development
format string or null
size_mb number or null
taken_at string or null
automated boolean
state string or null
storage string or null
on_server boolean The file is still on the app's server; false: only off-site copies are left.
verified boolean The platform checked the archive after making it.
offsite array of object Its copies on external storage.
offsite[].storage string
offsite[].type string or null
offsite[].on_storage boolean The file is on that storage now.
offsite[].state string or null How its last upload, download or delete went.
offsite[].uploaded_at string or null
offsite[].error string or null Why the last transfer failed.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/backups/42

backups.list

GET /api/v1/backups

Backups in the token's namespaces, newest first

Permission
deployment_backup: read
MCP tool
backups_list

Parameters

NameInTypeDefaultDescription
app_id query integer
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 24 fields
FieldTypeDescription
items array of object
items[].id integer
items[].name string
items[].namespace string
items[].app_id integer or null
items[].app string or null
items[].project string or null
items[].environment_type string or null: production | staging | development
items[].format string or null
items[].size_mb number or null
items[].taken_at string or null
items[].automated boolean
items[].state string or null
items[].storage string or null
items[].on_server boolean The file is still on the app's server; false: only off-site copies are left.
items[].verified boolean The platform checked the archive after making it.
items[].offsite array of object Its copies on external storage.
items[].offsite[].storage string
items[].offsite[].type string or null
items[].offsite[].on_storage boolean The file is on that storage now.
items[].offsite[].state string or null How its last upload, download or delete went.
items[].offsite[].uploaded_at string or null
items[].offsite[].error string or null Why the last transfer failed.
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/backups

Installers

installers.get

GET /api/v1/installers/{id}

One marketplace service

Permission
ansible_installer: read
MCP tool
installers_get
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 9 fields
FieldTypeDescription
id integer
name string
namespace string
type string
app string or null
state string
server string or null
url string or null
platform_login boolean Opened with a CloudWady login, not its own password.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/installers/42

installers.list

GET /api/v1/installers

Marketplace services in the token's namespaces

Permission
ansible_installer: read
MCP tool
installers_list

Parameters

NameInTypeDefaultDescription
server_id query integer
state query string
include_deleted query boolean false Also list deleted and disabled records.
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 11 fields
FieldTypeDescription
items array of object
items[].id integer
items[].name string
items[].namespace string
items[].type string
items[].app string or null
items[].state string
items[].server string or null
items[].url string or null
items[].platform_login boolean Opened with a CloudWady login, not its own password.
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/installers

Logs

logs.tail

GET /api/v1/apps/{id}/logs

The app's log lines, newest last (at most a day back)

Permission
deployment_app: read + view_logs
MCP tool
logs_tail
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
source query string "main" Which logs, comma-separated: main (the Odoo log), setup, transfer, restore, backup, upgrade, script — or all.
since query string "1h" How far back: 30s, 15m, 1h … 24h.
after query string A previous answer's cursor: only newer lines.
grep query string Only lines containing this text (any case).
limit query integer 200
The answer: 6 fields
FieldTypeDescription
items array of object
items[].time string or null
items[].line string
items[].source string Which log: main, setup, restore …
cursor string Pass as after= to get only the lines not returned yet (follow).
truncated boolean More lines matched than limit; narrow since or grep, or ask again with the cursor.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 plan_required403 unavailable503

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/apps/42/logs

Projects

projects.get

GET /api/v1/projects/{id}

One project, with its environments

Permission
deployment_project: read
MCP tool
projects_get
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 11 fields
FieldTypeDescription
id integer
name string
code string or null
namespace string
plan string or null
disabled boolean
environments array of object The environments the caller's role sees.
environments[].id integer
environments[].name string
environments[].type string: production | staging | development
environments[].app_count integer Apps there that apps.list gives this token.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/projects/42

projects.list

GET /api/v1/projects

Projects in the token's namespaces, with their environments

Permission
deployment_project: read
MCP tool
projects_list

Parameters

NameInTypeDefaultDescription
search query string Only projects whose name or code contains this.
include_deleted query boolean false Also list deleted and disabled records.
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 13 fields
FieldTypeDescription
items array of object
items[].id integer
items[].name string
items[].code string or null
items[].namespace string
items[].plan string or null
items[].disabled boolean
items[].environments array of object The environments the caller's role sees.
items[].environments[].id integer
items[].environments[].name string
items[].environments[].type string: production | staging | development
items[].environments[].app_count integer Apps there that apps.list gives this token.
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/projects

Restore points

restore_points.list

GET /api/v1/apps/{id}/restore-points

The app's restore points, newest first: what each change moved, and the way back

Permission
deployment_app: read
MCP tool
restore_points_list
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
limit query integer 50
offset query integer 0
The answer: 20 fields
FieldTypeDescription
items array of object
items[].id integer
items[].app_id integer
items[].at string or null
items[].action string or null
items[].outcome string: running | applied | failed | kept kept: the change failed and the app was kept as it was before it.
items[].run_id integer or null
items[].commits array of object The repositories whose commit the change moved.
items[].commits[].repository string
items[].commits[].before string or null
items[].commits[].after string or null
items[].modules array of string Modules the change migrated.
items[].backup_id integer or null
items[].backup string or null
items[].backup_verified boolean
items[].rollback_of_id integer or null
items[].held boolean Rolled back to this point: auto-updates wait.
items[].instant_undo boolean The database from before the change is still held: undone by a rename.
items[].kept_until string or null
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/apps/42/restore-points

Runs

runs.get

GET /api/v1/runs/{id}

One run with its steps and, where a step failed, why

Permission
deployment_workflow: read
MCP tool
runs_get
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 23 fields
FieldTypeDescription
id integer
workflow string
action string
state string
retrying boolean In error, but a failed step will be retried automatically: not failed yet.
namespace string
record string or null
record_type string or null
app_id integer or null
project string or null The project the run was about; null for a server or service run.
environment_type string or null: production | staging | development The environment the run was about; null outside one.
created_at string or null
updated_at string or null
steps array of object
steps[].name string
steps[].state string
steps[].started_at string or null
steps[].updated_at string or null
steps[].reason string or null
watcher object or null A backup, restore or version upgrade finishes on the server after its steps launched it, and a watcher there reports back: until then the run stays running. Null for a run without one.
watcher.state string: waiting | completed | failed | timeout | stopped
watcher.progress string or null What it is doing now, while waiting.
watcher.reason string or null Why it failed, timed out or stopped.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/runs/42

runs.list

GET /api/v1/runs

Recent deploy / update / backup runs in the token's namespaces, newest first

Permission
deployment_workflow: read
MCP tool
runs_list

Parameters

NameInTypeDefaultDescription
app_id query integer
state query string
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 15 fields
FieldTypeDescription
items array of object
items[].id integer
items[].workflow string
items[].action string
items[].state string
items[].retrying boolean In error, but a failed step will be retried automatically: not failed yet.
items[].namespace string
items[].record string or null
items[].record_type string or null
items[].app_id integer or null
items[].project string or null The project the run was about; null for a server or service run.
items[].environment_type string or null: production | staging | development The environment the run was about; null outside one.
items[].created_at string or null
items[].updated_at string or null
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/runs

runs.retry

POST /api/v1/runs/{id}/retry

Retry a failed run from the step that failed (a change: the token must hold it)

Permission
deployment_workflow: update + deploy
MCP tool
runs_retry
A change. Your role is graded by the app's environment (production, staging, development): a token holds this function only for the environments your role may change. An AI assistant asks you to confirm it before it runs.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
now body boolean false Retry even though an automatic retry is due in minutes.
The answer: 5 fields
FieldTypeDescription
state string: started | already_running
run_id integer or null The run to follow with runs.get.
app_id integer or null
backup_id integer or null
backup_run_id integer or null The backup taken first, when one was asked for: the change's run waits for it.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404 writes_disabled403 idempotency_key_required428 idempotency_key_reused422 request_in_progress409 locked423 plan_required403 not_retryable409 retry_coming409

curl -X POST -H "Authorization: Bearer $CW_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
  -d '{}' https://cloudwady.com/api/v1/runs/42/retry

Servers

servers.get

GET /api/v1/servers/{id}

One server

Permission
deployment_server: read
MCP tool
servers_get
Graded by the environment of the record asked for.

Parameters

NameInTypeDefaultDescription
id required path integer The record's id, as the list gives it.
The answer: 11 fields
FieldTypeDescription
id integer
name string
namespace string
state string
provider string or null
size string or null
region string or null
image string or null
lb_engine string or null
public_ip string or null
app_count integer Apps on it that apps.list gives this token (deleted and disabled ones left out).

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/servers/42

servers.list

GET /api/v1/servers

Servers in the token's namespaces

Permission
deployment_server: read
MCP tool
servers_list

Parameters

NameInTypeDefaultDescription
state query string
include_deleted query boolean false Also list deleted and disabled records.
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 13 fields
FieldTypeDescription
items array of object
items[].id integer
items[].name string
items[].namespace string
items[].state string
items[].provider string or null
items[].size string or null
items[].region string or null
items[].image string or null
items[].lb_engine string or null
items[].public_ip string or null
items[].app_count integer Apps on it that apps.list gives this token (deleted and disabled ones left out).
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/servers

URLs

urls.list

GET /api/v1/urls

The apps' URLs in the token's namespaces, with their certificates and outside checks

Permission
deployment_app: read
MCP tool
urls_list

Parameters

NameInTypeDefaultDescription
app_id query integer
ssl_status query string: valid | expiring_soon | expired | unknown
limit query integer 50
offset query integer 0
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 16 fields
FieldTypeDescription
items array of object
items[].id integer
items[].url string
items[].namespace string
items[].app_id integer
items[].app string
items[].project string or null
items[].environment_type string or null: production | staging | development
items[].primary boolean
items[].state string
items[].ssl_status string: valid | expiring_soon | expired | error | unknown
items[].ssl_expires_at string or null
items[].public_check string or null: passed | failed The last outside check: the URL answered as this app, or not; null: not checked.
items[].public_check_code string or null What the last check found, or why it did not run.
items[].public_checked_at string or null
total integer

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/urls

Identity

whoami

GET /api/v1/whoami

The token's user and the namespaces it reaches

Permission
workspace: read
MCP tool
whoami

Parameters

NameInTypeDefaultDescription
namespace query string Only this one of the token's namespaces (its code or id).
The answer: 7 fields
FieldTypeDescription
login string
name string
namespaces array of object
namespaces[].id integer
namespaces[].name string
namespaces[].code string
namespaces[].level string The caller's access level in this namespace.

Errors invalid_token401 api_not_available403 function_not_allowed403 access_denied403 rate_limited429 unknown_parameter400 invalid_parameter400 invalid_request400 internal_error500 namespace_not_found404

curl -H "Authorization: Bearer $CW_TOKEN" https://cloudwady.com/api/v1/whoami

Was this page helpful?

Your answer helps us prioritize documentation improvements.

Thanks — your feedback helps us improve.