GET /v1/join-keys/{joinKeyID}
Fetch information about a particular join key. The token is not included.
Token scope required: join-keys:read
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Example
dnjoin-P3RCTXN5LVFGBMJNYF2QHKWDOAResponses
Section titled “ Responses ”Successful operation
object
object
Example
dnjoin-P3RCTXN5LVFGBMJNYF2QHKWDOAExample
org-F63A24JGCLJV3ZEUTLCBISGETAIdentifies the key. Hosts that enroll without reporting a usable hostname are named after it, followed by a random suffix.
Example
ci-runnerNetwork that hosts enrolled with this key join.
Example
network-KAOWMXZHZWCVMGGFKM22XEGYLERole assigned to hosts enrolled with this key.
Example
role-PZEDBXHCEXKAKJPZ6XOQTIAJA4Tags assigned to hosts enrolled with this key.
Example
[ "env:ci"]Prefixes from which hosts enrolled with this key are assigned addresses. Includes the network’s IPv6 prefix whenever the network has one.
Example
[ "100.100.0.0/22", "fdef:c0:c0:1::/80"]When the key stops enrolling hosts. null means the key does not expire.
Example
2027-01-01T00:00:00ZExample
2026-10-29T15:00:00ZExample
2026-10-29T15:00:00ZExample
{ "data": { "id": "dnjoin-P3RCTXN5LVFGBMJNYF2QHKWDOA", "organizationID": "org-F63A24JGCLJV3ZEUTLCBISGETA", "name": "ci-runner", "networkID": "network-KAOWMXZHZWCVMGGFKM22XEGYLE", "roleID": "role-PZEDBXHCEXKAKJPZ6XOQTIAJA4", "tags": [ "env:ci" ], "autoAssignCIDRs": [ "100.100.0.0/22", "fdef:c0:c0:1::/80" ], "expiresAt": "2027-01-01T00:00:00Z", "createdAt": "2026-10-29T15:00:00Z", "modifiedAt": "2026-10-29T15:00:00Z" }}The API key is missing, invalid or expired.
object
object
A static name for the error type
A short human readable description of the error
Describes the variable missing or malformed
The query parameter the error relates to, such as filter.targetType
Machine-readable details about the error. ERR_LIMIT_EXCEEDED errors carry limit and limitName.
object
The maximum number of resources allowed
The kind of resource the limit applies to
Example
{ "errors": [ { "code": "ERR_UNAUTHORIZED", "message": "unauthorized" } ]}The API key lacks a required scope.
object
object
A static name for the error type
A short human readable description of the error
Describes the variable missing or malformed
The query parameter the error relates to, such as filter.targetType
Machine-readable details about the error. ERR_LIMIT_EXCEEDED errors carry limit and limitName.
object
The maximum number of resources allowed
The kind of resource the limit applies to
Examples
The API key lacks a required scope.
{ "errors": [ { "code": "ERR_FORBIDDEN", "message": "api key must support the following scopes: hosts:read" } ]}Join key not found
object
object
A static name for the error type
A short human readable description of the error
Describes the variable missing or malformed
The query parameter the error relates to, such as filter.targetType
Machine-readable details about the error. ERR_LIMIT_EXCEEDED errors carry limit and limitName.
object
The maximum number of resources allowed
The kind of resource the limit applies to
Example
{ "errors": [ { "code": "ERR_NOT_FOUND", "message": "resource not found" } ]}The organization has exceeded its API request rate limit. Retry the request after a short delay.
object
object
A static name for the error type
A short human readable description of the error
Describes the variable missing or malformed
The query parameter the error relates to, such as filter.targetType
Machine-readable details about the error. ERR_LIMIT_EXCEEDED errors carry limit and limitName.
object
The maximum number of resources allowed
The kind of resource the limit applies to
Example
{ "errors": [ { "code": "ERR_TOO_MANY_REQUESTS", "message": "too many requests" } ]}