Builds

Get workspace build by user, workspace name, and build number

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/users/{user}/workspace/{workspacename}/builds/{buildnumber} \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /users/{user}/workspace/{workspacename}/builds/{buildnumber}

Parameters

NameInTypeRequiredDescription
userpathstringtrueUser ID, name, or me
workspacenamepathstringtrueWorkspace name
buildnumberpathstring(number)trueBuild number

Example responses

200 Response

{
	"build_number": 0,
	"created_at": "2019-08-24T14:15:22Z",
	"daily_cost": 0,
	"deadline": "2019-08-24T14:15:22Z",
	"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
	"initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
	"initiator_name": "string",
	"job": {
		"canceled_at": "2019-08-24T14:15:22Z",
		"completed_at": "2019-08-24T14:15:22Z",
		"created_at": "2019-08-24T14:15:22Z",
		"error": "string",
		"error_code": "REQUIRED_TEMPLATE_VARIABLES",
		"file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
		"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
		"queue_position": 0,
		"queue_size": 0,
		"started_at": "2019-08-24T14:15:22Z",
		"status": "pending",
		"tags": {
			"property1": "string",
			"property2": "string"
		},
		"worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
	},
	"max_deadline": "2019-08-24T14:15:22Z",
	"reason": "initiator",
	"resources": [
		{
			"agents": [
				{
					"api_version": "string",
					"apps": [
						{
							"command": "string",
							"display_name": "string",
							"external": true,
							"health": "disabled",
							"healthcheck": {
								"interval": 0,
								"threshold": 0,
								"url": "string"
							},
							"hidden": true,
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"sharing_level": "owner",
							"slug": "string",
							"subdomain": true,
							"subdomain_name": "string",
							"url": "string"
						}
					],
					"architecture": "string",
					"connection_timeout_seconds": 0,
					"created_at": "2019-08-24T14:15:22Z",
					"directory": "string",
					"disconnected_at": "2019-08-24T14:15:22Z",
					"display_apps": ["vscode"],
					"environment_variables": {
						"property1": "string",
						"property2": "string"
					},
					"expanded_directory": "string",
					"first_connected_at": "2019-08-24T14:15:22Z",
					"health": {
						"healthy": false,
						"reason": "agent has lost connection"
					},
					"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
					"instance_id": "string",
					"last_connected_at": "2019-08-24T14:15:22Z",
					"latency": {
						"property1": {
							"latency_ms": 0,
							"preferred": true
						},
						"property2": {
							"latency_ms": 0,
							"preferred": true
						}
					},
					"lifecycle_state": "created",
					"log_sources": [
						{
							"created_at": "2019-08-24T14:15:22Z",
							"display_name": "string",
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
						}
					],
					"logs_length": 0,
					"logs_overflowed": true,
					"name": "string",
					"operating_system": "string",
					"ready_at": "2019-08-24T14:15:22Z",
					"resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
					"scripts": [
						{
							"cron": "string",
							"display_name": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"log_path": "string",
							"log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
							"run_on_start": true,
							"run_on_stop": true,
							"script": "string",
							"start_blocks_login": true,
							"timeout": 0
						}
					],
					"started_at": "2019-08-24T14:15:22Z",
					"startup_script_behavior": "blocking",
					"status": "connecting",
					"subsystems": ["envbox"],
					"troubleshooting_url": "string",
					"updated_at": "2019-08-24T14:15:22Z",
					"version": "string"
				}
			],
			"created_at": "2019-08-24T14:15:22Z",
			"daily_cost": 0,
			"hide": true,
			"icon": "string",
			"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
			"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
			"metadata": [
				{
					"key": "string",
					"sensitive": true,
					"value": "string"
				}
			],
			"name": "string",
			"type": "string",
			"workspace_transition": "start"
		}
	],
	"status": "pending",
	"template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
	"template_version_name": "string",
	"transition": "start",
	"updated_at": "2019-08-24T14:15:22Z",
	"workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
	"workspace_name": "string",
	"workspace_owner_avatar_url": "string",
	"workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
	"workspace_owner_name": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKOKcodersdk.WorkspaceBuild

To perform this operation, you must be authenticated. Learn more.

Get workspace build

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild} \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspacebuilds/{workspacebuild}

Parameters

NameInTypeRequiredDescription
workspacebuildpathstringtrueWorkspace build ID

Example responses

200 Response

{
	"build_number": 0,
	"created_at": "2019-08-24T14:15:22Z",
	"daily_cost": 0,
	"deadline": "2019-08-24T14:15:22Z",
	"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
	"initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
	"initiator_name": "string",
	"job": {
		"canceled_at": "2019-08-24T14:15:22Z",
		"completed_at": "2019-08-24T14:15:22Z",
		"created_at": "2019-08-24T14:15:22Z",
		"error": "string",
		"error_code": "REQUIRED_TEMPLATE_VARIABLES",
		"file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
		"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
		"queue_position": 0,
		"queue_size": 0,
		"started_at": "2019-08-24T14:15:22Z",
		"status": "pending",
		"tags": {
			"property1": "string",
			"property2": "string"
		},
		"worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
	},
	"max_deadline": "2019-08-24T14:15:22Z",
	"reason": "initiator",
	"resources": [
		{
			"agents": [
				{
					"api_version": "string",
					"apps": [
						{
							"command": "string",
							"display_name": "string",
							"external": true,
							"health": "disabled",
							"healthcheck": {
								"interval": 0,
								"threshold": 0,
								"url": "string"
							},
							"hidden": true,
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"sharing_level": "owner",
							"slug": "string",
							"subdomain": true,
							"subdomain_name": "string",
							"url": "string"
						}
					],
					"architecture": "string",
					"connection_timeout_seconds": 0,
					"created_at": "2019-08-24T14:15:22Z",
					"directory": "string",
					"disconnected_at": "2019-08-24T14:15:22Z",
					"display_apps": ["vscode"],
					"environment_variables": {
						"property1": "string",
						"property2": "string"
					},
					"expanded_directory": "string",
					"first_connected_at": "2019-08-24T14:15:22Z",
					"health": {
						"healthy": false,
						"reason": "agent has lost connection"
					},
					"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
					"instance_id": "string",
					"last_connected_at": "2019-08-24T14:15:22Z",
					"latency": {
						"property1": {
							"latency_ms": 0,
							"preferred": true
						},
						"property2": {
							"latency_ms": 0,
							"preferred": true
						}
					},
					"lifecycle_state": "created",
					"log_sources": [
						{
							"created_at": "2019-08-24T14:15:22Z",
							"display_name": "string",
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
						}
					],
					"logs_length": 0,
					"logs_overflowed": true,
					"name": "string",
					"operating_system": "string",
					"ready_at": "2019-08-24T14:15:22Z",
					"resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
					"scripts": [
						{
							"cron": "string",
							"display_name": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"log_path": "string",
							"log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
							"run_on_start": true,
							"run_on_stop": true,
							"script": "string",
							"start_blocks_login": true,
							"timeout": 0
						}
					],
					"started_at": "2019-08-24T14:15:22Z",
					"startup_script_behavior": "blocking",
					"status": "connecting",
					"subsystems": ["envbox"],
					"troubleshooting_url": "string",
					"updated_at": "2019-08-24T14:15:22Z",
					"version": "string"
				}
			],
			"created_at": "2019-08-24T14:15:22Z",
			"daily_cost": 0,
			"hide": true,
			"icon": "string",
			"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
			"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
			"metadata": [
				{
					"key": "string",
					"sensitive": true,
					"value": "string"
				}
			],
			"name": "string",
			"type": "string",
			"workspace_transition": "start"
		}
	],
	"status": "pending",
	"template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
	"template_version_name": "string",
	"transition": "start",
	"updated_at": "2019-08-24T14:15:22Z",
	"workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
	"workspace_name": "string",
	"workspace_owner_avatar_url": "string",
	"workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
	"workspace_owner_name": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKOKcodersdk.WorkspaceBuild

To perform this operation, you must be authenticated. Learn more.

Cancel workspace build

Code samples

# Example request using curl
curl -X PATCH http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/cancel \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

PATCH /workspacebuilds/{workspacebuild}/cancel

Parameters

NameInTypeRequiredDescription
workspacebuildpathstringtrueWorkspace build ID

Example responses

200 Response

{
	"detail": "string",
	"message": "string",
	"validations": [
		{
			"detail": "string",
			"field": "string"
		}
	]
}

Responses

StatusMeaningDescriptionSchema
200OKOKcodersdk.Response

To perform this operation, you must be authenticated. Learn more.

Get workspace build logs

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/logs \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspacebuilds/{workspacebuild}/logs

Parameters

NameInTypeRequiredDescription
workspacebuildpathstringtrueWorkspace build ID
beforequeryintegerfalseBefore Unix timestamp
afterqueryintegerfalseAfter Unix timestamp
followquerybooleanfalseFollow log stream

Example responses

200 Response

[
	{
		"created_at": "2019-08-24T14:15:22Z",
		"id": 0,
		"log_level": "trace",
		"log_source": "provisioner_daemon",
		"output": "string",
		"stage": "string"
	}
]

Responses

StatusMeaningDescriptionSchema
200OKOKarray of codersdk.ProvisionerJobLog

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
[array item]arrayfalse
» created_atstring(date-time)false
» idintegerfalse
» log_levelcodersdk.LogLevelfalse
» log_sourcecodersdk.LogSourcefalse
» outputstringfalse
» stagestringfalse

Enumerated Values

PropertyValue
log_leveltrace
log_leveldebug
log_levelinfo
log_levelwarn
log_levelerror
log_sourceprovisioner_daemon
log_sourceprovisioner

To perform this operation, you must be authenticated. Learn more.

Get build parameters for workspace build

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/parameters \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspacebuilds/{workspacebuild}/parameters

Parameters

NameInTypeRequiredDescription
workspacebuildpathstringtrueWorkspace build ID

Example responses

200 Response

[
	{
		"name": "string",
		"value": "string"
	}
]

Responses

StatusMeaningDescriptionSchema
200OKOKarray of codersdk.WorkspaceBuildParameter

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
[array item]arrayfalse
» namestringfalse
» valuestringfalse

To perform this operation, you must be authenticated. Learn more.

Removed: Get workspace resources for workspace build

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/resources \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspacebuilds/{workspacebuild}/resources

Parameters

NameInTypeRequiredDescription
workspacebuildpathstringtrueWorkspace build ID

Example responses

200 Response

[
	{
		"agents": [
			{
				"api_version": "string",
				"apps": [
					{
						"command": "string",
						"display_name": "string",
						"external": true,
						"health": "disabled",
						"healthcheck": {
							"interval": 0,
							"threshold": 0,
							"url": "string"
						},
						"hidden": true,
						"icon": "string",
						"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
						"sharing_level": "owner",
						"slug": "string",
						"subdomain": true,
						"subdomain_name": "string",
						"url": "string"
					}
				],
				"architecture": "string",
				"connection_timeout_seconds": 0,
				"created_at": "2019-08-24T14:15:22Z",
				"directory": "string",
				"disconnected_at": "2019-08-24T14:15:22Z",
				"display_apps": ["vscode"],
				"environment_variables": {
					"property1": "string",
					"property2": "string"
				},
				"expanded_directory": "string",
				"first_connected_at": "2019-08-24T14:15:22Z",
				"health": {
					"healthy": false,
					"reason": "agent has lost connection"
				},
				"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
				"instance_id": "string",
				"last_connected_at": "2019-08-24T14:15:22Z",
				"latency": {
					"property1": {
						"latency_ms": 0,
						"preferred": true
					},
					"property2": {
						"latency_ms": 0,
						"preferred": true
					}
				},
				"lifecycle_state": "created",
				"log_sources": [
					{
						"created_at": "2019-08-24T14:15:22Z",
						"display_name": "string",
						"icon": "string",
						"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
						"workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
					}
				],
				"logs_length": 0,
				"logs_overflowed": true,
				"name": "string",
				"operating_system": "string",
				"ready_at": "2019-08-24T14:15:22Z",
				"resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
				"scripts": [
					{
						"cron": "string",
						"display_name": "string",
						"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
						"log_path": "string",
						"log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
						"run_on_start": true,
						"run_on_stop": true,
						"script": "string",
						"start_blocks_login": true,
						"timeout": 0
					}
				],
				"started_at": "2019-08-24T14:15:22Z",
				"startup_script_behavior": "blocking",
				"status": "connecting",
				"subsystems": ["envbox"],
				"troubleshooting_url": "string",
				"updated_at": "2019-08-24T14:15:22Z",
				"version": "string"
			}
		],
		"created_at": "2019-08-24T14:15:22Z",
		"daily_cost": 0,
		"hide": true,
		"icon": "string",
		"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
		"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
		"metadata": [
			{
				"key": "string",
				"sensitive": true,
				"value": "string"
			}
		],
		"name": "string",
		"type": "string",
		"workspace_transition": "start"
	}
]

Responses

StatusMeaningDescriptionSchema
200OKOKarray of codersdk.WorkspaceResource

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
[array item]arrayfalse
» agentsarrayfalse
»» api_versionstringfalse
»» appsarrayfalse
»»» commandstringfalse
»»» display_namestringfalseDisplay name is a friendly name for the app.
»»» externalbooleanfalseExternal specifies whether the URL should be opened externally on the client or not.
»»» healthcodersdk.WorkspaceAppHealthfalse
»»» healthcheckcodersdk.HealthcheckfalseHealthcheck specifies the configuration for checking app health.
»»»» intervalintegerfalseInterval specifies the seconds between each health check.
»»»» thresholdintegerfalseThreshold specifies the number of consecutive failed health checks before returning "unhealthy".
»»»» urlstringfalseURL specifies the endpoint to check for the app health.
»»» hiddenbooleanfalse
»»» iconstringfalseIcon is a relative path or external URL that specifies an icon to be displayed in the dashboard.
»»» idstring(uuid)false
»»» sharing_levelcodersdk.WorkspaceAppSharingLevelfalse
»»» slugstringfalseSlug is a unique identifier within the agent.
»»» subdomainbooleanfalseSubdomain denotes whether the app should be accessed via a path on the coder server or via a hostname-based dev URL. If this is set to true and there is no app wildcard configured on the server, the app will not be accessible in the UI.
»»» subdomain_namestringfalseSubdomain name is the application domain exposed on the coder server.
»»» urlstringfalseURL is the address being proxied to inside the workspace. If external is specified, this will be opened on the client.
»» architecturestringfalse
»» connection_timeout_secondsintegerfalse
»» created_atstring(date-time)false
»» directorystringfalse
»» disconnected_atstring(date-time)false
»» display_appsarrayfalse
»» environment_variablesobjectfalse
»»» [any property]stringfalse
»» expanded_directorystringfalse
»» first_connected_atstring(date-time)false
»» healthcodersdk.WorkspaceAgentHealthfalseHealth reports the health of the agent.
»»» healthybooleanfalseHealthy is true if the agent is healthy.
»»» reasonstringfalseReason is a human-readable explanation of the agent's health. It is empty if Healthy is true.
»» idstring(uuid)false
»» instance_idstringfalse
»» last_connected_atstring(date-time)false
»» latencyobjectfalseLatency is mapped by region name (e.g. "New York City", "Seattle").
»»» [any property]codersdk.DERPRegionfalse
»»»» latency_msnumberfalse
»»»» preferredbooleanfalse
»» lifecycle_statecodersdk.WorkspaceAgentLifecyclefalse
»» log_sourcesarrayfalse
»»» created_atstring(date-time)false
»»» display_namestringfalse
»»» iconstringfalse
»»» idstring(uuid)false
»»» workspace_agent_idstring(uuid)false
»» logs_lengthintegerfalse
»» logs_overflowedbooleanfalse
»» namestringfalse
»» operating_systemstringfalse
»» ready_atstring(date-time)false
»» resource_idstring(uuid)false
»» scriptsarrayfalse
»»» cronstringfalse
»»» display_namestringfalse
»»» idstring(uuid)false
»»» log_pathstringfalse
»»» log_source_idstring(uuid)false
»»» run_on_startbooleanfalse
»»» run_on_stopbooleanfalse
»»» scriptstringfalse
»»» start_blocks_loginbooleanfalse
»»» timeoutintegerfalse
»» started_atstring(date-time)false
»» startup_script_behaviorcodersdk.WorkspaceAgentStartupScriptBehaviorfalseStartup script behavior is a legacy field that is deprecated in favor of the coder_script resource. It's only referenced by old clients. Deprecated: Remove in the future!
»» statuscodersdk.WorkspaceAgentStatusfalse
»» subsystemsarrayfalse
»» troubleshooting_urlstringfalse
»» updated_atstring(date-time)false
»» versionstringfalse
» created_atstring(date-time)false
» daily_costintegerfalse
» hidebooleanfalse
» iconstringfalse
» idstring(uuid)false
» job_idstring(uuid)false
» metadataarrayfalse
»» keystringfalse
»» sensitivebooleanfalse
»» valuestringfalse
» namestringfalse
» typestringfalse
» workspace_transitioncodersdk.WorkspaceTransitionfalse

Enumerated Values

PropertyValue
healthdisabled
healthinitializing
healthhealthy
healthunhealthy
sharing_levelowner
sharing_levelauthenticated
sharing_levelpublic
lifecycle_statecreated
lifecycle_statestarting
lifecycle_statestart_timeout
lifecycle_statestart_error
lifecycle_stateready
lifecycle_stateshutting_down
lifecycle_stateshutdown_timeout
lifecycle_stateshutdown_error
lifecycle_stateoff
startup_script_behaviorblocking
startup_script_behaviornon-blocking
statusconnecting
statusconnected
statusdisconnected
statustimeout
workspace_transitionstart
workspace_transitionstop
workspace_transitiondelete

To perform this operation, you must be authenticated. Learn more.

Get provisioner state for workspace build

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/state \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspacebuilds/{workspacebuild}/state

Parameters

NameInTypeRequiredDescription
workspacebuildpathstringtrueWorkspace build ID

Example responses

200 Response

{
	"build_number": 0,
	"created_at": "2019-08-24T14:15:22Z",
	"daily_cost": 0,
	"deadline": "2019-08-24T14:15:22Z",
	"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
	"initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
	"initiator_name": "string",
	"job": {
		"canceled_at": "2019-08-24T14:15:22Z",
		"completed_at": "2019-08-24T14:15:22Z",
		"created_at": "2019-08-24T14:15:22Z",
		"error": "string",
		"error_code": "REQUIRED_TEMPLATE_VARIABLES",
		"file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
		"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
		"queue_position": 0,
		"queue_size": 0,
		"started_at": "2019-08-24T14:15:22Z",
		"status": "pending",
		"tags": {
			"property1": "string",
			"property2": "string"
		},
		"worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
	},
	"max_deadline": "2019-08-24T14:15:22Z",
	"reason": "initiator",
	"resources": [
		{
			"agents": [
				{
					"api_version": "string",
					"apps": [
						{
							"command": "string",
							"display_name": "string",
							"external": true,
							"health": "disabled",
							"healthcheck": {
								"interval": 0,
								"threshold": 0,
								"url": "string"
							},
							"hidden": true,
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"sharing_level": "owner",
							"slug": "string",
							"subdomain": true,
							"subdomain_name": "string",
							"url": "string"
						}
					],
					"architecture": "string",
					"connection_timeout_seconds": 0,
					"created_at": "2019-08-24T14:15:22Z",
					"directory": "string",
					"disconnected_at": "2019-08-24T14:15:22Z",
					"display_apps": ["vscode"],
					"environment_variables": {
						"property1": "string",
						"property2": "string"
					},
					"expanded_directory": "string",
					"first_connected_at": "2019-08-24T14:15:22Z",
					"health": {
						"healthy": false,
						"reason": "agent has lost connection"
					},
					"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
					"instance_id": "string",
					"last_connected_at": "2019-08-24T14:15:22Z",
					"latency": {
						"property1": {
							"latency_ms": 0,
							"preferred": true
						},
						"property2": {
							"latency_ms": 0,
							"preferred": true
						}
					},
					"lifecycle_state": "created",
					"log_sources": [
						{
							"created_at": "2019-08-24T14:15:22Z",
							"display_name": "string",
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
						}
					],
					"logs_length": 0,
					"logs_overflowed": true,
					"name": "string",
					"operating_system": "string",
					"ready_at": "2019-08-24T14:15:22Z",
					"resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
					"scripts": [
						{
							"cron": "string",
							"display_name": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"log_path": "string",
							"log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
							"run_on_start": true,
							"run_on_stop": true,
							"script": "string",
							"start_blocks_login": true,
							"timeout": 0
						}
					],
					"started_at": "2019-08-24T14:15:22Z",
					"startup_script_behavior": "blocking",
					"status": "connecting",
					"subsystems": ["envbox"],
					"troubleshooting_url": "string",
					"updated_at": "2019-08-24T14:15:22Z",
					"version": "string"
				}
			],
			"created_at": "2019-08-24T14:15:22Z",
			"daily_cost": 0,
			"hide": true,
			"icon": "string",
			"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
			"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
			"metadata": [
				{
					"key": "string",
					"sensitive": true,
					"value": "string"
				}
			],
			"name": "string",
			"type": "string",
			"workspace_transition": "start"
		}
	],
	"status": "pending",
	"template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
	"template_version_name": "string",
	"transition": "start",
	"updated_at": "2019-08-24T14:15:22Z",
	"workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
	"workspace_name": "string",
	"workspace_owner_avatar_url": "string",
	"workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
	"workspace_owner_name": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKOKcodersdk.WorkspaceBuild

To perform this operation, you must be authenticated. Learn more.

Get workspace build timings by ID

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspacebuilds/{workspacebuild}/timings \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspacebuilds/{workspacebuild}/timings

Parameters

NameInTypeRequiredDescription
workspacebuildpathstring(uuid)trueWorkspace build ID

Example responses

200 Response

{
	"agent_script_timings": [
		{
			"display_name": "string",
			"ended_at": "2019-08-24T14:15:22Z",
			"exit_code": 0,
			"stage": "string",
			"started_at": "2019-08-24T14:15:22Z",
			"status": "string"
		}
	],
	"provisioner_timings": [
		{
			"action": "string",
			"ended_at": "2019-08-24T14:15:22Z",
			"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
			"resource": "string",
			"source": "string",
			"stage": "string",
			"started_at": "2019-08-24T14:15:22Z"
		}
	]
}

Responses

StatusMeaningDescriptionSchema
200OKOKcodersdk.WorkspaceBuildTimings

To perform this operation, you must be authenticated. Learn more.

Get workspace builds by workspace ID

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/workspaces/{workspace}/builds \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

GET /workspaces/{workspace}/builds

Parameters

NameInTypeRequiredDescription
workspacepathstring(uuid)trueWorkspace ID
after_idquerystring(uuid)falseAfter ID
limitqueryintegerfalsePage limit
offsetqueryintegerfalsePage offset
sincequerystring(date-time)falseSince timestamp

Example responses

200 Response

[
	{
		"build_number": 0,
		"created_at": "2019-08-24T14:15:22Z",
		"daily_cost": 0,
		"deadline": "2019-08-24T14:15:22Z",
		"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
		"initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
		"initiator_name": "string",
		"job": {
			"canceled_at": "2019-08-24T14:15:22Z",
			"completed_at": "2019-08-24T14:15:22Z",
			"created_at": "2019-08-24T14:15:22Z",
			"error": "string",
			"error_code": "REQUIRED_TEMPLATE_VARIABLES",
			"file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
			"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
			"queue_position": 0,
			"queue_size": 0,
			"started_at": "2019-08-24T14:15:22Z",
			"status": "pending",
			"tags": {
				"property1": "string",
				"property2": "string"
			},
			"worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
		},
		"max_deadline": "2019-08-24T14:15:22Z",
		"reason": "initiator",
		"resources": [
			{
				"agents": [
					{
						"api_version": "string",
						"apps": [
							{
								"command": "string",
								"display_name": "string",
								"external": true,
								"health": "disabled",
								"healthcheck": {
									"interval": 0,
									"threshold": 0,
									"url": "string"
								},
								"hidden": true,
								"icon": "string",
								"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
								"sharing_level": "owner",
								"slug": "string",
								"subdomain": true,
								"subdomain_name": "string",
								"url": "string"
							}
						],
						"architecture": "string",
						"connection_timeout_seconds": 0,
						"created_at": "2019-08-24T14:15:22Z",
						"directory": "string",
						"disconnected_at": "2019-08-24T14:15:22Z",
						"display_apps": ["vscode"],
						"environment_variables": {
							"property1": "string",
							"property2": "string"
						},
						"expanded_directory": "string",
						"first_connected_at": "2019-08-24T14:15:22Z",
						"health": {
							"healthy": false,
							"reason": "agent has lost connection"
						},
						"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
						"instance_id": "string",
						"last_connected_at": "2019-08-24T14:15:22Z",
						"latency": {
							"property1": {
								"latency_ms": 0,
								"preferred": true
							},
							"property2": {
								"latency_ms": 0,
								"preferred": true
							}
						},
						"lifecycle_state": "created",
						"log_sources": [
							{
								"created_at": "2019-08-24T14:15:22Z",
								"display_name": "string",
								"icon": "string",
								"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
								"workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
							}
						],
						"logs_length": 0,
						"logs_overflowed": true,
						"name": "string",
						"operating_system": "string",
						"ready_at": "2019-08-24T14:15:22Z",
						"resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
						"scripts": [
							{
								"cron": "string",
								"display_name": "string",
								"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
								"log_path": "string",
								"log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
								"run_on_start": true,
								"run_on_stop": true,
								"script": "string",
								"start_blocks_login": true,
								"timeout": 0
							}
						],
						"started_at": "2019-08-24T14:15:22Z",
						"startup_script_behavior": "blocking",
						"status": "connecting",
						"subsystems": ["envbox"],
						"troubleshooting_url": "string",
						"updated_at": "2019-08-24T14:15:22Z",
						"version": "string"
					}
				],
				"created_at": "2019-08-24T14:15:22Z",
				"daily_cost": 0,
				"hide": true,
				"icon": "string",
				"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
				"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
				"metadata": [
					{
						"key": "string",
						"sensitive": true,
						"value": "string"
					}
				],
				"name": "string",
				"type": "string",
				"workspace_transition": "start"
			}
		],
		"status": "pending",
		"template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
		"template_version_name": "string",
		"transition": "start",
		"updated_at": "2019-08-24T14:15:22Z",
		"workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
		"workspace_name": "string",
		"workspace_owner_avatar_url": "string",
		"workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
		"workspace_owner_name": "string"
	}
]

Responses

StatusMeaningDescriptionSchema
200OKOKarray of codersdk.WorkspaceBuild

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
[array item]arrayfalse
» build_numberintegerfalse
» created_atstring(date-time)false
» daily_costintegerfalse
» deadlinestring(date-time)false
» idstring(uuid)false
» initiator_idstring(uuid)false
» initiator_namestringfalse
» jobcodersdk.ProvisionerJobfalse
»» canceled_atstring(date-time)false
»» completed_atstring(date-time)false
»» created_atstring(date-time)false
»» errorstringfalse
»» error_codecodersdk.JobErrorCodefalse
»» file_idstring(uuid)false
»» idstring(uuid)false
»» queue_positionintegerfalse
»» queue_sizeintegerfalse
»» started_atstring(date-time)false
»» statuscodersdk.ProvisionerJobStatusfalse
»» tagsobjectfalse
»»» [any property]stringfalse
»» worker_idstring(uuid)false
» max_deadlinestring(date-time)false
» reasoncodersdk.BuildReasonfalse
» resourcesarrayfalse
»» agentsarrayfalse
»»» api_versionstringfalse
»»» appsarrayfalse
»»»» commandstringfalse
»»»» display_namestringfalseDisplay name is a friendly name for the app.
»»»» externalbooleanfalseExternal specifies whether the URL should be opened externally on the client or not.
»»»» healthcodersdk.WorkspaceAppHealthfalse
»»»» healthcheckcodersdk.HealthcheckfalseHealthcheck specifies the configuration for checking app health.
»»»»» intervalintegerfalseInterval specifies the seconds between each health check.
»»»»» thresholdintegerfalseThreshold specifies the number of consecutive failed health checks before returning "unhealthy".
»»»»» urlstringfalseURL specifies the endpoint to check for the app health.
»»»» hiddenbooleanfalse
»»»» iconstringfalseIcon is a relative path or external URL that specifies an icon to be displayed in the dashboard.
»»»» idstring(uuid)false
»»»» sharing_levelcodersdk.WorkspaceAppSharingLevelfalse
»»»» slugstringfalseSlug is a unique identifier within the agent.
»»»» subdomainbooleanfalseSubdomain denotes whether the app should be accessed via a path on the coder server or via a hostname-based dev URL. If this is set to true and there is no app wildcard configured on the server, the app will not be accessible in the UI.
»»»» subdomain_namestringfalseSubdomain name is the application domain exposed on the coder server.
»»»» urlstringfalseURL is the address being proxied to inside the workspace. If external is specified, this will be opened on the client.
»»» architecturestringfalse
»»» connection_timeout_secondsintegerfalse
»»» created_atstring(date-time)false
»»» directorystringfalse
»»» disconnected_atstring(date-time)false
»»» display_appsarrayfalse
»»» environment_variablesobjectfalse
»»»» [any property]stringfalse
»»» expanded_directorystringfalse
»»» first_connected_atstring(date-time)false
»»» healthcodersdk.WorkspaceAgentHealthfalseHealth reports the health of the agent.
»»»» healthybooleanfalseHealthy is true if the agent is healthy.
»»»» reasonstringfalseReason is a human-readable explanation of the agent's health. It is empty if Healthy is true.
»»» idstring(uuid)false
»»» instance_idstringfalse
»»» last_connected_atstring(date-time)false
»»» latencyobjectfalseLatency is mapped by region name (e.g. "New York City", "Seattle").
»»»» [any property]codersdk.DERPRegionfalse
»»»»» latency_msnumberfalse
»»»»» preferredbooleanfalse
»»» lifecycle_statecodersdk.WorkspaceAgentLifecyclefalse
»»» log_sourcesarrayfalse
»»»» created_atstring(date-time)false
»»»» display_namestringfalse
»»»» iconstringfalse
»»»» idstring(uuid)false
»»»» workspace_agent_idstring(uuid)false
»»» logs_lengthintegerfalse
»»» logs_overflowedbooleanfalse
»»» namestringfalse
»»» operating_systemstringfalse
»»» ready_atstring(date-time)false
»»» resource_idstring(uuid)false
»»» scriptsarrayfalse
»»»» cronstringfalse
»»»» display_namestringfalse
»»»» idstring(uuid)false
»»»» log_pathstringfalse
»»»» log_source_idstring(uuid)false
»»»» run_on_startbooleanfalse
»»»» run_on_stopbooleanfalse
»»»» scriptstringfalse
»»»» start_blocks_loginbooleanfalse
»»»» timeoutintegerfalse
»»» started_atstring(date-time)false
»»» startup_script_behaviorcodersdk.WorkspaceAgentStartupScriptBehaviorfalseStartup script behavior is a legacy field that is deprecated in favor of the coder_script resource. It's only referenced by old clients. Deprecated: Remove in the future!
»»» statuscodersdk.WorkspaceAgentStatusfalse
»»» subsystemsarrayfalse
»»» troubleshooting_urlstringfalse
»»» updated_atstring(date-time)false
»»» versionstringfalse
»» created_atstring(date-time)false
»» daily_costintegerfalse
»» hidebooleanfalse
»» iconstringfalse
»» idstring(uuid)false
»» job_idstring(uuid)false
»» metadataarrayfalse
»»» keystringfalse
»»» sensitivebooleanfalse
»»» valuestringfalse
»» namestringfalse
»» typestringfalse
»» workspace_transitioncodersdk.WorkspaceTransitionfalse
» statuscodersdk.WorkspaceStatusfalse
» template_version_idstring(uuid)false
» template_version_namestringfalse
» transitioncodersdk.WorkspaceTransitionfalse
» updated_atstring(date-time)false
» workspace_idstring(uuid)false
» workspace_namestringfalse
» workspace_owner_avatar_urlstringfalse
» workspace_owner_idstring(uuid)false
» workspace_owner_namestringfalse

Enumerated Values

PropertyValue
error_codeREQUIRED_TEMPLATE_VARIABLES
statuspending
statusrunning
statussucceeded
statuscanceling
statuscanceled
statusfailed
reasoninitiator
reasonautostart
reasonautostop
healthdisabled
healthinitializing
healthhealthy
healthunhealthy
sharing_levelowner
sharing_levelauthenticated
sharing_levelpublic
lifecycle_statecreated
lifecycle_statestarting
lifecycle_statestart_timeout
lifecycle_statestart_error
lifecycle_stateready
lifecycle_stateshutting_down
lifecycle_stateshutdown_timeout
lifecycle_stateshutdown_error
lifecycle_stateoff
startup_script_behaviorblocking
startup_script_behaviornon-blocking
statusconnecting
statusconnected
statusdisconnected
statustimeout
workspace_transitionstart
workspace_transitionstop
workspace_transitiondelete
statuspending
statusstarting
statusrunning
statusstopping
statusstopped
statusfailed
statuscanceling
statuscanceled
statusdeleting
statusdeleted
transitionstart
transitionstop
transitiondelete

To perform this operation, you must be authenticated. Learn more.

Create workspace build

Code samples

# Example request using curl
curl -X POST http://coder-server:8080/api/v2/workspaces/{workspace}/builds \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Coder-Session-Token: API_KEY'

POST /workspaces/{workspace}/builds

Body parameter

{
	"dry_run": true,
	"log_level": "debug",
	"orphan": true,
	"rich_parameter_values": [
		{
			"name": "string",
			"value": "string"
		}
	],
	"state": [0],
	"template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
	"transition": "create"
}

Parameters

NameInTypeRequiredDescription
workspacepathstring(uuid)trueWorkspace ID
bodybodycodersdk.CreateWorkspaceBuildRequesttrueCreate workspace build request

Example responses

200 Response

{
	"build_number": 0,
	"created_at": "2019-08-24T14:15:22Z",
	"daily_cost": 0,
	"deadline": "2019-08-24T14:15:22Z",
	"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
	"initiator_id": "06588898-9a84-4b35-ba8f-f9cbd64946f3",
	"initiator_name": "string",
	"job": {
		"canceled_at": "2019-08-24T14:15:22Z",
		"completed_at": "2019-08-24T14:15:22Z",
		"created_at": "2019-08-24T14:15:22Z",
		"error": "string",
		"error_code": "REQUIRED_TEMPLATE_VARIABLES",
		"file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
		"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
		"queue_position": 0,
		"queue_size": 0,
		"started_at": "2019-08-24T14:15:22Z",
		"status": "pending",
		"tags": {
			"property1": "string",
			"property2": "string"
		},
		"worker_id": "ae5fa6f7-c55b-40c1-b40a-b36ac467652b"
	},
	"max_deadline": "2019-08-24T14:15:22Z",
	"reason": "initiator",
	"resources": [
		{
			"agents": [
				{
					"api_version": "string",
					"apps": [
						{
							"command": "string",
							"display_name": "string",
							"external": true,
							"health": "disabled",
							"healthcheck": {
								"interval": 0,
								"threshold": 0,
								"url": "string"
							},
							"hidden": true,
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"sharing_level": "owner",
							"slug": "string",
							"subdomain": true,
							"subdomain_name": "string",
							"url": "string"
						}
					],
					"architecture": "string",
					"connection_timeout_seconds": 0,
					"created_at": "2019-08-24T14:15:22Z",
					"directory": "string",
					"disconnected_at": "2019-08-24T14:15:22Z",
					"display_apps": ["vscode"],
					"environment_variables": {
						"property1": "string",
						"property2": "string"
					},
					"expanded_directory": "string",
					"first_connected_at": "2019-08-24T14:15:22Z",
					"health": {
						"healthy": false,
						"reason": "agent has lost connection"
					},
					"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
					"instance_id": "string",
					"last_connected_at": "2019-08-24T14:15:22Z",
					"latency": {
						"property1": {
							"latency_ms": 0,
							"preferred": true
						},
						"property2": {
							"latency_ms": 0,
							"preferred": true
						}
					},
					"lifecycle_state": "created",
					"log_sources": [
						{
							"created_at": "2019-08-24T14:15:22Z",
							"display_name": "string",
							"icon": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"workspace_agent_id": "7ad2e618-fea7-4c1a-b70a-f501566a72f1"
						}
					],
					"logs_length": 0,
					"logs_overflowed": true,
					"name": "string",
					"operating_system": "string",
					"ready_at": "2019-08-24T14:15:22Z",
					"resource_id": "4d5215ed-38bb-48ed-879a-fdb9ca58522f",
					"scripts": [
						{
							"cron": "string",
							"display_name": "string",
							"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
							"log_path": "string",
							"log_source_id": "4197ab25-95cf-4b91-9c78-f7f2af5d353a",
							"run_on_start": true,
							"run_on_stop": true,
							"script": "string",
							"start_blocks_login": true,
							"timeout": 0
						}
					],
					"started_at": "2019-08-24T14:15:22Z",
					"startup_script_behavior": "blocking",
					"status": "connecting",
					"subsystems": ["envbox"],
					"troubleshooting_url": "string",
					"updated_at": "2019-08-24T14:15:22Z",
					"version": "string"
				}
			],
			"created_at": "2019-08-24T14:15:22Z",
			"daily_cost": 0,
			"hide": true,
			"icon": "string",
			"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
			"job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
			"metadata": [
				{
					"key": "string",
					"sensitive": true,
					"value": "string"
				}
			],
			"name": "string",
			"type": "string",
			"workspace_transition": "start"
		}
	],
	"status": "pending",
	"template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
	"template_version_name": "string",
	"transition": "start",
	"updated_at": "2019-08-24T14:15:22Z",
	"workspace_id": "0967198e-ec7b-4c6b-b4d3-f71244cadbe9",
	"workspace_name": "string",
	"workspace_owner_avatar_url": "string",
	"workspace_owner_id": "e7078695-5279-4c86-8774-3ac2367a2fc7",
	"workspace_owner_name": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKOKcodersdk.WorkspaceBuild

To perform this operation, you must be authenticated. Learn more.

See an opportunity to improve our docs? Make an edit.