Get a service account
GET/serviceAccounts/{serviceAccountId}
Base URL: https://api.tinkermode.com
Return the service account with the specified ID, along with the metadata of its tokens.
Authentication
Send an Authorization header of the form ModeCloud <AUTH_CODE>.
Must contain a user API key for a project super admin or a project API key with "Admin" privileges.
Path parameters
| Name | Type | Required | Constraints | Description |
|---|---|---|---|---|
serviceAccountId | integer | Yes | The unique ID for a specified service account. |
Responses
200 Successfully retrieved service account with specified ID.
Content type: application/json
| Property | Type | Required | Constraints | Description | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
serviceAccount | object | Yes | Represents a project-scoped, machine-to-machine API credential. Its permissions come from access control group memberships and direct permission statements, the same as a user. It is available only in projects with fine-grained access control enabled. | |||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||
tokens | array<object> | Yes | Stored metadata for the account's tokens. Empty if the account has no tokens. | |||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||
Response example
{
"serviceAccount": {
"createdAt": "2026-06-01T00:00:00.000Z",
"id": 7,
"name": "Data Pipeline Worker",
"projectId": 1234,
"suspended": false,
"updatedAt": "2026-06-01T00:00:00.000Z"
},
"tokens": [
{
"createdAt": "2026-06-01T00:00:00.000Z",
"id": 100,
"projectId": 1234,
"serviceAccountId": 7,
"status": "active",
"suffix": "a9b65a"
},
{
"createdAt": "2026-06-02T00:00:00.000Z",
"id": 101,
"projectId": 1234,
"serviceAccountId": 7,
"status": "suspended",
"suffix": "3f1c02"
}
]
}401 Authorization is required to access this resource.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
403 Request failed because of denied permission.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
404 The requested serviceAccount does not exist or is not accessible.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
429 Request failed because of rate limit.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
500 An unexpected error has occurred.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |
503 The service is temporarily unavailable.
Content type: application/json
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
data | object | No | read-only (server-generated) | Any relevant data related to error. |
reason | string | Yes | read-only (server-generated) | Reason of error. |