# Create a signature

> **POST** `https://api.us.nylas.com/v3/grants/{grant_id}/signatures`

Source: https://developer.nylas.com/docs/reference/api/signatures/post-signature/

Create a signature for a grant. Each grant can have up to 10 signatures.

Nylas sanitizes the HTML content on input to prevent malicious content. Images must use
externally hosted URLs (base64 inline images are not supported). Maximum signature size is 100 KB.

**Authentication:** NYLAS_API_KEY, ACCESS_TOKEN

## Parameters

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `select` | string | No | Specify fields that you want Nylas to return, as a comma-separated list (for example, `select=id,updated_at`). This allows you to receive only the portion of object data that you're interested in. You can use `select` to optimize response size and reduce latency by limiting queries to only the information that you need. |

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `grant_id` | string | Yes | ID of the grant to access. Use `/me/` to refer to the grant associated with an access token. |

## Request body

Content-Type: application/json

- `name` (string) **(required)** - A label for the signature (for example, "Work", "Personal", or "Mobile").
- `body` (string) **(required)** - The HTML content of the signature. Maximum 100 KB. Images must use externally hosted URLs
(base64 inline images are not supported). Nylas sanitizes the HTML on input to prevent
malicious content.

## Responses

### 201 - Signature

- `request_id` (string) - The request ID.
- `data` (object)
  - `id` (string) - Globally unique identifier for the signature.
  - `grant_id` (string) - The ID of grant for the connected user.
  - `name` (string) - A label for the signature (for example, "Work", "Personal", or "Mobile").
  - `body` (string) - The HTML content of the signature. Images must use externally hosted URLs.
  - `object` (string) - The type of object.
  - `created_at` (integer) - Unix timestamp when the signature was created.
  - `updated_at` (integer) - Unix timestamp when the signature was last modified.

### 400 - Bad Request

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The error from the provider.

### 401 - Unauthorized

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.
  - `provider_error` (object) - The error from the provider.

### 429 - Rate Limit

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.

### 504 - Provider Failure

- `request_id` (string) - The request ID.
- `error` (object) - The response error object.
  - `type` (string) - The error type.
  - `message` (string) - The error message.

## Code samples

### cURL

```bash
curl --request POST \
  --url 'https://api.us.nylas.com/v3/grants/<NYLAS_GRANT_ID>/signatures' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer <NYLAS_API_KEY>' \
  --data '{
    "name": "Work Signature",
    "body": "<div><p><strong>Nick Barraclough</strong></p><p>Product Manager | Nylas</p><p><a href=\"mailto:nick@nylas.com\">nick@nylas.com</a></p></div>"
  }'

```
