---
title: "List project service accounts"
method: GET
path: "/organization/projects/{project_id}/service_accounts"
tags: ["Projects"]
---

# List project service accounts

`GET /organization/projects/{project_id}/service_accounts`

## Request

- Base URL: `https://api.openai.com/v1`
- URL: `https://api.openai.com/v1/organization/projects/{project_id}/service_accounts`
- Auth: HTTP bearer

Returns a list of service accounts in the project.

## Path parameters

- `project_id` string, required

## Query parameters

- `limit` integer
- `after` string

## Response `200`

Project service accounts listed successfully.

- ProjectServiceAccountListResponse
  - `object` 'list', required
  - `data` ProjectServiceAccount[], required
    - `object` 'organization.project.service_account', required: The object type, which is always `organization.project.service_account`
    - `id` string, required: The identifier, which can be referenced in API endpoints
    - `name` string, required: The name of the service account
    - `role` 'owner' | 'member' | 'none', required: `owner`, `member`, or `none`
    - `created_at` integer, required: The Unix timestamp (in seconds) of when the service account was created
  - `first_id` string, nullable
  - `last_id` string, nullable
  - `has_more` boolean, required

## Other responses

- `400`: Error response when project is archived.
- `403`: The caller does not have permission to perform this operation.
- `404`: A requested project, user, service account, or API key was not found.
- `429`: Too many management requests. Reduce the request rate and try again later.

## Changes

- **2026-10-06** `487892d3954e`: 4 info
  - added the optional property `error/anyOf[#/components/schemas/Error]/misalignment/review_target` to the response with the `403` status
  - added the optional property `error/misalignment/review_target` to the response with the `400` status
  - added the optional property `error/misalignment/review_target` to the response with the `404` status
  - added the optional property `error/misalignment/review_target` to the response with the `429` status
- **2026-10-05** `7f654af7f94f`: 6 breaking, 1 warning, 5 info
  - the response property `first_id` became optional for the status `200`
  - the response property `last_id` became optional for the status `200`
  - response property `error/code` list-of-types was widened by adding types `null` to media type `application/json` of response `400`
  - response property `error/param` list-of-types was widened by adding types `null` to media type `application/json` of response `400`
  - …8 more

[Operation history](https://skmtc.dev/omnistack-sh/apis/openai-api/changes/organization/projects/:project_id/service_accounts/get.md)

---

[API](https://skmtc.dev/omnistack-sh/apis/openai-api.md) - [All operations](https://skmtc.dev/omnistack-sh/apis/openai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnistack-sh/apis/openai-api/revisions/0a26f104d35f?raw)
