{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"d6772701-7019-41e1-acb8-9933f6bba4f1","name":"Email Gateway API Public","description":"🚀 Product Overview\n\nWhat is Email Gateway API?\n\nEmail Gateway API. adalah solusi email enterprise yang menyediakan infrastruktur email lengkap untuk bisnis modern. Kami menggabungkan teknologi email tradisional dengan fitur modern seperti tracking, analytics, dan automation.\n\n🌐 Production URL / Base URL : [https://api.unisend.id](https://api.fdn.my.id`)/api/v1\n\n## 🔐 Authentication\n\n### API Key Authentication\n\nFor email operations, use:\n\n```\nAuthorization: Bearer YOUR_API_KEY\n\n ```\n\n### JWT Token Authentication\n\nFor user management, use:\n\n```\nAuthorization: Bearer JWT_TOKEN\n\n ```\n\n## 📧 Email Operations\n\n### Send Single Email\n\n**POST** `/send-email`\n\n``` json\n{\n  \"to\": \"recipient@example.com\",\n  \"subject\": \"Test Email\",\n  \"text\": \"This is a test email\",\n  \"html\": \"<h1 class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>Test Email</h1>\",\n  \"from\": \"sender@yourdomain.com\",\n  \"tracking\": true\n}\n\n ```\n\n### Send Bulk Email\n\n**POST** `/send-email/bulk`\n\n``` json\n{\n  \"recipients\": [\"user1@example.com\", \"user2@example.com\"],\n  \"subject\": \"Bulk Test Email\",\n  \"text\": \"This is a bulk test email\",\n  \"from\": \"sender@yourdomain.com\"\n}\n\n ```\n\n## 👤 User Management\n\n### Register User\n\n**POST** `/auth/register`\n\n``` json\n{\n  \"email\": \"user@company.com\",\n  \"password\": \"securepassword123\",\n  \"name\": \"John Doe\",\n  \"company\": \"Company Name\"\n}\n\n ```\n\n### Login User\n\n**POST** `/auth/login`\n\n``` json\n{\n  \"email\": \"user@company.com\",\n  \"password\": \"securepassword123\"\n}\n\n ```\n\n## 🌐 Domain Management\n\n### List Domains\n\n**GET** `/domains`\n\n### Add Domain\n\n**POST** `/domains`\n\n``` json\n{\n  \"domain\": \"yourdomain.com\"\n}\n\n ```\n\n### Verify Domain\n\n**PATCH** `/domains/{domain_id}/verify`\n\n## 📊 Email Tracking\n\n### Get Email Tracking\n\n**GET** `/email-tracking/{tracking_id}`\n\n### Get Analytics\n\n**GET** `/email-tracking/analytics`\n\n## 🔑 API Key Management\n\n### Generate API Key\n\n**POST** `/api-keys`\n\n``` json\n{\n  \"name\": \"Production API Key\",\n  \"permissions\": [\"send_email\", \"track_email\"]\n}\n\n ```\n\n### List API Keys\n\n**GET** `/api-keys`\n\n## 📮 Mailbox Management\n\n### List Mailboxes\n\n**GET** `/mailbox-management`\n\n### Create Mailbox\n\n**POST** `/mailbox-management`\n\n``` json\n{\n  \"username\": \"newuser\",\n  \"password\": \"securepassword\",\n  \"domainId\": \"domain_id\"\n}\n\n ```\n\n## ⚡ Rate Limits\n\n| Plan | Requests per Minute | Daily Limit |\n| --- | --- | --- |\n| Starter | 100 | 1,000 |\n| Professional | 1,000 | 10,000 |\n| Enterprise | 10,000 | 100,000 |\n\n## ❌ Error Codes\n\n| Code | Message | Description |\n| --- | --- | --- |\n| 400 | Bad Request | Invalid request parameters |\n| 401 | Unauthorized | Invalid or missing authentication |\n| 403 | Forbidden | Insufficient permissions |\n| 404 | Not Found | Resource not found |\n| 429 | Too Many Requests | Rate limit exceeded |\n| 500 | Internal Server Error | Server error |\n\n## 🧪 Testing Scenarios\n\n### 1\\. User Onboarding Flow\n\n1. Register new user\n    \n2. Login and get JWT token\n    \n3. Generate API key\n    \n4. Add domain\n    \n5. Verify domain\n    \n6. Send test email\n    \n\n### 2\\. Email Sending Flow\n\n1. Authenticate with API key\n    \n2. Send single email\n    \n3. Send bulk email\n    \n4. Check tracking status\n    \n5. View analytics\n    \n\n### 3\\. Subscription Management Flow\n\n1. View available plans\n    \n2. Create subscription\n    \n3. Upgrade/downgrade plan\n    \n4. Cancel subscription\n    \n5. Process payment for upgrade\n    \n6. Monitor usage\n    \n7. Check billing status\n    \n\n## 🔧 Environment Variables\n\n### Required Variables\n\n- `base_url`: API base URL\n    \n- `api_key`: API key for email operations\n    \n- `jwt_token`: JWT token for user management\n    \n\n### Optional Variables\n\n- `user_id`: Current user ID\n    \n- `domain_id`: Selected domain ID\n    \n- `tracking_id`: Email tracking ID\n    \n- `email_id`: Email message ID\n    \n- `subscription_id`: Current subscription ID\n    \n- `plan_id`: Current plan ID\n    \n- `new_plan_id`: New plan ID for upgrade\n    \n\n## 📞 Support\n\n- **Email:** support@fdn.my.id\n    \n- **Documentation:** [https://docs.fdn.my.id](https://docs.fdn.my.id)\n    \n- **Status Page:** [https://status.fdn.my.id](https://status.fdn.my.id)\n    \n\n## 🚀 Getting Started Examples\n\n### cURL Examples\n\n#### Register User\n\n``` bash\ncurl -X POST https://api.fdn.my.id/auth/register \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\":\"user@company.com\",\"password\":\"password\",\"name\":\"John Doe\"}'\n\n ```\n\n#### Send Email\n\n``` bash\ncurl -X POST https://api.fdn.my.id/send-email \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"to\":\"recipient@example.com\",\"subject\":\"Test\",\"text\":\"Hello\"}'\n\n ```\n\n#### Get Analytics\n\n``` bash\ncurl -X GET https://api.fdn.my.id/email-tracking/analytics \\\n  -H \"Authorization: Bearer JWT_TOKEN\"\n\n ```\n\n## 📝 Notes\n\n- All requests should include appropriate headers\n    \n- API keys are required for email operations\n    \n- JWT tokens are required for user management\n    \n- Rate limits apply based on subscription plan\n    \n- All responses include `success` boolean field\n    \n- Error responses include `message` field with details\n    \n\n## 🔄 Updates\n\n- **v1.0:** Initial release with basic email operations\n    \n- **v1.1:** Added tracking and analytics endpoints\n    \n- **v1.2:** Added subscription and billing management\n    \n- **v1.3:** Added domain management and mailbox features\n    \n- **v1.4:** Updated to production URL and added comprehensive documentation\n    \n- **v1.5:** Added upgrade plan endpoints and payment processing\n    \n\n## ❌ Error Codes\n\n| Code | Message | Description |\n| --- | --- | --- |\n| 400 | Bad Request | Invalid request parameters |\n| 401 | Unauthorized | Invalid or missing authentication |\n| 403 | Forbidden | Insufficient permissions |\n| 404 | Not Found | Resource not found |\n| 429 | Too Many Requests | Rate limit exceeded |\n| 500 | Internal Server Error | Server error |\n\n### Domain Verification Errors:\n\n| Code | Message | Description |\n| --- | --- | --- |\n| DOMAIN_NOT_VERIFIED | Domain not verified | Domain must be verified before sending |\n| SMTP_AUTH_ERROR | SMTP authentication failed | Invalid SMTP credentials |\n| SMTP_CONNECTION_ERROR | SMTP connection failed | Unable to connect to SMTP server |\n| SMTP_ENVELOPE_ERROR | SMTP envelope error | Invalid email envelope |\n| SMTP_TIMEOUT_ERROR | SMTP timeout error | SMTP connection timed out |\n\n## 🔄 Updates\n\n- **v1.0:** Initial release with basic email operations\n    \n- **v1.1:** Added tracking and analytics endpoints\n    \n- **v1.2:** Added subscription and billing management\n    \n- **v1.3:** Added domain management and mailbox features\n    \n- **v1.4:** Updated to production URL and added comprehensive documentation\n    \n- **v1.5:** Added upgrade plan endpoints and payment processing\n    \n- **v1.6:** Implemented domain verification standard (Mailgun/SendGrid compliance)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"36438660","team":2834091,"collectionId":"d6772701-7019-41e1-acb8-9933f6bba4f1","publishedId":"2sB3HrndVu","public":true,"publicUrl":"https://documenter-api.postman.tech/view/36438660/2sB3HrndVu","privateUrl":"https://go.postman.co/documentation/36438660-d6772701-7019-41e1-acb8-9933f6bba4f1","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":"https://content.pstmn.io/668cfe61-8462-480f-a2e8-d4a507fef15b/dW5pc2VuZC1kYXJrYmcucG5n","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/3e66e999-03d2-4bf0-b815-fad67c853ad6/dW5pc2VuZC1saWdodGJnLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-09-25T02:49:56.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/3e66e999-03d2-4bf0-b815-fad67c853ad6/dW5pc2VuZC1saWdodGJnLnBuZw==","logoDark":"https://content.pstmn.io/668cfe61-8462-480f-a2e8-d4a507fef15b/dW5pc2VuZC1kYXJrYmcucG5n"}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/219c59447da63a794c7035cfc446c453b276daa57757ebe45f134752bb19ef51","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sB3HrndVu"}