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

# Signup

`POST /gitpod.v1.RunnerInteractionService/Signup`

Establishes initial connection between a runner and the Gitpod backend. This is the first
 call a runner makes to register itself and establish its identity.

 Use this method to:
 - Register new runners with the platform
 - Exchange cryptographic keys for secure communication
 - Declare supported environment classes and capabilities
 - Initialize runner configuration

 ### Examples

 - Register runner:

   Registers a new runner with its public key and supported environment classes.

   ```yaml
   publicKey: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"  # 32 bytes of zeros, base64 encoded
   environmentClasses:
     - id: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
       runnerId: "f53d2330-3795-4c5d-a1f3-453121af9c60"
       displayName: "Large Instance"
       description: "8 CPU, 16GB RAM"
       enabled: true
       configuration:
         - key: "cpu"
           value: "8"
         - key: "memory"
           value: "16384"
   ```

## Request body

- GitpodV1SignupRequest
  - `environmentClasses` GitpodV1EnvironmentClass[] — The environment classes this runner has to offer
    - `configuration` GitpodV1FieldValue[] — configuration describes the configuration of the environment class
      - `key` string
      - `value` string
    - `description` string — description is a human readable description of the environment class
    - `displayName` string — display_name is the human readable name of the environment class
    - `enabled` boolean — enabled indicates whether the environment class can be used to create new environments.
    - `id` string, required — id is the unique identifier of the environment class
    - `runnerId` string, required — runner_id is the unique identifier of the runner the environment class belongs to
  - `publicKey` string, byte — The runner's public key. Must be an ECDH public key encoded in PKIX, ASN.1 DER format.

## Response `200`

Success

- GitpodV1SignupResponse
  - `runnerId` string, uuid — The runner's identity

## Other responses

- `default` — Error

## Changes

- **2025-02-18** `cd6a05ae99d2` — 1 warning
  - removed the optional property `detail` from the response with the `default` status
- **2025-02-18** `bef0e79f204c` — 1 breaking
  - the request property `environmentClasses/items/runnerId` became required
- **2025-02-18** `f6598ab5d682` — 1 breaking
  - the request property `environmentClasses/items/id` became required

[Change history](https://skmtc.dev/gitpod-io/apis/gitpod-v1/changes/gitpod.v1.RunnerInteractionService/Signup/post.md)

---

[API](https://skmtc.dev/gitpod-io/apis/gitpod-v1.md) · [All operations](https://skmtc.dev/gitpod-io/apis/gitpod-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/gitpod-io/gitpod-v1/revisions/ca9a49ac7fbb/schema)
