Email Signatures

ReferenceUpdated June 14, 2026

Email Signatures

Manage the workspace's reusable email signatures. A signature's display name (signature_name) is derived automatically from the first line of signature_text.

Signatures are part of the generation configuration: a saved signature's text is passed as the email_signature option when you preview, generate for one lead, or generate a batch — it's appended to the generated emails.

Reads require the signatures:read scope; writes require signatures:write. All operations are scoped to the API key's workspace.


List signatures

GET /api/v1/signatures · scope signatures:read

Query parameters

ParameterTypeRequiredDescription
limitnumberNoMax results (default 50, max 100).
offsetnumberNoPagination offset (default 0).

Example request

curl -X GET "https://app.machfive.io/api/v1/signatures?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200 OK)

{
  "data": [
    {
      "id": "uuid",
      "signature_text": "Jane Doe\nVP Marketing, Acme Inc\njane@acme.com",
      "signature_name": "Jane Doe",
      "created_by": "user-uuid",
      "created_at": "2025-01-15T12:00:00.000Z",
      "updated_at": "2025-01-15T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "total": 1
}
FieldTypeDescription
data[].idstring (UUID)Signature ID.
data[].signature_textstringFull signature text.
data[].signature_namestring | nullAuto-derived from the first line.
data[].created_bystring | nullUser who created it (workspace owner for API-created signatures).
data[].created_at / updated_atstring | nullTimestamps (ISO 8601).

Error responses

StatusErrorDescription
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENKey missing the signatures:read scope.
429RATE_LIMITEDPer-key rate limit exceeded; honor Retry-After.
500INTERNAL_ERRORServer error.

Create a signature

POST /api/v1/signatures · scope signatures:write

signature_name is set server-side from the first line of the text.

Request body

FieldTypeRequiredDescription
signature_textstringYesThe signature content (1–5000 characters, trimmed).

Example request

curl -X POST "https://app.machfive.io/api/v1/signatures" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "signature_text": "Jane Doe\nVP Marketing, Acme Inc\njane@acme.com" }'

Response (201 Created)

{
  "id": "uuid",
  "signature_text": "Jane Doe\nVP Marketing, Acme Inc\njane@acme.com",
  "signature_name": "Jane Doe",
  "created_by": "user-uuid",
  "created_at": "2025-01-15T12:00:00.000Z",
  "updated_at": "2025-01-15T12:00:00.000Z"
}

Error responses

StatusErrorDescription
400BAD_REQUESTMissing or invalid signature_text.
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENKey missing the signatures:write scope.
429RATE_LIMITEDPer-key rate limit exceeded; honor Retry-After.
500INTERNAL_ERRORServer error.

Update a signature

PUT /api/v1/signatures/:id · scope signatures:write

Replaces the signature text and re-derives signature_name.

Path parameters

ParameterTypeDescription
idstring (UUID)Signature ID.

Request body

FieldTypeRequiredDescription
signature_textstringYesNew signature content (1–5000 characters, trimmed).

Example request

curl -X PUT "https://app.machfive.io/api/v1/signatures/SIGNATURE_ID" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "signature_text": "Jane Doe\nHead of Growth, Acme Inc\njane@acme.com" }'

Response (200 OK)

{
  "id": "uuid",
  "signature_text": "Jane Doe\nHead of Growth, Acme Inc\njane@acme.com",
  "signature_name": "Jane Doe",
  "created_by": "user-uuid",
  "created_at": "2025-01-15T12:00:00.000Z",
  "updated_at": "2025-01-16T09:00:00.000Z"
}

Error responses

StatusErrorDescription
400BAD_REQUESTMissing or invalid signature_text.
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENKey missing the signatures:write scope.
404NOT_FOUNDSignature not found or not in this workspace.
429RATE_LIMITEDPer-key rate limit exceeded; honor Retry-After.
500INTERNAL_ERRORServer error.

Delete a signature

DELETE /api/v1/signatures/:id · scope signatures:write

Path parameters

ParameterTypeDescription
idstring (UUID)Signature ID.

Example request

curl -X DELETE "https://app.machfive.io/api/v1/signatures/SIGNATURE_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200 OK)

{ "id": "uuid", "deleted": true }

Error responses

StatusErrorDescription
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENKey missing the signatures:write scope.
404NOT_FOUNDSignature not found or not in this workspace.
429RATE_LIMITEDPer-key rate limit exceeded; honor Retry-After.
500INTERNAL_ERRORServer error.