> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List JWKs

> Retrieves all JWKs (JSON Web Keys) for a specified project. JWKs are used for cryptographic operations, digital signatures, and encryption in API Proxies.

## Endpoint

```
GET /apiops/projects/{projectName}/jwks/
```

## Authentication

Requires a Personal API Access Token.

### Header

```
Authorization: Bearer YOUR_TOKEN
```

## Request

### Headers

| Header        | Value            | Required |
| ------------- | ---------------- | -------- |
| Authorization | Bearer `{token}` | Yes      |

### Path Parameters

| Parameter   | Type   | Required | Description  |
| ----------- | ------ | -------- | ------------ |
| projectName | string | Yes      | Project name |

### Query Parameters

None.

## Response

### Success Response (200 OK)

```json theme={null}
{
  "success": true,
  "resultList": [
    {
      "name": "my-jwk",
      "description": "JWK for API authentication",
      "projectId": "project-id",
      "sourceType": "URL",
      "sourceId": null,
      "sourceUrl": "https://example.com/.well-known/jwks.json",
      "type": "RSA",
      "kid": "key-id-1"
    },
    {
      "name": "generated-jwk",
      "description": "Auto-generated JWK",
      "projectId": "project-id",
      "sourceType": "GENERATE",
      "sourceId": null,
      "sourceUrl": null,
      "type": "EC",
      "kid": "key-id-2"
    }
  ]
}
```

### Response Fields

| Field      | Type           | Description                             |
| ---------- | -------------- | --------------------------------------- |
| success    | boolean        | Indicates if the request was successful |
| resultList | array\[object] | List of JWKs                            |

### JWK Management Object

| Field       | Type   | Description                                                                                                                                     |
| ----------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| name        | string | JWK name                                                                                                                                        |
| description | string | JWK description                                                                                                                                 |
| projectId   | string | Project ID where JWK belongs                                                                                                                    |
| sourceType  | string | Source type: `URL`, `COPY_PASTE`, `CERTIFICATE`, `PUBLIC_KEY`, `PRIVATE_KEY`, `KEYSTORE`, `GENERATE`                                            |
| sourceId    | string | ID of the source (certificate, key, or keystore) if applicable                                                                                  |
| sourceUrl   | string | URL of the source if sourceType is URL                                                                                                          |
| type        | string | JWK type: `RSA`, `EC`, `OCT`, `OKP`                                                                                                             |
| kid         | string | Key ID (kid) of the JWK. For URL and COPY\_PASTE source types, this specifies which key to use when the source contains multiple keys (JWK Set) |

### Notes

* JWK key material (rsa, ec, oct, okp fields) is excluded from list response for performance
* Each JWK can be deployed to multiple environments
* JWKs can be created from various sources (URL, certificate, key, keystore, or generated)
* Use Get JWK endpoint to retrieve full JWK details including key material

### Error Response (401 Unauthorized)

```json theme={null}
{
  "error": "unauthorized_client",
  "error_description": "Invalid token"
}
```

### Error Response (400 Bad Request)

```json theme={null}
{
  "error": "bad_request",
  "error_description": "projectName value can not be empty!"
}
```

## cURL Example

```bash theme={null}
curl -X GET \
  "https://demo.apinizer.com/apiops/projects/MyProject/jwks/" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

## Notes and Warnings

* **Performance**:
  * JWK key material is excluded from list response
  * Use Get JWK endpoint to retrieve full JWK details

* **Source Types**:
  * `URL`: JWK fetched from a URL
  * `COPY_PASTE`: JWK created from JSON string
  * `CERTIFICATE`: JWK extracted from certificate
  * `PUBLIC_KEY`/`PRIVATE_KEY`: JWK extracted from key
  * `KEYSTORE`: JWK extracted from keystore
  * `GENERATE`: JWK generated by Apinizer

## Permissions

User must have **any permission** in the project (read access).

## Related Documentation

* [Get JWK](/api-reference/keys-secrets/crud/get-jwk) - Get a specific JWK
* [Create JWK](/api-reference/keys-secrets/crud/create-jwk) - Create a new JWK
* [Generate JWK](/api-reference/keys-secrets/crud/generate-jwk) - Generate a new JWK
