Skip to Content
API ReferenceProduction AccessSubmit production access request

Submit production access request

Request your account be moved out of sandbox into full production. Submission triggers an admin review. See Sandbox vs Production for the review criteria.

POST /api/v1/partner/email/production-access

Request body

{ "use_case": "We send transactional emails for our SaaS app — signup confirmations, password resets, payment receipts, weekly digest. Recipients are our paying customers who created accounts on our app.", "email_volume_estimate": "5000-15000 per day", "has_unsubscribe_method": true, "has_consent_proof": true }
FieldTypeRequiredNotes
use_casestringyes≥30 chars. Real description of WHO you’re sending to + WHY they signed up
email_volume_estimatestringyesRealistic daily volume
has_unsubscribe_methodboolyesConfirms you have unsubscribe links in marketing email
has_consent_proofboolyesConfirms recipients opted in (signup, double-opt-in, purchase, etc.)
legal_documentfilenoOptional supporting document (PDF / PNG / JPEG, max 10 MB). See below

All four data fields are required. Faking them violates AUP — accounts that lie get downgraded.

You can attach a supporting compliance document — CAN-SPAM attestation, opt-in proof, signed contract, registered-business certificate, etc. — to speed up the review. Submissions that include a relevant document are typically approved faster because the reviewer doesn’t need to ask follow-up questions.

To attach a document, switch the request from JSON to multipart/form-data and include the file under the legal_document field. The file is uploaded to our DigitalOcean Spaces bucket and exposed to the admin reviewer via a public URL on the request row.

Limits: PDF, PNG, or JPEG only. 10 MB max per file.

Response

{ "success": true, "request_id": "req_550e8400-...", "status": "PENDING", "domain_verified": true, "message": "Request submitted. Review typically takes 24 business hours.", "legal_document_url": "https://folder.splashifypro.com/partner_email_production_access/...pdf", "legal_document_filename": "compliance-attestation-2026.pdf" }

domain_verified reflects whether you currently have at least one domain identity in VERIFIED status — flagged on the admin side as a “ready for fast approval” signal.

legal_document_url and legal_document_filename are returned only when a document was uploaded with the request. Both fields are omitted otherwise.

Common errors

StatusCodeMeaning
400USE_CASE_TOO_SHORTDescription must be ≥30 characters
400MISSING_UNSUBSCRIBE_METHODRequired for marketing email
400MISSING_CONSENT_PROOFRecipients must have opted in
400INVALID_DOCUMENT_TYPEDocument must be PDF, PNG, or JPEG
400DOCUMENT_TOO_LARGEDocument must be 10 MB or smaller
503UPLOAD_UNAVAILABLESpaces uploader is temporarily down — retry without the file

cURL — JSON (no document)

curl https://api.splashifypro.com/api/v1/partner/email/production-access \ -H "Authorization: Bearer $SPLASHIFY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "use_case": "...", "email_volume_estimate": "5000 per day", "has_unsubscribe_method": true, "has_consent_proof": true }'
curl https://api.splashifypro.com/api/v1/partner/email/production-access \ -H "Authorization: Bearer $SPLASHIFY_API_KEY" \ -F "use_case=We send transactional emails for our SaaS app..." \ -F "email_volume_estimate=5000 per day" \ -F "has_unsubscribe_method=true" \ -F "has_consent_proof=true" \ -F "legal_document=@./compliance-attestation.pdf"

Note the absence of Content-Typecurl -F sets the multipart boundary automatically.