SSH Command
- POST
- /workspaces
- /:workspace
- /projects
- /:project_name
- /pipelines
- /:pipeline_id
- /actions
Request
URL PARAMETERS
workspacerequired string
The workspace name.pipeline_idrequired integer
The numerical ID of the desired pipeline.project_namerequired string
The name ID of the project.POST PARAMETERS
namerequired string
The name of the action.typerequired string
Defines the type of the action. Should be set to SSH_COMMAND.targetsrequired string
Define a target (server) for your deployments using the following paramterscommandsrequired string[]
The array of commands invoked on the remote server.run_as_scriptboolean
If set to true, commands are executed as a regular script. If set to false, the commands will be executed one by one, in non-interactive mode.shellstring
The name of the shell that will be used to execute commands. Can be one of SH (default) or BASH.working_directorystring
The absolute or relative path on the remote server.execute_every_commandboolean
If set to true all commands will be executed regardless of the result of the previous command.regionstring
Defines the source region of EC2 addresses. Required for EC2 target. (Avaible only for EC2 target).Last modified on Sep 10, 2025
Example: SSH (Password)
curl -X POST "https://api.buddy.works/workspaces/:workspace/projects/:project_name/pipelines/:pipeline_id/actions" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Execute commands on 192.0.2.1",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"working_directory": "tests/SSH_Tests/",
"commands": [
"date >> tmp.log"
],
"targets": [
{
"type": "SSH",
"identifier": "vlatncuatc",
"host": "192.0.2.1",
"port": "22",
"auth": {
"method": "PASSWORD",
"username": "buddy",
"password": "$MyPassword"
}
}
],
"run_as_script": true,
"shell": "BASH",
"execute_every_command": false
}'EXAMPLE RESPONSE{ "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/175688/actions/196743", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/175688/action/196743/edit", "id": 196743, "name": "Execute commands on 192.0.2.1", "type": "SSH_COMMAND", "trigger_time": "ON_EVERY_EXECUTION", "last_execution_status": "INITIAL", "disabled": false, "working_directory": "tests/SSH_Tests/", "commands": [ "date >> tmp.log" ], "targets": [ { "type": "SSH", "identifier": "vlatncuatc", "host": "192.0.2.1", "port": "22", "auth": { "method": "PASSWORD", "username": "buddy", "password": "secure!Fa+KZiUPt454/V0I/rzVow==.NTxejOG4XOsR8a5u8PLhVw==" } } ], "pipeline": { "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/175688", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/175688", "id": 175688, "name": "Test Docs", "on": "EVENT", "definition_source": "LOCAL", "git_config_ref": "NONE", "events": [ { "type": "PUSH", "refs": [ "refs/heads/master" ] } ], "priority": "NORMAL", "disabled": false, "last_execution_status": "INITIAL", "always_from_scratch": false, "ignore_fail_on_project_status": false, "no_skip_to_most_recent": false, "terminate_stale_runs": false, "auto_clear_cache": false, "fetch_all_refs": false, "fail_on_prepare_env_warning": true, "concurrent_pipeline_runs": false, "do_not_create_commit_status": false, "stale": false, "waiting_for_push": false, "resources": "DEFAULT", "git_changeset_base": "LATEST_RUN", "filesystem_changeset_base": "DATE_MODIFIED", "cpu": "X86", "description_required": false }, "ignore_errors": false, "run_as_script": true, "shell": "BASH", "run_next": "WAIT_ON_SUCCESS", "execute_every_command": false }
STATUS201 Created
LIMITSX-Rate-Limit-Limit: 1 X-Rate-Limit-Remaining: 999
Example: SFTP (key)
curl -X POST "https://api.buddy.works/workspaces/:workspace/projects/:project_name/pipelines/:pipeline_id/actions" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Upload files to 192.0.2.1 by SFTP(Key)",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"working_directory": "tests/SSH_Tests/",
"commands": [
"date >> tmp.log"
],
"targets": [
{
"identifier": "sftp_target_1",
"type": "SSH",
"host": "192.0.2.1",
"port": "22",
"auth": {
"method": "ASSETS_KEY",
"username": "api_tests_user",
"asset": "id_project"
}
}
]
}'EXAMPLE RESPONSE{ "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/196734/actions/1609587", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/196734/action/1609587/edit", "id": 1610087, "name": "Upload files to 192.0.2.1 by SFTP(Key)", "type": "SSH_COMMAND", "trigger_time": "ON_EVERY_EXECUTION", "last_execution_status": "INITIAL", "disabled": false, "working_directory": "tests/SSH_Tests/", "commands": [ "date >> tmp.log" ], "targets": [ { "type": "SSH", "identifier": "sftp_target_1", "host": "192.0.2.1", "port": "22", "auth": { "method": "ASSETS_KEY", "username": "api_tests_user", "asset": "id_project" } } ], "pipeline": { "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/525739", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/525739", "id": 525739, "name": "pip6", "definition_source": "LOCAL", "git_config_ref": "FIXED", "events": [ { "type": "PUSH", "refs": [ "refs/heads/master" ] } ], "priority": "NORMAL", "disabled": false, "last_execution_status": "INITIAL", "always_from_scratch": false, "ignore_fail_on_project_status": false, "no_skip_to_most_recent": false, "terminate_stale_runs": false, "auto_clear_cache": false, "fetch_all_refs": false, "fail_on_prepare_env_warning": true, "concurrent_pipeline_runs": false, "do_not_create_commit_status": false, "stale": false, "waiting_for_push": false, "resources": "DEFAULT", "git_config": { "path": ".buddy/pip6.fixed.yml", "branch": "master", "project": "company-website" }, "git_changeset_base": "LATEST_RUN", "filesystem_changeset_base": "DATE_MODIFIED", "cpu": "X64", "description_required": false }, "ignore_errors": false, "run_as_script": false, "shell": "SH", "run_next": "WAIT_ON_SUCCESS", "execute_every_command": false }
STATUS201 Created
LIMITSX-Rate-Limit-Limit: 1 X-Rate-Limit-Remaining: 999
Example: SSH (Password & Passphrase and Key)
curl -X POST "https://api.buddy.works/workspaces/:workspace/projects/:project_name/pipelines/:pipeline_id/actions" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Execute commands on 192.0.2.1",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"working_directory": "tests/SSH_Tests/",
"commands": [
"date >> tmp.log"
],
"targets": [
{
"type": "SSH",
"identifier": "vlatncuatc",
"host": "192.0.2.1",
"port": "22",
"auth": {
"method": "ASSETS_KEY",
"username": "api_tests_user",
"passphrase": "$MyPassphrase",
"password": "$MyPassword",
"asset": "id_project"
}
}
],
"run_as_script": true,
"shell": "BASH",
"execute_every_command": false
}'EXAMPLE RESPONSE{ "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/525739/actions/1609604", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/525739/action/1609604/edit", "id": 1609604, "name": "Execute commands on 192.0.2.1", "type": "SSH_COMMAND", "trigger_time": "ON_EVERY_EXECUTION", "last_execution_status": "INITIAL", "disabled": false, "working_directory": "tests/SSH_Tests/", "commands": [ "date >> tmp.log" ], "targets": [ { "type": "SSH", "identifier": "vlatncuatc", "host": "192.0.2.1", "port": "22", "auth": { "method": "ASSETS_KEY", "username": "api_tests_user", "asset": "id_project" } } ], "pipeline": { "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/525739", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/525739", "id": 525739, "name": "pip6", "definition_source": "LOCAL", "git_config_ref": "NONE", "events": [ { "type": "PUSH", "refs": [ "refs/heads/master" ] } ], "priority": "NORMAL", "disabled": false, "last_execution_status": "INITIAL", "always_from_scratch": false, "ignore_fail_on_project_status": false, "no_skip_to_most_recent": false, "terminate_stale_runs": false, "auto_clear_cache": false, "fetch_all_refs": false, "fail_on_prepare_env_warning": true, "concurrent_pipeline_runs": false, "do_not_create_commit_status": false, "stale": false, "waiting_for_push": false, "resources": "DEFAULT", "git_changeset_base": "LATEST_RUN", "filesystem_changeset_base": "DATE_MODIFIED", "cpu": "X64", "description_required": false }, "ignore_errors": false, "run_as_script": true, "shell": "BASH", "run_next": "WAIT_ON_SUCCESS", "execute_every_command": false }
STATUS201 Created
LIMITSX-Rate-Limit-Limit: 1 X-Rate-Limit-Remaining: 999
Example: SSH with Integration
curl -X POST "https://api.buddy.works/workspaces/:workspace/projects/:project_name/pipelines/:pipeline_id/actions" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Execute commands on 192.0.2.1 with Integration",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"working_directory": "tests/SSH_Tests/",
"commands": [
"date >> tmp.log"
],
"targets": [
{
"type": "DIGITAL_OCEAN",
"identifier": "do_server",
"host": "buddy-tests",
"port": "6464",
"auth": {
"method": "ASSETS_KEY",
"username": "api_tests_user",
"password": "$MyPassword",
"asset": "id_project"
},
"integration": "digitalocean"
}
],
"run_as_script": true,
"shell": "BASH",
"execute_every_command": false
}'EXAMPLE RESPONSE{ "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/175688/actions/196737", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/175688/action/196737/edit", "id": 1610091, "name": "Execute commands on 192.0.2.1 (integration)", "type": "SSH_COMMAND", "trigger_time": "ON_EVERY_EXECUTION", "last_execution_status": "INITIAL", "disabled": false, "working_directory": "tests/SSH_Tests/", "commands": [ "date >> tmp.log" ], "targets": [ { "type": "DIGITAL_OCEAN", "identifier": "do_server", "host": "buddy-tests", "port": "6464", "auth": { "method": "ASSETS_KEY", "username": "api_tests_user", "password": "secure!mVDZtTa4G2jzOcxn6u5Ifg==.37LzUFR4h/6jFECXuElXzw==", "asset": "id_project" }, "integration": "digitalocean" } ], "pipeline": { "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/525739", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/525739", "id": 525739, "name": "pip6", "definition_source": "LOCAL", "git_config_ref": "FIXED", "events": [ { "type": "PUSH", "refs": [ "refs/heads/master" ] } ], "priority": "NORMAL", "disabled": false, "last_execution_status": "INITIAL", "always_from_scratch": false, "ignore_fail_on_project_status": false, "no_skip_to_most_recent": false, "terminate_stale_runs": false, "auto_clear_cache": false, "fetch_all_refs": false, "fail_on_prepare_env_warning": true, "concurrent_pipeline_runs": false, "do_not_create_commit_status": false, "stale": false, "waiting_for_push": false, "resources": "DEFAULT", "git_config": { "path": ".buddy/pip6.fixed.yml", "branch": "master", "project": "company-website" }, "git_changeset_base": "LATEST_RUN", "filesystem_changeset_base": "DATE_MODIFIED", "cpu": "X64", "description_required": false }, "ignore_errors": false, "run_as_script": true, "shell": "BASH", "run_next": "WAIT_ON_SUCCESS", "execute_every_command": false }
STATUS201 Created
LIMITSX-Rate-Limit-Limit: 1 X-Rate-Limit-Remaining: 999
Example: Proxy
curl -X POST "https://api.buddy.works/workspaces/:workspace/projects/:project_name/pipelines/:pipeline_id/actions" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "SSH with Proxy",
"type": "SSH_COMMAND",
"trigger_time": "ON_EVERY_EXECUTION",
"working_directory": "tests/SSH_Tests/",
"commands": [
"date >> tmp.log"
],
"targets": [
{
"identifier": "sftp_target_3",
"type": "SSH",
"host": "192.0.2.1",
"port": "22",
"auth": {
"method": "PASSWORD",
"username": "sftp-pass-0",
"password": "$MyPassword"
},
"proxy": {
"host": "proxy.myserver.com",
"port": "80",
"auth": {
"method": "PASSWORD",
"username": "api_tests_user_proxy",
"password": "$MyPassword"
}
}
}
]
}'EXAMPLE RESPONSE{ "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/525739/actions/1610128", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/525739/action/1610128/edit", "id": 1610128, "name": "SSH with Proxy", "type": "SSH_COMMAND", "trigger_time": "ON_EVERY_EXECUTION", "last_execution_status": "INITIAL", "disabled": false, "working_directory": "tests/SSH_Tests/", "commands": [ "date >> tmp.log" ], "targets": [ { "type": "SSH", "identifier": "sftp_target_3", "host": "192.0.2.1", "port": "22", "auth": { "method": "PASSWORD", "username": "sftp-pass-0", "password": "secure!mVDZtTa4G2jzOcxn6u5Ifg==.37LzUFR4h/6jFECXuElXzw==" }, "proxy": { "host": "proxy.myserver.com", "port": "80", "auth": { "method": "PASSWORD", "username": "api_tests_user_proxy", "password": "secure!mVDZtTa4G2jzOcxn6u5Ifg==.37LzUFR4h/6jFECXuElXzw==" } } } ], "pipeline": { "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/525739", "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/525739", "id": 525739, "name": "pip6", "definition_source": "LOCAL", "git_config_ref": "FIXED", "events": [ { "type": "PUSH", "refs": [ "refs/heads/master" ] } ], "priority": "NORMAL", "disabled": false, "last_execution_status": "INITIAL", "always_from_scratch": false, "ignore_fail_on_project_status": false, "no_skip_to_most_recent": false, "terminate_stale_runs": false, "auto_clear_cache": false, "fetch_all_refs": false, "fail_on_prepare_env_warning": true, "concurrent_pipeline_runs": false, "do_not_create_commit_status": false, "stale": false, "waiting_for_push": false, "resources": "DEFAULT", "git_config": { "path": ".buddy/pip6.fixed.yml", "branch": "master", "project": "company-website" }, "git_changeset_base": "LATEST_RUN", "filesystem_changeset_base": "DATE_MODIFIED", "cpu": "X64", "description_required": false }, "ignore_errors": false, "run_as_script": false, "shell": "SH", "run_next": "WAIT_ON_SUCCESS", "execute_every_command": false }
STATUS200 OK
LIMITSX-Rate-Limit-Limit: 1 X-Rate-Limit-Remaining: 999