Introduction

The Robocorp API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Robocorps API follows the OpenAPI v3 specification and it is available at https://robocorp.com/api/openapi.json.

API base URL

The base URL you use to interact with the Robocorp API depends on what type of Robocorop account you have.

Non SSO users

Your API endpoint is https://cloud.robocorp.com/api/v1/.

For SSO users

Your API endpoint is https://your-sso-subdomain.robocorp.com/api/v1/.

Authentication

The Robocorp API uses API keys to authenticate requests. You can view and manage your API keys in Control Room.

Authentication to the API is performed via the HTTP Authorization header and the API key value should allways have a RC-WSKEY prefix.

API endpoints require different permissions as described in the documentation – a single API key can have one or many permissions granted.

Be sure to keep the API keys secure! Do not share your secret API keys in publicly accessible areas such as GitHub or client-side code.

Errors

The Robocorp API follows HTTP status code semantics. 2xx codes signify success, 4xx mostly represent user error, 5xx generally correspond to a server error.

The error messages will return a JSON-encoded body that contains error and message fields.

Get asset

GET

/workspaces/{workspace_id}/assets/{asset_id}

Returns an asset for the requested workspace. The asset is returned including its payload.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assets.read_asset_storage_assets

Parameters

workspace_id
string

Workspace ID

asset_id
string

Asset ID or Asset Name prefixed with `name:` e.g. `name:my-asset-name`

Responses

{
id:
string
name:
string
payload:
{
type:
"empty"
}

OR

{
type:
"url"
content_type:
string
url:
string
}
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assets/{asset_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get asset upload

GET

/workspaces/{workspace_id}/assets/{asset_id}/uploads/{upload_id}

Get the upload of an asset.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assets.write_asset_storage_assets

Parameters

workspace_id
string

Workspace ID

asset_id
string

Asset ID

upload_id
string

Payload Upload ID

Responses

{
id:
string
status:
"pending"
content_type:
string
}

OR

{
id:
string
status:
"completed"
content_type:
string
}

OR

{
id:
string
status:
"failed"
content_type:
string
reason:
string
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assets/{asset_id}/uploads/{upload_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List assets

GET

/workspaces/{workspace_id}/assets

Returns a list of all assets linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assets.read_asset_storage_assets

Parameters

workspace_id
string

Workspace ID

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
name:
string
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assets" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create new asset

POST

/workspaces/{workspace_id}/assets

Creating an asset is a multi-step process, see “Create an asset upload” to specify the data.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assets.write_asset_storage_assets

Parameters

workspace_id
string

The id of the workspace on which the worker should reside.

Request body

name:
string

Responses

{
id:
string
name:
string
payload:
{
type:
"empty"
}
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assets" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create asset upload

POST

/workspaces/{workspace_id}/assets/{asset_id}/uploads

Create an upload for the requested asset payload. For payloads with less than 5MB you can upload the contents directly on the upload creation by specifying the data field. For larger uploads you can create the upload and use the returned upload URL for uploading the contents.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assets.write_asset_storage_assets

Parameters

workspace_id
string

Workspace ID

asset_id
string

Asset ID or Asset Name prefixed with `name:` e.g. `name:my-asset-name`

Request body

content_type:
string
data?:
string

Responses

{
id:
string
status:
"completed"
content_type:
string
}

OR

{
id:
string
status:
"pending"
content_type:
string
upload_url:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assets/{asset_id}/uploads" \ --header "Authorization: RC-WSKEY {API_KEY}"

Delete asset

DELETE

/workspaces/{workspace_id}/assets/{asset_id}

Deletes the requested asset. This action is irreversible!

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assets.write_asset_storage_assets

Parameters

workspace_id
string

The id of the workspace on which the worker resides.

asset_id
string

Asset ID or Asset Name prefixed with `name:` e.g. `name:my-asset-name`

Responses

{
id:
string
deleted:
true
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assets/{asset_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get assistant

GET

/workspaces/{workspace_id}/assistants/{assistant_id}

Returns an assistant

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assistants.read_assistants

Parameters

workspace_id
string

Workspace ID

assistant_id
string

Assistant ID

Responses

{
id:
string
name:
string
task:
{
name:
string
package_id:
string
}
created_at:
timestamp (ISO 8601)
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assistants/{assistant_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get assistant run

GET

/workspaces/{workspace_id}/assistant-runs/{assistant_run_id}

Returns an assistant run for the requested assistant.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assistants.read_assistants

Parameters

workspace_id
string

Workspace ID

assistant_run_id
string

Assistant Run ID

Responses

{
id:
string
state:
"in_progress" | "completed" | "failed"
error:
{
code:
string
} | null
started_at:
timestamp (ISO 8601)
ended_at:
timestamp (ISO 8601) | null
duration:
number | null
assistant:
{
id:
string
name:
string
}
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assistant-runs/{assistant_run_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List assistants

GET

/workspaces/{workspace_id}/assistants

Returns a paginated list of assistants for the workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assistants.read_assistants

Parameters

workspace_id
string

Workspace ID

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
name:
string
task:
{
package_id:
string
name:
string
}
created_at:
timestamp (ISO 8601)
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assistants" \ --header "Authorization: RC-WSKEY {API_KEY}"

List assistant runs

GET

/workspaces/{workspace_id}/assistant-runs

Returns a paginated list of assistant runs. If an assistant id is specified, the response will only contain assistant runs for that assistant, otherwise it will return the assistant runs for all assistants in the workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assistants.read_assistants

Parameters

workspace_id
string

Workspace ID

assistant_id?
(query)
string

Assistant ID. If specified, the response will only contain assistant runs for that assistant.

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
state:
"in_progress" | "completed" | "failed"
error:
{
code:
string
} | null
started_at:
timestamp (ISO 8601)
ended_at:
timestamp (ISO 8601) | null
duration:
number | null
assistant:
{
id:
string
name:
string
}
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assistant-runs" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create assistant

POST

/workspaces/{workspace_id}/assistants

Creates a new assistant with the given name and for the specified task inside a task package.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Assistants.write_assistants

Parameters

workspace_id
string

Workspace ID

Request body

name:
string
task:
{
name:
string
package_id:
string
}

Responses

{
id:
string
name:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/assistants" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get process

GET

/workspaces/{workspace_id}/processes/{process_id}

Returns the process.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_processes

Parameters

workspace_id
string

ID of the workspace

process_id
string

ID of the process

Responses

{
id:
string
name:
string
created_at:
timestamp (ISO 8601)
steps:
[
{
id:
string
name:
string
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/processes/{process_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List processes

GET

/workspaces/{workspace_id}/processes

Returns a list of all processes linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_processes

Parameters

workspace_id
string

Workspace ID

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
name:
string
created_at:
timestamp (ISO 8601)
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/processes" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get process run

GET

/workspaces/{workspace_id}/process-runs/{process_run_id}

Returns a process run

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_processes

Parameters

workspace_id
string

Workspace ID

process_run_id
string

ID of the process run

Responses

{
id:
string
state:
"new" | "in_progress" | "completed" | "unresolved" | "stopping"
created_at:
timestamp (ISO 8601)
started_at:
timestamp (ISO 8601) | null
ended_at:
timestamp (ISO 8601) | null
process:
{
id:
string
name:
string
}
started_by:
{
type:
"api" | "user" | "schedule" | "email"
details:
{
id:
string
first_name:
string
last_name:
string
} | null

Details are only available when the process run was started by a `user`

}
duration:
number | null

Process run duration in seconds

}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/process-runs/{process_run_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List process runs

GET

/workspaces/{workspace_id}/process-runs

Returns a paginated list of process runs. If a process id is specified in the query parameters, the response will only contain process runs from that process. If not, the response will contain the process runs of the workspace in the path.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_runs

Parameters

workspace_id
string

Workspace ID

process_id?
(query)
string

Process ID, if specified, the response will only contain the process runs from this process

state?
(query)
"new" | "in_progress" | "completed" | "unresolved" | "stopping"

State of process runs

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
state:
"new" | "in_progress" | "completed" | "unresolved" | "stopping"
created_at:
timestamp (ISO 8601)
started_at:
timestamp (ISO 8601) | null
ended_at:
timestamp (ISO 8601) | null
process:
{
id:
string
name:
string
}
started_by:
{
type:
"api" | "user" | "schedule" | "email"
details:
{
id:
string
first_name:
string
last_name:
string
} | null

Details are only available when the process run was started by a `user`

}
duration:
number | null

Process run duration in seconds

}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/process-runs" \ --header "Authorization: RC-WSKEY {API_KEY}"

List process run outputs

GET

/workspaces/{workspace_id}/outputs

Returns a list of process run outputs.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_work_items

Parameters

workspace_id
string

Workspace ID

process_run_id
(query)
string

Process Run ID

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
created_at:
timestamp (ISO 8601)
process:
{
id:
string
}
process_run:
{
id:
string
}
payload:
JSON | null
files:
[
{
id:
string
size:
number

File size in bytes

name:
string

File name

download:
{
url:
string

File download URL. The URL is valid for **one hour**.

}
}
]
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/outputs" \ --header "Authorization: RC-WSKEY {API_KEY}"

Delete process run

DELETE

/workspaces/{workspace_id}/process-runs/{process_run_id}

Deletes a process run. This action is irreversible!

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_runs

Parameters

workspace_id
string

The id of the workspace on which the robot resides.

process_run_id
string

The id of the process run to delete.

Responses

{
id:
string
deleted:
true
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/process-runs/{process_run_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Start process run (for integrations)

POST

/workspaces/{workspace_id}/processes/{process_id}/process-runs-integrations

Starts a process run for the requested process. This endpoint is useful when you don't have control over the headers and / or request body of the caller and need a plain URL. This includes e.g. certain integration cases. The full request body will be provided as the input work item for the process run. The API Key must be provided as the value of the token query-string parameter. This endpoint supports webhook handshakes for added security. Currently we support the protocol employed by Asana. If you are using Asana, use the with_handshake=asana query string parameter when constructing the URL to enable Asana webhook handshakes.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.trigger_processes

Parameters

workspace_id
string

Workspace ID

process_id
string

Process ID

token
(query)
string

Authorization token

with_handshake?
(query)
"asana"

Handshake type

Request body

Any valid JSON payload. The full request body is passed as a work item to the process run input.

JSON

Responses

{
started:
true
id:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/processes/{process_id}/process-runs-integrations" \ --header "Authorization: RC-WSKEY {API_KEY}"

Start process run

POST

/workspaces/{workspace_id}/processes/{process_id}/process-runs

Starts a process run for the requested process. You may choose to start a process run without work items, with specified work items, or with the work items that are waiting in the input queue of the specified process.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.trigger_processes

Parameters

workspace_id
string

The id of the workspace on which the process resides.

process_id
string

The id of the process to start.

Request body (optional)

Omitting the request body will start a process run with either the default work item, if configured, or an empty work item.

callback?:
{
url:
string
secret:
string
callback_events:
[
"started" | "completed" | "unresolved"
]
}

Responses

{
started:
false
}

This signals that a new process run was not started. This happens when a process run start with Input Work Items is requested, but no Input Work Items are available.

OR

{
started:
true
id:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/processes/{process_id}/process-runs" \ --header "Authorization: RC-WSKEY {API_KEY}"

Stop process run

POST

/workspaces/{workspace_id}/process-runs/{process_run_id}/stop

Stops the process run.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.trigger_processes

Parameters

workspace_id
string

The id of the workspace on which the process run resides.

process_run_id
string

The id of the process run to stop.

Request body

Set whether or not to set the remaining work items as done or terminating the ongoing activity runs, as well as the reason for stopping the process run.

set_remaining_work_items_as_done:
boolean
terminate_ongoing_activity_runs:
boolean
reason?:
string

Responses

{
accepted:
boolean
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/process-runs/{process_run_id}/stop" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get step run

GET

/workspaces/{workspace_id}/step-runs/{step_run_id}

Returns a specific step run from a process run.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_runs

Parameters

workspace_id
string

Workspace ID

step_run_id
string

ID of the step run

Responses

{
id:
string
state:
"new" | "awaiting_worker" | "in_progress" | "completed" | "failed"
state_updated_at:
timestamp (ISO 8601)
error:
{
code:
string
} | null

An object containing the error code, if the run failed.

started_at:
timestamp (ISO 8601) | null
ended_at:
timestamp (ISO 8601) | null
duration:
number | null
step:
{
id:
string
name:
string
}
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/step-runs/{step_run_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get step run artifact

GET

/workspaces/{workspace_id}/step-runs/{step_run_id}/artifacts/{artifact_id}

Returns a step run artifact.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_run_outputs

Parameters

workspace_id
string

Workspace ID

step_run_id
string

ID of the step run

artifact_id
string

ID of the artifact to retrieve

Responses

{
id:
string
name:
string
size:
number
url:
string
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/step-runs/{step_run_id}/artifacts/{artifact_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List step runs

GET

/workspaces/{workspace_id}/step-runs

Returns a paginated list of step runs.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_processes

Parameters

workspace_id
string

Workspace ID

process_run_id
(query)
string

Process Run ID

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
state:
"new" | "awaiting_worker" | "in_progress" | "completed" | "failed"
state_updated_at:
timestamp (ISO 8601)
error:
{
code:
string
} | null

An object containing the error code, if the run failed.

started_at:
timestamp (ISO 8601) | null
ended_at:
timestamp (ISO 8601) | null
duration:
number | null
step:
{
id:
string
name:
string
}
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/step-runs" \ --header "Authorization: RC-WSKEY {API_KEY}"

List step run artifacts

GET

/workspaces/{workspace_id}/step-runs/{step_run_id}/artifacts

Returns the list of all artifacts for a step run.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_run_outputs

Parameters

workspace_id
string

Workspace ID

step_run_id
string

Step Run ID

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
name:
string
size:
number
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/step-runs/{step_run_id}/artifacts" \ --header "Authorization: RC-WSKEY {API_KEY}"

List step run console messages

GET

/workspaces/{workspace_id}/step-runs/{step_run_id}/console-messages

Returns a paginated list of console messages for the step run.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_run_outputs

Parameters

workspace_id
string

Workspace ID

step_run_id
string

Step Run ID

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
timestamp:
timestamp (ISO 8601)
message:
string
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/step-runs/{step_run_id}/console-messages" \ --header "Authorization: RC-WSKEY {API_KEY}"

List step run events

GET

/workspaces/{workspace_id}/step-runs/{step_run_id}/events

Returns the events of a step run.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_run_outputs

Parameters

workspace_id
string

Workspace ID

step_run_id
string

ID of the step run

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
timestamp:
string
event_type:
string
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/step-runs/{step_run_id}/events" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get task package

GET

/workspaces/{workspace_id}/task-packages/{task_package_id}

Returns a task package (zip type only), including the URL to download it as well as the URL and form data to upload a new version

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Tasks.read_task_packages

Parameters

workspace_id
string

The id of the workspace on which the task package resides.

task_package_id
string

The id of the task package to retrieve.

Responses

{
id:
string
name:
string
type:
"zip"
tasks:
[
{
name:
string
}
]

Tasks contained in the task package: empty array if the task package has not been uploaded yet.

download:
{
url:
string

The URL to download the task package. Null if the task package has not been uploaded yet.

} | null
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/task-packages/{task_package_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create new task package

POST

/workspaces/{workspace_id}/task-packages

Creates a new task package with the given name in the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Tasks.write_task_packages

Parameters

workspace_id
string

The id of the workspace in which to create the task package

Request body

The name of the task package to create

name:
string
type:
"zip"

Responses

{
id:
string
name:
string
type:
"zip"
tasks:
[
{
name:
string
}
]

Tasks contained in the task package: empty array if the task package has not been uploaded yet.

download:
{
url:
string

The URL to download the task package. Null if the task package has not been uploaded yet.

} | null
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/task-packages" \ --header "Authorization: RC-WSKEY {API_KEY}"

Delete task package

DELETE

/workspaces/{workspace_id}/task-packages/{task_package_id}

Deletes a specific task package. This action is irreversible!

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Tasks.write_task_packages

Parameters

workspace_id
string

The id of the workspace on which the task package resides.

task_package_id
string

The id of the task package to delete.

Responses

{
id:
string
deleted:
true
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/task-packages/{task_package_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get webhook

GET

/workspaces/{workspace_id}/webhooks/{webhook_id}

Returns a webhook for the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Webhooks.read_webhooks

Parameters

workspace_id
string

The ID of the workspace

webhook_id
string

The ID of the webhook

Responses

{
id:
string
process:
{
id:
string
} | null
enabled_events:
[
string
]
secret:
string
endpoint:
string
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/webhooks/{webhook_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List webhooks

GET

/workspaces/{workspace_id}/webhooks

Retrieves a list of all webhooks for the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Webhooks.read_webhooks

Parameters

workspace_id
string

The ID of the workspace

limit?
(query)
number

Limit for paginated response

Responses

{
data:
[
{
id:
string
process:
{
id:
string
} | null
enabled_events:
[
string
]
endpoint:
string
}
]
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/webhooks" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create process webhook

POST

/workspaces/{workspace_id}/webhooks

Creates a process webhook for the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Webhooks.write_webhooks

Parameters

workspace_id
string

The ID of the workspace

Request body

endpoint:
string
enabled_events:
[
"process_run.started" | "process_run.completed" | "process_run.unresolved"
]
process:
{
id:
string
}

Responses

{
id:
string
process:
{
id:
string
} | null
enabled_events:
[
string
]
secret:
string
endpoint:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/webhooks" \ --header "Authorization: RC-WSKEY {API_KEY}"

Delete webhook

DELETE

/workspaces/{workspace_id}/webhooks/{webhook_id}

Deletes the requested webhook. This action is irreversible!

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Webhooks.write_webhooks

Parameters

workspace_id
string

The ID of the workspace

webhook_id
string

The ID of the webhook

Responses

{
id:
string
deleted:
true
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/webhooks/{webhook_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get work item

GET

/workspaces/{workspace_id}/work-items/{work_item_id}

Returns a work item for the requested process. You can specify whether you want to also retrieve the work item's data (payload and/or files) by supplying the include_data query parameter.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_work_items

Parameters

workspace_id
string

Workspace ID

work_item_id
string

Work Item ID

Responses

{
id:
string
created_at:
timestamp (ISO 8601)
state:
"new" | "pending" | "in_progress" | "failed" | "done"
state_updated_at:
timestamp (ISO 8601) | null
process:
{
id:
string
}
process_run:
{
id:
string
} | null
step:
{
id:
string
} | null
step_run:
{
id:
string
} | null
payload:
JSON | null
files:
[
{
id:
string
size:
number

File size in bytes

name:
string

File name

download:
{
url:
string

File download URL. The URL is valid for **one hour**.

}
}
]
exception:
{
code:
string
type:
"application" | "business" | "orchestrator" | "unspecified"
message:
string
} | null
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/work-items/{work_item_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List work items

GET

/workspaces/{workspace_id}/work-items

Returns a paginated list of work items. You can specify filtering work item by state, process_id and process_run_id using the query parameters.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.read_work_items

Parameters

workspace_id
string

Workspace ID

process_id?
(query)
string

Process ID

process_run_id?
(query)
string

Process Run ID

state?
(query)
"new" | "pending" | "in_progress" | "failed" | "done"

Work item state filter

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
created_at:
timestamp (ISO 8601)
state:
"new" | "pending" | "in_progress" | "failed" | "done"
state_updated_at:
timestamp (ISO 8601) | null
process:
{
id:
string
}
process_run:
{
id:
string
} | null
step:
{
id:
string
} | null
step_run:
{
id:
string
} | null
exception:
{
code:
string
type:
"application" | "business" | "orchestrator" | "unspecified"
message:
string
} | null
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/work-items" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create work item

POST

/workspaces/{workspace_id}/work-items

Create a work item for the requested process.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.write_work_items

Parameters

workspace_id
string

Workspace ID

Request body

Process work item payload

process:
{
id:
string
}
payload:
JSON | null

Responses

{
id:
string
created_at:
timestamp (ISO 8601)
state:
"new" | "pending" | "in_progress" | "failed" | "done"
state_updated_at:
timestamp (ISO 8601) | null
process:
{
id:
string
}
process_run:
{
id:
string
} | null
step:
{
id:
string
} | null
step_run:
{
id:
string
} | null
payload:
JSON | null
files:
[
{
id:
string
size:
number

File size in bytes

name:
string

File name

download:
{
url:
string

File download URL. The URL is valid for **one hour**.

}
}
]
exception:
{
code:
string
type:
"application" | "business" | "orchestrator" | "unspecified"
message:
string
} | null
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/work-items" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create work item file

POST

/workspaces/{workspace_id}/work-items/{work_item_id}/files

Request to upload a work item file.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.write_work_items

Parameters

workspace_id
string

Workspace ID

work_item_id
string

Work Item ID

Request body

The name and size of work item file to create

file_name:
string
file_size:
number

Responses

{
upload:
{
url:
string
form_data:
{}

The form data fields you must include when uploading the file

}
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/work-items/{work_item_id}/files" \ --header "Authorization: RC-WSKEY {API_KEY}"

Update work item payload

POST

/workspaces/{workspace_id}/work-items/{work_item_id}/payload

Update the payload for the requested work item.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.write_work_items

Parameters

workspace_id
string

Workspace ID

work_item_id
string

Work Item ID

Request body

The updated payload of work item

payload:
JSON

Responses

{
payload:
JSON
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/work-items/{work_item_id}/payload" \ --header "Authorization: RC-WSKEY {API_KEY}"

Retry, delete or mark work items as done

POST

/workspaces/{workspace_id}/work-items/batch

Run a batch operation on one or more work items. You can retry, delete or mark failed work items as done.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Processes.write_work_items

Parameters

workspace_id
string

Workspace ID

Request body

Work item batch operation

batch_operation:
"retry" | "delete" | "mark_as_done"
work_item_ids:
[
string
]

Responses

{
accepted:
true
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/work-items/batch" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get worker

GET

/workspaces/{workspace_id}/workers/{worker_id}

Returns a worker linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.read_workers

Parameters

workspace_id
string

The id of the workspace on which the worker resides.

worker_id
string

The id of the worker to retrieve.

Responses

{
id:
string
name:
string
state:
"offline" | "idle" | "busy"
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/workers/{worker_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List workers

GET

/workspaces/{workspace_id}/workers

Returns a list of all workers linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.read_workers

Parameters

workspace_id
string

The id of the workspace on which the worker resides.

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
name:
string
state:
"offline" | "idle" | "busy"
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/workers" \ --header "Authorization: RC-WSKEY {API_KEY}"

Update worker

POST

/workspaces/{workspace_id}/workers/{worker_id}

Updates the requested worker by setting only the values defined in the request body.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace on which the worker resides.

worker_id
string

The id of the worker to update.

Request body

The worker details to update.

name:
string

Responses

{
id:
string
name:
string
state:
"offline" | "idle" | "busy"
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/workers/{worker_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Delete worker

DELETE

/workspaces/{workspace_id}/workers/{worker_id}

Deletes the requested worker. This action is irreversible!

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace on which the worker resides.

worker_id
string

The id of the worker to delete.

Responses

{
id:
string
deleted:
true
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/workers/{worker_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get worker group

GET

/workspaces/{workspace_id}/worker-groups/{worker_group_id}

Returns a worker group linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.read_workers

Parameters

workspace_id
string

The id of the workspace on which the worker group resides.

worker_group_id
string

The id of the worker group to retrieve.

Responses

{
id:
string
name:
string
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups/{worker_group_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

List worker groups

GET

/workspaces/{workspace_id}/worker-groups

Returns a list of all worker groups linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.read_workers

Parameters

workspace_id
string

The id of the workspace to list worker groups for

limit?
(query)
number

Limit for paginated response

Responses

{
next:
string | null

The full URL to access the next set of results. Null if there are no next set of results.

has_more:
boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.

data:
[
{
id:
string
name:
string
}
]
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups" \ --header "Authorization: RC-WSKEY {API_KEY}"

Create worker group

POST

/workspaces/{workspace_id}/worker-groups

Creates a new worker group linked to the requested workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace under which the worker group should be created.

Request body

The name of the worker group to create

name:
string

Responses

{
id:
string
name:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups" \ --header "Authorization: RC-WSKEY {API_KEY}"

Update worker group

POST

/workspaces/{workspace_id}/worker-groups/{worker_group_id}

Updates the requested worker group by setting only the values defined in the request body.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace on which the worker group resides.

worker_group_id
string

The id of the worker group to update.

Request body

The worker group details to update

name:
string

Responses

{
id:
string
name:
string
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups/{worker_group_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Delete worker group

DELETE

/workspaces/{workspace_id}/worker-groups/{worker_group_id}

Deletes the requested worker group. This action is irreversible!

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace on which the worker group resides.

worker_group_id
string

The id of the worker group to delete.

Responses

{
id:
string
deleted:
true
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups/{worker_group_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Add worker to worker group

POST

/workspaces/{workspace_id}/worker-groups/{worker_group_id}/workers

Adds an existing worker to the requested worker group.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace on which the worker group resides.

worker_group_id
string

The id of the worker group to add the worker to

Request body

The id of the worker to add to the worker group

worker:
{
id:
string
}

Responses

{
worker:
{
id:
string
}
worker_groups:
[
{
id:
string
name:
string
}
]
}

Request example

curl -X POST "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups/{worker_group_id}/workers" \ --header "Authorization: RC-WSKEY {API_KEY}"

Remove worker from worker group

DELETE

/workspaces/{workspace_id}/worker-groups/{worker_group_id}/workers/{worker_id}

Removes an existing worker from the requested worker group.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Workers.write_workers

Parameters

workspace_id
string

The id of the workspace on which the worker group resides.

worker_group_id
string

The id of the worker group to remove the worker from

worker_id
string

The id of the worker to remove from the worker group

Responses

{
worker:
{
id:
string
}
worker_groups:
[
{
id:
string
name:
string
}
]
}

Request example

curl -X DELETE "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}/worker-groups/{worker_group_id}/workers/{worker_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"

Get workspace

GET

/workspaces/{workspace_id}

Returns the workspace.

Authorization

A Control Room API key with the necessary permission(s) granted. Prefix the API key value retrieved from Control Room with RC-WSKEY.

Parameters

workspace_id
string

The id of the workspace.

Responses

{
id:
string
name:
string
organization:
{
id:
string
name:
string
}
}

Request example

curl "https://cloud.robocorp.com/api/v1/workspaces/{workspace_id}" \ --header "Authorization: RC-WSKEY {API_KEY}"