Registering a runner with a registration token is deprecated and disabled by default in GitLab 17.0 and later.

Use this API to register a runner with an instance, verify its authentication, reset its authentication token, and unregister it. GitLab Runner uses these endpoints itself.

To create a runner, or to manage runners that already exist, use the Runners endpoints.

Create a runner

POST /api/v4/runners

Creates a runner.

Request body (application/json)

PropertyTypeDescription
access_levelStringAccess level of the runner
Allowed values: not_protected, ref_protected
activeBooleanIf true, the runner is allowed to receive new jobs. Deprecated. Use paused instead. Mutually exclusive with paused
descriptionStringDescription of the runner
infoObjectRunner’s metadata
info.architectureStringRunner’s architecture
info.nameStringRunner’s name
info.platformStringRunner’s platform
info.revisionStringRunner’s revision
info.versionStringRunner’s version
lockedBooleanIf true, the runner is locked for the current project
maintainer_noteStringFree-form maintenance notes for the runner. Deprecated. Use maintenance_note instead. Mutually exclusive with maintenance_note
maintenance_noteStringFree-form maintenance notes for the runner (1024 characters). Mutually exclusive with maintainer_note
maximum_timeoutIntegerMaximum time, in seconds, that runners can spend running a job
pausedBooleanIf true, the runner ignores new jobs. Mutually exclusive with active
run_untaggedBooleanIf true, the runner handles untagged jobs
tag_listArray of stringsList of runner tags
token
Required
StringRegistration token

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesCiRunnerRegistrationDetails
400Bad Request—
403Forbidden—
410Gone—

Delete a registered runner

DELETE /api/v4/runners

Deletes a specified registered runner.

Parameters

NameTypeDescription
token
Query, required
StringAuthentication token of the runner

Responses

CodeDescriptionSchema
204Resource deleted—
400Bad Request—
403Forbidden—

Delete a registered runner manager

DELETE /api/v4/runners/managers

Parameters

NameTypeDescription
token
Query, required
StringAuthentication token of the runner
system_id
Query, required
StringSystem identifier of the runner

Responses

CodeDescriptionSchema
204Runner manager was deleted—
400Bad Request—
403Forbidden—
404Not Found—

Reset a runner authentication token with the current token

POST /api/v4/runners/reset_authentication_token

Resets a runner authentication token with the token used to authenticate the request.

Request body (application/json)

PropertyTypeDescription
token
Required
StringAuthentication token of the runner

Responses

CodeDescriptionSchema
201CreatedAPIEntitiesCiResetTokenResult
400Bad Request—
403Forbidden—
422Unprocessable Entity—

Discover Job Router information

GET /api/v4/runners/router/discovery

Discovers Job Router information for a runner. You must provide a valid runner authentication token.

Responses

CodeDescriptionSchema
200OKAPIEntitiesCiJobRouterDiscoveryInformation
403403 Forbidden—
501501 Not Implemented—

Verify authentication for a registered runner

POST /api/v4/runners/verify

Verifies authentication for a registered runner.

Request body (application/json)

PropertyTypeDescription
system_idStringSystem identifier of the runner. Must be provided if token starts with glrt-
token
Required
StringAuthentication token of the runner

Responses

CodeDescriptionSchema
200Credentials are validAPIEntitiesCiRunnerRegistrationDetails
400Bad Request—
403Forbidden—
422Runner is orphaned—

Schemas

Objects returned by the operations above and objects nested in their request bodies.

APIEntitiesCiJobRouterDiscoveryInformation

PropertyTypeDescription
server_urlStringExample: wss://kas.example.com

APIEntitiesCiResetTokenResult

PropertyTypeDescription
tokenString—
token_expires_atString—

APIEntitiesCiRunnerRegistrationDetails

PropertyTypeDescription
idString—
tokenString—
token_expires_atString—