---
title: "Update service account"
method: PATCH
path: "/serviceaccounts/{serviceAccountId}"
tags: ["service_accounts"]
---

# Update service account

`PATCH /serviceaccounts/{serviceAccountId}`

Required permissions (See note in the [introduction](https://grafana.com/docs/grafana/latest/developers/http_api/serviceaccount/#service-account-api) for an explanation):
action: `serviceaccounts:write` scope: `serviceaccounts:id:1` (single service account)

## Path parameters

- `serviceAccountId` integer, required

## Request body

- UpdateServiceAccountForm
  - `isDisabled` boolean
  - `name` string
  - `role` 'None' | 'Viewer' | 'Editor' | 'Admin'
  - `serviceAccountId` integer

## Response `200`

(empty)

- object
  - `id` integer
  - `message` string
  - `name` string
  - `serviceaccount` ServiceAccountProfileDTO
    - `accessControl` object
    - `avatarUrl` string
    - `createdAt` string, date-time
    - `id` integer
    - `isDisabled` boolean
    - `isExternal` boolean
    - `login` string
    - `name` string
    - `orgId` integer
    - `requiredBy` string
    - `role` string
    - `teams` string[]
    - `tokens` integer
    - `uid` string
    - `updatedAt` string, date-time

## Other responses

- `400` — BadRequestError is returned when the request is invalid and it cannot be processed.
- `401` — UnauthorizedError is returned when the request is not authenticated.
- `403` — ForbiddenError is returned if the user/token has insufficient permissions to access the requested resource.
- `404` — NotFoundError is returned when the requested resource was not found.
- `500` — InternalServerError is a general error indicating something went wrong internally.

---

[API](https://skmtc.net/grafana/apis/http-api.md) · [All operations](https://skmtc.net/grafana/apis/http-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/grafana/http-api/versions/df55ba1718ba/schema)
