Build it into
your workflow.
The editor, REST API and MCP work with the same Signature Buddy account. Start with a status request, then connect the operations your workflow needs.
Authentication
Go live from the editor to create your account. Your account key is shown after checkout and saved in that browser’s Account & image hosting settings. Keep it private. Send it in the Authorization header; never put it in a URL or public browser code.
curl https://signatures.workflowcorp.com/api/v1/status \
-H "Authorization: Bearer YOUR_ACCOUNT_KEY"API operations
Base URL: https://signatures.workflowcorp.com. JSON request bodies use Content-Type: application/json. The OpenAPI schema contains the request definitions.
Get account status
GET/api/v1/statusRead billing, Google connections, saved schedule summary, auto-apply setting and last deployment for the authenticated account.
Upload a signature image
POST/api/v1/uploadHost a PNG, JPEG, GIF or WebP image (up to 3 MB by default) at a permanent public URL. Images are content-addressed and cannot be deleted; do not upload private content.
Request schema
{
"type": "object",
"properties": {
"data": {
"type": "string",
"minLength": 1,
"description": "A base64 image data URL, for example data:image/png;base64,..."
}
},
"required": [
"data"
],
"additionalProperties": false
}Get signature schedule
GET/api/v1/scheduleRead this account's complete saved signature schedule, or null if none exists.
Save signature schedule
PUT/api/v1/scheduleReplace this account's complete schedule. Updates billed seat quantity to match the team and may create prorated charges. The daily job will publish it when auto-apply is enabled; this call does not publish immediately. Confirm the team and schedule before saving.
Request schema
{
"type": "object",
"properties": {
"schedule": {
"type": "object",
"required": [
"people"
],
"additionalProperties": true,
"properties": {
"generator": {
"type": "string",
"maxLength": 120
},
"format": {
"type": "integer",
"minimum": 1,
"maximum": 2
},
"generated": {
"type": "string",
"maxLength": 50
},
"received": {
"type": "string",
"maxLength": 50
},
"timezone": {
"type": "string",
"maxLength": 100
},
"company": {
"type": "string",
"maxLength": 500
},
"valid_until": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"people": {
"type": "array",
"maxItems": 5000,
"items": {
"type": "object",
"required": [
"email",
"windows"
],
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"maxLength": 500
},
"email": {
"type": "string",
"maxLength": 254,
"pattern": "^[^\\s@/\\\\]+@[^\\s@/\\\\]+\\.[^\\s@/\\\\]+$"
},
"windows": {
"type": "array",
"maxItems": 1000,
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"to": {
"type": [
"string",
"null"
],
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"html": {
"type": "string",
"maxLength": 10000
}
},
"required": [
"from",
"html"
],
"additionalProperties": false
}
}
}
}
}
}
}
},
"required": [
"schedule"
],
"additionalProperties": false
}Apply signatures to Gmail
POST/api/v1/applyPublish today's saved signatures to connected Gmail mailboxes. Overwrites the current Gmail signatures; confirm the intended account and people first. Returns each mailbox's updated, unchanged, skipped or failed result.
Set daily auto-apply
PATCH/api/v1/settingsEnable or disable daily publication of this account's saved signature schedule. Enabling allows the next daily job to overwrite connected Gmail signatures.
Request schema
{
"type": "object",
"properties": {
"autoApply": {
"type": "boolean"
}
},
"required": [
"autoApply"
],
"additionalProperties": false
}List Workspace people
GET/api/v1/directoryRead people in this account's connected Google Workspace directory. Requires an existing Workspace connection.
Upload an image
Send a supported PNG, JPEG, GIF or WebP as a data URL. The response contains a public image URL you can use in signature HTML. The default limit is 3 MB. SVG uploads are not supported.
curl -X POST https://signatures.workflowcorp.com/api/v1/upload \
-H "Authorization: Bearer YOUR_ACCOUNT_KEY" \
-H "Content-Type: application/json" \
-d '{"data":"data:image/png;base64,REPLACE_WITH_BASE64"}'Save and apply a schedule
The editor exports a signatures.json schedule with people, signature HTML, campaign dates and timezone. Use that file as the schedule property for PUT /api/v1/schedule. This replaces the stored schedule for the account; it does not itself publish a signature.
After checking the schedule, call POST /api/v1/apply with {} to publish the signatures currently due. Publishing changes connected Gmail signatures. Set autoApply with PATCH /api/v1/settings to control scheduled application; the service scheduler must also be configured.
Deployment guide
Google Workspace
Your Workspace administrator must authorise domain-wide delegation for the service account shown in the editor. Workflow Corporation support must also verify and bind that administrator to your Signature Buddy account. Once verified, connect the domain, import the directory if needed, and review the team before applying. The connection needs Gmail settings access and read-only directory access. It does not request permission to read message bodies.
Personal Gmail
Use Connect my Gmail when the service’s OAuth connection is available. Google’s consent screen and test-user restrictions depend on the service configuration and verification status. Complete the Google consent flow before trying to apply a signature.
Microsoft 365
Download your deployment schedule and use the supplied PowerShell deployment script. This requires an Exchange Online administrator and a compatible mailbox setup. Validate the result with your organisation’s Outlook clients. Automatic Outlook rollout is not provided by the REST API or MCP.
Manual setup and other clients
From an active account, copy your finished signature in the editor and paste it into the signature settings in Gmail, Outlook or Apple Mail. Email clients handle HTML differently, so send yourself a test message before rolling it out.
Google deployment script
For administrator-managed jobs, the Google deployment script can apply an exported schedule using domain-wide delegation. Configure credentials and schedule execution in your own environment.
Errors and safe retries
Responses use HTTP status codes and a JSON error message. Check the message before retrying. Uploading the same image reuses its content-addressed URL; applying a signature is a publishing operation and should follow a deliberate review.
| Status | What to check |
|---|---|
| 400 | Request shape, image format or schedule validation. |
| 401 | The bearer key is missing or invalid. |
| 402 / 403 | Account status or access restrictions. |
| 413 | The request or image exceeds the size limit. |
| 503 | A required provider or service is unavailable or unconfigured. |
Need the same operations in an assistant? See the MCP guide.