---
title: "Create a Privacy Pass"
method: POST
path: "/privacy-passes"
tags: ["relay"]
---

# Create a Privacy Pass

`POST /privacy-passes`

## Request

- Base URL: `https://api.withpersona.com/api/v1`
- URL: `https://api.withpersona.com/api/v1/privacy-passes`
- Auth: HTTP bearer

Issues a Privacy Pass token by blind-signing a client-provided blinded token (Blind RSA, RFC 9578). The returned blind signature is unblinded client-side to produce a Privacy Pass token that can later be redeemed anonymously (for example, when generating a Relay claim).

## Headers

- `Key-Inflection` 'camel' | 'kebab' | 'snake'
- `Idempotency-Key` string
- `Persona-Version` '2026-09-29' | '2025-12-08' | '2025-10-27' | '2023-01-05' | '2022-09-01' | '2021-08-18' | '2021-07-05' | '2021-02-21' | '2020-05-18': Server API version. More info on versioning can be found [here](https://docs.withpersona.com/versioning).

## Request body

- object
  - `blinded-token` string, required: The base64url-encoded blinded token to be signed. Produced client-side by blinding a token input with the issuer public key identified by `key-id`.
  - `key-id` string, required: The hex-encoded identifier of the issuer signing key to use. Must match the key the `blinded-token` was blinded against.

## Response `201`

Returns the blind signature for the submitted blinded token.

- RelayCreateAPrivacyPassResponse201
  - `blind-sig` string, required: The base64url-encoded blind signature. Unblind this client-side to produce the Privacy Pass token.

## Other responses

- `400`: The request was unacceptable, often due to invalid parameters.
- `401`: An invalid API key was provided.
- `403`: The given API key doesn’t have permissions to perform the request or a quota has been exceeded.
- `404`: The requested resource doesn’t exist.
- `409`: The request conflicts with another request, often due to attempting to create a duplicate resource.
- `422`: The request modifies the resource in an unacceptable way, often due to an invalid action or parameter.
- `429`: Your organization’s rate limit has been exceeded. We recommend an exponential backoff on requests.

---

[API](https://skmtc.dev/withpersona/apis/withpersona-7.md) - [All operations](https://skmtc.dev/withpersona/apis/withpersona-7/llms.txt) - [OpenAPI document](https://skmtc.dev/withpersona/apis/withpersona-7/revisions/904c4b28844f?raw)
