Skip to the documentation
API

Create a signature

Add a named signature to an address or to a catch-all.

POST/signatures

Runs the real call on your workspace.

POST /signatures

Add a named signature to an address or to a catch-all.

Example

Needs settings:write. address, name and html are required.

curl
curl -X POST "$OE/signatures" -H "$AUTH" -H "Content-Type: application/json" \  -d '{    "address": "[email protected]",    "name": "Short",    "html": "<p>Ada<br>Acme Ltd</p>",    "isReplyDefault": true  }'
Response
{  "object": "signature",  "id": "sig_8f2c1a9b7d3e4f60a1b2c3d4",  "address": "[email protected]",  "name": "Short",  "html": "<p>Ada<br />Acme Ltd</p>",  "isDefault": false,  "isReplyDefault": true,  "createdAt": "2026-10-12T09:14:03.117Z",  "updatedAt": "2026-10-12T09:14:03.117Z"}

The HTML is sanitised the way outgoing mail is, so what comes back can differ from what you sent, and it has to keep some text or an image. It takes at most 150,000 characters, before and after sanitising, or the call is a 422 signature_too_long.

The first signature of an address becomes its default for new mail and for replies unless isDefault or isReplyDefault says false. A later one becomes a default only when asked, and then takes that place from the signature that held it.

name is 1 to 80 characters and unique on its address, whatever the case. A name the address already uses is a 409 signature_name_taken. An address holds at most 50 signatures, and the one past that is a 422 signature_limit_reached.

The address has to be one of the workspace, or a catch-all on a verified domain here with its catch-all on. Anything else, a whole domain included, is a 422 invalid_parameter.

Reference