# List a user's certificates

`GET https://api.cademi.com.br/api/v3/users/{user_id}/certificates`

Operation ID: `certificates.list` · API v3

Returns the certificates issued to the user, including revoked certificates. Deleted certificates are not included.

The collection can be filtered by product, status, and issue date, and is paginated with a cursor.

The `fields` object, which contains the document, address, and custom field values recorded at issuance, is included only when the credential has the `users.read_personal` permission.

Required permissions: `certificates.read`.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `user_id` | path | string | yes |  |
| `limit` | query | integer | no |  |
| `cursor` | query | string | no |  |
| `sort` | query | string, one of `id`, `-id` | no |  |
| `product_id` | query | string | no |  |
| `status` | query | string, one of `valid`, `revoked` | no |  |
| `issued_after` | query | string (date-time) | no |  |
| `issued_before` | query | string (date-time) | no |  |

## Responses

### 200

Returns the collection of certificates.

Body: `data`: array of Certificate.

Fields of Certificate:

| Field | Type | Required | Description |
|---|---|---|---|
| `code` | string | yes | Code printed on the certificate and used by public certificate validation. |
| `deleted` | boolean | yes |  |
| `fields` | object or null | no | Data captured at issuance, which does not change afterward. Requires the users.read_personal permission. |
| `id` | string | yes | Public ID of the certificate, prefixed with cer_. |
| `issued_at` | string (date-time) | yes |  |
| `number` | object | yes | Certificate numbering: the account-wide sequence and the per-product sequence. |
| `object` | string, one of `certificate` | yes |  |
| `pdf_url` | string | yes | URL of the certificate PDF, rendered from the certificate code. |
| `product_id` | string | yes | Public ID of the product, prefixed with prd_. |
| `reissue` | boolean | yes | Whether this certificate was produced by a reissue. |
| `revision` | string | yes |  |
| `revoked` | object or null | yes | Present only when the certificate has been revoked. |
| `status` | string, one of `valid`, `revoked` | yes |  |
| `superseded_by_certificate_id` | string or null | yes | Public ID of the certificate that replaced this one. |
| `supersedes_certificate_id` | string or null | yes | Public ID of the certificate that this one replaced. |
| `user_id` | string | yes | Public ID of the user, prefixed with usr_. |
| `validation_url` | string | yes | URL of the public validation page for the certificate code. |

### 400

The cursor is invalid or the request contains an unsupported query parameter.

Body: Error.

### 401

The credential is missing, malformed, expired, or revoked.

Body: Error.

### 403

The current credentials do not have the permission required by this operation.

Body: Error.

### 404

The user was not found or is not accessible with the current credentials.

Body: Error.

### 422

The request body or query parameters failed validation.

Body: ValidationFailed.

Full schema: https://cademi.dev/openapi/v3.json
