---
title: "Save a signature"
method: POST
path: "/v1/users/me/signatures"
tags: ["Signatures"]
---

# Save a signature

`POST /v1/users/me/signatures`

## Request

- Base URL: `https://api.signvoy.com`
- URL: `https://api.signvoy.com/v1/users/me/signatures`
- Auth: HTTP bearer

Stores a signature for reuse. Up to 10 per user; the first one saved becomes the default.

## Request body

- CreateUserSignatureDto
  - `source` 'draw' | 'type', required: How the signature was produced
  - `dataUrl` string, required: Base64 PNG data URL, up to 256 KB decoded
  - `typedName` string: The name that was typed. Required when source is 'type'.
  - `fontKey` 'caveat' | 'dancing-script' | 'sacramento' | 'great-vibes' | 'homemade-apple' | 'allura' | 'parisienne': Font the name was rendered in. Required when source is 'type'.
  - `isDefault` boolean: Make this the default. The first signature a user saves becomes the default regardless.

## Response `201`

- UserSignatureDto
  - `id` string, uuid, required
  - `source` 'draw' | 'type', required: How the signature was produced
  - `dataUrl` string, required: The signature image as a base64 PNG data URL
  - `typedName` string, nullable, required: The name that was typed. Only set when source is 'type'.
  - `fontKey` string, nullable, required: Font the name was rendered in, keyed to SIGNATURE_FONTS. Only set when source is 'type'.
  - `isDefault` boolean, required: Offered first when signing. At most one per user.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `409`: The per-user signature limit is reached

---

[API](https://skmtc.dev/signvoy/apis/signvoy-api.md) · [All operations](https://skmtc.dev/signvoy/apis/signvoy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/signvoy/apis/signvoy-api/revisions/003cabc7cfe2?raw)
