Documentation Index Fetch the complete documentation index at: https://docs.spitshake.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Custom domains let you serve signing pages, emails, and API endpoints from your own branded domain (e.g., sign.yourcompany.com) instead of the default spitshake.io. DocuTrust handles DNS verification and automatic SSL certificate provisioning.
Add a Custom Domain
Register a new domain with your account. The response includes DNS records you must create to verify ownership.
curl -X POST "https://spitshake.io/api/custom_domains" \
-H "X-Auth-Token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domain": "sign.yourcompany.com"
}'
201 Created
422 — Duplicate Domain
422 — Invalid Domain
{
"id" : 42 ,
"domain" : "sign.yourcompany.com" ,
"status" : "pending" ,
"primary" : false ,
"verification_record_name" : "_docutrust-verify.sign.yourcompany.com" ,
"verification_record_value" : "docutrust-verify=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" ,
"ssl_status" : "pending" ,
"dns_verified_at" : null ,
"ssl_provisioned_at" : null ,
"last_checked_at" : null ,
"last_error" : null ,
"created_at" : "2026-04-08T15:00:00Z"
}
DNS Setup
After adding a domain, create the following DNS records with your domain registrar:
Required Records
Type Name Value Purpose CNAME sign.yourcompany.comspitshake.ioRoutes traffic to DocuTrust TXT _docutrust-verify.sign.yourcompany.comdocutrust-verify=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6Proves domain ownership
DNS propagation can take up to 48 hours, though most providers complete within 15 minutes. DocuTrust checks DNS records automatically every 10 minutes.
Status Lifecycle
Custom domains progress through the following statuses:
pending → dns_verified → ssl_pending → active
│
├──▶ failed (recoverable)
└──▶ removed (terminal)
Status Description pendingDomain added, awaiting DNS verification dns_verifiedTXT record confirmed, SSL provisioning starting ssl_pendingSSL certificate is being issued by Let’s Encrypt activeDomain is fully operational with valid SSL failedDNS or SSL verification failed (see last_error for details) removedDomain has been deleted from the account
Verify Domain DNS
Manually trigger a DNS verification check. Useful if you have just added the DNS records and do not want to wait for the automatic check cycle.
curl -X POST "https://spitshake.io/api/custom_domains/42/verify" \
-H "X-Auth-Token: YOUR_API_TOKEN"
200 — Verified
200 — Not Yet Verified
{
"id" : 42 ,
"domain" : "sign.yourcompany.com" ,
"status" : "dns_verified" ,
"primary" : false ,
"verification_record_name" : "_docutrust-verify.sign.yourcompany.com" ,
"verification_record_value" : "docutrust-verify=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" ,
"ssl_status" : "pending" ,
"dns_verified_at" : "2026-04-08T15:20:00Z" ,
"ssl_provisioned_at" : null ,
"last_checked_at" : "2026-04-08T15:20:00Z" ,
"last_error" : null ,
"created_at" : "2026-04-08T15:00:00Z"
}
List All Domains
curl -X GET "https://spitshake.io/api/custom_domains" \
-H "X-Auth-Token: YOUR_API_TOKEN"
[
{
"id" : 42 ,
"domain" : "sign.yourcompany.com" ,
"status" : "active" ,
"primary" : true ,
"verification_record_name" : "_docutrust-verify.sign.yourcompany.com" ,
"verification_record_value" : "docutrust-verify=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" ,
"ssl_status" : "active" ,
"dns_verified_at" : "2026-04-08T15:20:00Z" ,
"ssl_provisioned_at" : "2026-04-08T15:22:00Z" ,
"last_checked_at" : "2026-04-08T16:00:00Z" ,
"last_error" : null ,
"created_at" : "2026-04-08T15:00:00Z"
},
{
"id" : 43 ,
"domain" : "docs.yourcompany.com" ,
"status" : "pending" ,
"primary" : false ,
"verification_record_name" : "_docutrust-verify.docs.yourcompany.com" ,
"verification_record_value" : "docutrust-verify=f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3" ,
"ssl_status" : "pending" ,
"dns_verified_at" : null ,
"ssl_provisioned_at" : null ,
"last_checked_at" : null ,
"last_error" : null ,
"created_at" : "2026-04-08T16:00:00Z"
}
]
Set Primary Domain
Designate a domain as the primary. The primary domain is used in all outgoing emails and signing URLs.
curl -X PUT "https://spitshake.io/api/custom_domains/42/primary" \
-H "X-Auth-Token: YOUR_API_TOKEN"
200 OK
422 — Domain Not Active
{
"id" : 42 ,
"domain" : "sign.yourcompany.com" ,
"status" : "active" ,
"primary" : true ,
"verification_record_name" : "_docutrust-verify.sign.yourcompany.com" ,
"verification_record_value" : "docutrust-verify=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" ,
"ssl_status" : "active" ,
"dns_verified_at" : "2026-04-08T15:20:00Z" ,
"ssl_provisioned_at" : "2026-04-08T15:22:00Z" ,
"last_checked_at" : "2026-04-08T16:00:00Z" ,
"last_error" : null ,
"created_at" : "2026-04-08T15:00:00Z"
}
Delete a Domain
Remove a custom domain. If the deleted domain was primary, signing URLs revert to spitshake.io.
curl -X DELETE "https://spitshake.io/api/custom_domains/43" \
-H "X-Auth-Token: YOUR_API_TOKEN"
{
"id" : 43 ,
"domain" : "docs.yourcompany.com" ,
"status" : "removed" ,
"primary" : false ,
"verification_record_name" : "_docutrust-verify.docs.yourcompany.com" ,
"verification_record_value" : "docutrust-verify=f6e5d4c3b2a1f6e5d4c3b2a1f6e5d4c3" ,
"ssl_status" : "pending" ,
"dns_verified_at" : null ,
"ssl_provisioned_at" : null ,
"last_checked_at" : null ,
"last_error" : null ,
"created_at" : "2026-04-08T16:00:00Z"
}