---
title: "UpdateRunnerStatus"
method: POST
path: "/gitpod.v1.RunnerInteractionService/UpdateRunnerStatus"
tags: ["gitpod.v1.RunnerInteractionService"]
---

# UpdateRunnerStatus

`POST /gitpod.v1.RunnerInteractionService/UpdateRunnerStatus`

Updates the runner's status and capabilities.

 Use this method to:
 - Report runner health
 - Update version information
 - Signal system changes
 - Configure capabilities

 ### Examples

 - Update status:

   Updates runner status and details.

   ```yaml
   runnerId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
   version: "1.2.3"
   systemDetails: "Linux x86_64"
   logUrl: "https://logs.example.com/runner"
   region: "us-west"
   capabilities: ["RUNNER_CAPABILITY_SECRET_CONTAINER_REGISTRY"]
   ```

## Request body

- GitpodV1UpdateRunnerStatusRequest
  - `additionalInfo` GitpodV1FieldValueUpdate[] — additional_info updates fields in the runner's additional_info.
    - `key` string — key is the field key to update. If the field does not exist, it will be created.
    - `value` string, nullable — value is the new value for the field. If value is empty, the field will be removed.
  - `capabilities` GitpodV1RunnerCapability[] — capabilities contains the runner's supported capabilities. Optional field, only overwrites previous capabilities if set to a non-empty list. To clear capabilities, set this to a list with a single UNSPECIFIED capability.
  - `degredationMessage` string, nullable — Degredation message is an optional message that is shown to users when the runner is in a degraded state. Setting this to "" changes the runner's phase back from "degraded" to "active".
  - `gatewayInfo` GitpodV1GatewayInfo
    - `gateway` GitpodV1Gateway — Gateway represents a system gateway that provides access to services
      - `name` string, required — name is the human-readable name of the gateway. name is unique across all gateways.
      - `region` string — region is the geographical region where the gateway is located
      - `url` string, required — url of the gateway
    - `latency` string, regex — A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like "day" or "month". It is related to Timestamp in that the difference between two Timestamp values is a Duration and it can be added or subtracted from a Timestamp. Range is approximately +-10,000 years. # Examples Example 1: Compute Duration from two Timestamps in pseudo code. Timestamp start = ...; Timestamp end = ...; Duration duration = ...; duration.seconds = end.seconds - start.seconds; duration.nanos = end.nanos - start.nanos; if (duration.seconds < 0 && duration.nanos > 0) { duration.seconds += 1; duration.nanos -= 1000000000; } else if (duration.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; } Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. Timestamp start = ...; Duration duration = ...; Timestamp end = ...; end.seconds = start.seconds + duration.seconds; end.nanos = start.nanos + duration.nanos; if (end.nanos < 0) { end.seconds -= 1; end.nanos += 1000000000; } else if (end.nanos >= 1000000000) { end.seconds += 1; end.nanos -= 1000000000; } Example 3: Compute Duration from datetime.timedelta in Python. td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td) # JSON Mapping In JSON format, the Duration type is encoded as a string rather than an object, where the string ends in the suffix "s" (indicating seconds) and is preceded by the number of seconds, with nanoseconds expressed as fractional seconds. For example, 3 seconds with 0 nanoseconds should be encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should be expressed in JSON format as "3.000000001s", and 3 seconds and 1 microsecond should be expressed in JSON format as "3.000001s".
  - `llmUrl` string, nullable — llm_url is the URL of the LLM service to which the runner is connected.
  - `logUrl` string, uri, nullable — log_url is the URL to the runner's logs
  - `region` string, nullable — region is the region the runner is running in, if applicable.
  - `runnerId` string, uuid — The runner's identity
  - `supportBundleUrl` string, nullable
  - `systemDetails` string, nullable — system_details is a runner specific system detail string. Think of this like a user agent string. It's intended to be used for debugging and support purposes and might be shown to the user.
  - `version` string, nullable — version is the version of the runner. This is used to detect if the runner is outdated.

## Response `200`

Success

- GitpodV1UpdateRunnerStatusResponse

## Other responses

- `default` — Error

---

[API](https://skmtc.net/gitpod-io/apis/gitpod-v1.md) · [All operations](https://skmtc.net/gitpod-io/apis/gitpod-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gitpod-io/gitpod-v1/versions/44d50c2ac284/schema)
