# Get signature

Retrieve a user's signature.

## Get signature

<mark style="color:blue;">`GET`</mark> `https://api.signitic.app/signatures/:email/:mode`

## Path parameters

| Name                                    | Type   | Description      |
| --------------------------------------- | ------ | ---------------- |
| email<mark style="color:red;">\*</mark> |        | User email       |
| mode<mark style="color:red;">\*</mark>  | String | `json` or `html` |

## Headers

| Name                                        | Type   | Description  |
| ------------------------------------------- | ------ | ------------ |
| x-api-key<mark style="color:red;">\*</mark> | String | Your API key |

## Success response

{% tabs %}
{% tab title="200: OK Return JSON signature" %}

```json
{
  "success": true,
  "html": "<body>signature</body>"
}
```

{% endtab %}

{% tab title="200: OK Return HTML signature" %}

```html
<body>signature</body>
```

{% endtab %}
{% endtabs %}

If `mode=json`, the API returns a JSON object with the generated signature HTML in the `html` field.

If `mode=html`, the API returns the raw HTML signature with a `text/html` content type.

## Error responses

| Status | Internal code | When                                                                                                                                                                                                     |
| ------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 401    | `99`          | The `x-api-key` header is missing.                                                                                                                                                                       |
| 401    | n/a           | The API key does not match a workspace with API access. This error is returned in a legacy payload using `error` instead of `success`.                                                                   |
| 405    | `100`         | The reserved `users` path segment is used instead of a user email.                                                                                                                                       |
| 422    | `106`         | The user cannot receive a signature in the current state, for example because the user is inactive. Some business-rule errors are still returned in a legacy payload using `error` instead of `success`. |
