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_levelStringThe access level of the runner
Allowed values: not_protected, ref_protected
activeBooleanDeprecated: Use paused instead. Specifies if the runner is allowed to receive new jobs. 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
lockedBooleanSpecifies if the runner should be locked for the current project
maintainer_noteStringDeprecated: see maintenance_note. Mutually exclusive with maintenance_note
maintenance_noteStringFree-form maintenance notes for the runner (1024 characters). Mutually exclusive with maintainer_note
maximum_timeoutIntegerMaximum timeout that limits the amount of time (in seconds) that runners can run jobs
pausedBooleanSpecifies if the runner should ignore new jobs. Mutually exclusive with active
run_untaggedBooleanSpecifies if the runner should handle untagged jobs
tag_listArray of stringsA list 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
StringThe runner’s authentication token

Responses

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

Delete a registered runner manager

DELETE /api/v4/runners/managers

Parameters

NameTypeDescription
token
Query, required
StringThe runner’s authentication token
system_id
Query, required
StringThe runner’s system identifier

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
StringThe current authentication 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_idStringThe runner’s system identifier
token
Required
StringThe runner’s authentication token

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—