---
title: "Get the webhook client certificate"
canonical: "https://bird.com/docs/api/reference/get-workspace-webhook-client-certificate"
---

# Get the webhook client certificate

`GET /v1/workspace/webhook-client-certificate`

Returns the client certificate that we present on webhook deliveries of your workspace, its state and any waiting signing request. Realtime delivers `realtime.*` events without the certificate. Connector endpoints and MCP Events subscriptions never present it.

## Servers

- `https://{region}.platform.bird.com`: Regional API endpoint. Use the host for the region your organization is hosted in. Official Bird SDKs and the CLI select it automatically from your API key, so you rarely need to set it by hand.
  - `region`: `us1`, `eu1`. Default: `us1`. The region your organization's data is hosted in.
- `https://platform.bird.com`: Region-independent endpoint for authentication and account administration.
- `http://localhost:8080`: Local development.

## Authentication

Use one authentication option:

- `BearerAuth`: HTTP bearer authentication. Pass the API key as a bearer token in the `Authorization` header. Workspace
keys use `bk_{region}_*`; organization master keys use `bm_{region}_*`.
The prefix identifies the region and selects the
API endpoint. Official Bird SDKs and the CLI derive the region from the key.

- `CookieAuth`: Send `bird_session` in cookie. Session cookie set after signing in to the Bird dashboard. The cookie
value is an opaque session token; no session data is stored in the cookie
itself.

## Code samples

**cURL**

```sh
curl -X GET "https://us1.platform.bird.com/v1/workspace/webhook-client-certificate" \
  -H "Authorization: Bearer $TOKEN"
```

Examples: [cURL](/docs/api/reference/get-workspace-webhook-client-certificate.curl.md)

## Example response `200`

```json
{
  "state": "disabled",
  "crl_check": "disabled",
  "certificate": {
    "subject": "CN=bird-webhooks,O=Example Inc.",
    "issuer": "CN=Example Client CA,O=Example Inc.",
    "serial_number": "4f2a91c0d3",
    "fingerprint_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
  },
  "signing_request": {
    "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIIB...\n-----END CERTIFICATE REQUEST-----\n"
  }
}
```

## Header parameters

- `X-Workspace-Id` (string, optional): Workspace context for the request. Required for dashboard authentication and master keys. Workspace keys and access tokens already identify their workspace; send that workspace or omit the header. A different one is rejected.
- `X-Organization-Id` (string, optional): Organization context for the request. Required for dashboard authentication. An API key or access token carries its own organization, so send either that organization or no header at all; a different one is rejected.

## Response body

- `state` (string, required)

  Whether client certificates are off (`disabled`), checked while the previous behavior stays available (`evaluating`), or required (`enforced`).

  Possible values: `disabled`, `evaluating`, `enforced`
- `crl_check` (string, required)

  How a certificate chain is checked against the certificate revocation list (CRL) that each certificate names. With `full_chain`, the leaf certificate and each intermediate certificate below the trusted root are checked. A certificate that names no CRL is not checked.

  Possible values: `disabled`, `full_chain`
- `certificate` (nullable object, required): The certificate in use. `null` until you upload one.
- `certificate.subject` (string, required): The distinguished name of the certificate.
- `certificate.issuer` (string, required): The distinguished name of the certificate authority that signed it.
- `certificate.serial_number` (string, required): The serial number, in lowercase hexadecimal.
- `certificate.fingerprint_sha256` (string, required): The SHA-256 fingerprint of the certificate, in lowercase hexadecimal.
- `certificate.not_before` (string, required): Start of the validity period.
- `certificate.not_after` (string, required): End of the validity period.
- `signing_request` (nullable object, required): The signing request that waits for a signed certificate. `null` when none waits.
- `signing_request.csr` (string, required): The PEM-encoded PKCS #10 certificate signing request.
- `signing_request.created_at` (string, required): When we created the signing request.
- `updated_at` (nullable string, required): When the certificate or its state last changed. `null` until the first change.

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
