Skip to content
OpenRelay is in early access, and the /v1 API is stable. New capabilities ship in the changelog.
API ReferenceComputeRunners

List GitHub installations you can connect

Exchanges the OAuth code from the GitHub redirect for the GitHub App installations your account can access, each with the connectGrant createRunnerPool takes. Installations this organization already has a pool for are flagged alreadyConnected. A state that does not match this organization answers 400 OAUTH_STATE_INVALID.

Required permission

Requires the runner.write permission. See Permissions for the roles and API key permissions that include it.

Command line

The orl CLI wraps this endpoint:

orl runners installation list --code <code>
POST
/v1/orgs/{orgId}/runner-pools/installations

Authorization

apiKey
headerAuthorizationBearer <token>

OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).

Path Parameters

orgId*string

Request Body

application/json
  1. body
code*string

The OAuth code from the authorize redirect.

state?string

The signed state GitHub echoes back on the redirect. The server verifies it against the organization (anti-CSRF), so it is required whenever the OAuth flow is configured: a missing, expired or mismatched state answers 400 OAUTH_STATE_INVALID; start the connect flow again.

Response Body

OK

application/json
  1. response
installations*array<>
Example Request
curl -X POST 'https://api.openrelay.inc/v1/orgs/string/runner-pools/installations' \  -H 'Content-Type: application/json' \  -d '{  "code": "string"}'
Example Response
{  "installations": [    {      "installationId": 0,      "account": "string",      "accountType": "string",      "alreadyConnected": true,      "connectGrant": "string"    }  ]}