GET /v1/join-keys
Get a paginated list of join keys. Tokens are not included.
Token scope required: join-keys:list
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”If true, return count of total records and current page start and count in metadata
Cursor value at which to start the results, provided in nextCursor or prevCursor of a prior request
Example
bmV4dA.eyJsb2dzLmNyZQ5iIiwiX3ZhbHVlIjo9In19Number of records to return in each page
Order in which to return results. Each endpoint sorts on its own key (for example, hosts by
name and audit logs by creation time). Matching is case-insensitive, and any value other than
desc sorts ascending.
Responses
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:00Zobject
The total number of resources existing in the account. Only present when includeCounts is true.
Is there a page of data that can be fetched using the nextCursor?
Is there a page of data that can be fetched using the prevCursor?
An opaque string that can be used to fetch the next page of results. Not provided if result set is empty.
An opaque string that can be used to fetch the previous page of results. Not provided if result set is empty.
Only present when includeCounts is true.
object
The number of results returned in the response.
The zero-based index of the first result within the overall list. For example, the first page will have a start of 0. If 25 results are fetched, and the nextCursor used to fetch a new page of results, the second request’s start will be 25.
Example
{ "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" } ], "metadata": { "hasNextPage": false, "hasPrevPage": false }}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" } ]}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" } ]}