---
title: "Returns a list of API keys in the project."
method: GET
path: "/organization/projects/{project_id}/api_keys"
tags: ["Projects"]
---

# Returns a list of API keys in the project.

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

## Path parameters

- `project_id` string, required

## Query parameters

- `limit` integer
- `after` string
- `owner_project_access` 'active' | 'inactive' | 'any'

## Response `200`

Project API keys listed successfully.

- ProjectApiKeyListResponse
  - `object` 'list', required
  - `data` ProjectApiKey[], required
    - `object` 'organization.project.api_key', required — The object type, which is always `organization.project.api_key`
    - `redacted_value` string, required — The redacted value of the API key
    - `name` string, required — The name of the API key
    - `created_at` integer, required — The Unix timestamp (in seconds) of when the API key was created
    - `last_used_at` integer, nullable, required — The Unix timestamp (in seconds) of when the API key was last used.
    - `id` string, required — The identifier, which can be referenced in API endpoints
    - `owner_project_access` 'active' | 'inactive', required — Whether the API key's owner currently has effective access to the project.
    - `owner` object, required
      - `type` 'user' | 'service_account' — `user` or `service_account`
      - `user` ProjectApiKeyOwnerUser — The user that owns a project API key.
        - `id` string, required — The identifier, which can be referenced in API endpoints
        - `email` string, required — The email address of the user.
        - `name` string, required — The name of the user.
        - `created_at` integer, required — The Unix timestamp (in seconds) of when the user was created.
        - `role` string, required — The user's project role.
      - `service_account` ProjectApiKeyOwnerServiceAccount — The service account that owns a project API key.
        - `id` string, required — The identifier, which can be referenced in API endpoints
        - `name` string, required — The name of the service account.
        - `created_at` integer, required — The Unix timestamp (in seconds) of when the service account was created.
        - `role` string, required — The service account's project role.
  - `first_id` string, nullable
  - `last_id` string, nullable
  - `has_more` boolean, required

## Changes

> 82 revisions in range; 28 could not be searched.

- **2026-05-13** `74cbcf73838f` — 8 breaking, 6 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 `data/items/last_used_at` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `first_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …10 more
- **2025-04-29** `6a6c681b1820` — 1 info
  - added the required property `data/items/last_used_at` to the response with the `200` status
- **2024-08-06** `8eca3b09b705` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/organization/projects/:project_id/api_keys/get.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openai/openapi/revisions/959ef977e135/schema)
