Overview
The Titan Orderbox API allows for managing Titan Email orders, including adding, renewing, modifying, suspending, and deleting orders, as well as managing account seats and fetching order details and autologin URLs. This documentation provides detailed descriptions of the available endpoints and their parameters, along with example requests and responses.
Authentication
All API requests require the following authentication parameters:
- auth-userid: Your Live Account Reseller Id.
- api-key: An alphanumeric code used to authenticate your API calls.
Endpoints
- Production: https://httpapi.com/
- Testing: https://test.httpapi.com/
Note: For security reasons, always send API requests using HTTPS.
The HTTP API requires that all requests to retrieve data should use the GET method, while requests that submit, change, or destroy data should use the POST method. The Test URL allows you to make any request using the GET method, but this should only be used for testing purposes.
Recommendation: Use a Demo Account Reseller Id and Password with the Test URL for authentication instead of Live Account credentials. The Test URL should only be used for trying out or testing the API via browser/command line tools and should not be used in production environments.
Headers
For all API requests, you need to set the following headers:
- Content-Type: application/x-www-form-urlencoded
- type: text
- enabled: true
Product Keys
Product Name | Product Key |
---|---|
Titan Email (India) | titanmailindia |
Titan Email (Global) | titanmailglobal |
Plans
The list of plans and plan IDs can be obtained from the Plan Details API.
Plan ID | Product Name | Plan Name | Description |
---|---|---|---|
1761 | Titan Email (India) | Professional | 5 GB Plan |
1758 | Titan Email (India) | Business | 10 GB Plan |
1759 | Titan Email (India) | Enterprise | 50 GB Plan |
1760 | Titan Email (India) | Business (Free Trial) | 90-Day Free Trial of the Business plan offered with all new Domain Name Registrations |
1762 | Titan Email (Global) | Professional | 5 GB Plan |
1756 | Titan Email (Global) | Business | 10 GB Plan |
1757 | Titan Email (Global) | Enterprise | 50 GB Plan |
1755 | Titan Email (Global) | Business (Free Trial) | 90-Day Free Trial of the Business plan offered with all new Domain Name Registrations |
API Endpoints
1. Add Order
Add a new Titan Email order.
POST /restapi/product/{product_key}/order
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
domain-name | String | Required | The domain name for which the Order is placed. |
customer-id | Integer | Required | The Customer under whom the Order should be added. |
plan-id | Integer | Required | The plan under which the Order should be added. To fetch the plan details i.e., plan-id etc., use this method. |
noOfMonths | Integer | Required | The number of months for which the Order is placed. |
invoice-option | String | Required | This parameter will decide how the Customer Invoices will be handled. Values can be: NoInvoice, PayInvoice, KeepInvoice, OnlyAdd |
discount-amount | Float | Optional | Discount amount for the order value. |
additional-param-json | JSON String | Required | No of mailbox licenses to be purchased should be passed in this parameter. Eg: {"no_of_accounts":"1"} |
Example Request:
POST /restapi/product/titanmailindia/order?auth-userid=0&api-key=key&domain-name=domain.com&customer-id=0&plan-id=0&noOfMonths=12&invoice-option=KeepInvoice&additional-param-json=%7B%22no_of_accounts%22%3A%221%22%7D
Success Response:
{ "actiontypedesc": "Addition of Enterprise Email for domain.com for 12 months", "orderid": "0", "entityid": "0", "actionstatus": "PendingExecution", "status": "success", "netcustomercost": "100", "eaqid": "0", "description": "domain.com", "actiontype": "Add", "invoiceid": "0", "actionstatusdesc": "Order waiting to be Executed", "customercost": "100" }
Failure Response:
{ "error": "Titan Free Email can only be added in conjunction with domain orders under the same customer." }
2. Renew Order
Renew an existing Titan Email order.
PATCH /restapi/product/{product_key}/order/{order-id}/tenure/{tenure}
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId for which the order is to be renewed. |
tenure | Integer | Required | Tenure in months for which the order is to be renewed. |
invoice-option | String | Required | This parameter will decide how the Customer Invoices will be handled. Values can be: NoInvoice, PayInvoice, KeepInvoice, OnlyAdd |
auto-renew | Boolean | Optional | Enables / Disables the Auto Renewal setting for the Order. Important note for Auto-Renewal |
discount-amount | Float | Optional | Discount amount for the order value. |
additional-info | JSON String | Optional | No of additional mailbox licenses to be purchased should be passed in this parameter. Eg: {"no_of_accounts":"1"} |
Example Request:
PATCH /restapi/product/titanmailindia/order/0/tenure/1?auth-userid=0&api-key=key&invoice-option=KeepInvoice&additional-info=%7B%22no_of_accounts%22%3A%222%22%7D
Success Response:
{ "entityid": "0", "description": "domain.com", "actionstatus": "PendingExecution", "actionstatusdesc": "Your Order will be processed by our automatic provisioning system in the next 5-10 minutes.", "actiontypedesc": "Renewal of Enterprise Email for domain.com for 1 month", "status": "Success", "eaqid": "0", "actiontype": "Renew" }
3. Modify Order
Upgrade an existing Titan Email order.
PATCH /restapi/product/{product_key}/order/{order-id}/plan/{planid}
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId for which the details are to be fetched. |
planid | Integer | Required | New Plan ID to which the order should be upgraded. |
noOfMonths | Integer | Required | Specify the duration, in months, for which the order should be modified. If not provided, the order will be upgraded for the current tenure. |
invoice-option | String | Required | This parameter will decide how the Customer Invoices will be handled. Values can be: NoInvoice, PayInvoice, KeepInvoice, OnlyAdd |
discount-amount | Float | Optional | Discount amount for the order value. |
additional-info | JSON String | Optional | No of additional mailbox licenses to be purchased should be passed in this parameter. Eg: {"no_of_accounts":"1"} |
Example Request:
PATCH /restapi/product/titanmailindia/order/0/plan/0?auth-userid=0&api-key=key&noOfMonths=3&invoice-option=KeepInvoice&additional-info=%7B%22no_of_accounts%22%3A%225%22%7D
Success Response:
{ "entityid": "0", "description": "domain.com", "actionstatus": "PendingExecution", "actionstatusdesc": "Your Order will be processed by our automatic provisioning system in the next 5-10 minutes.", "actiontypedesc": "Upgrade to Enterprise Email Plan for domain.com", "status": "Success", "eaqid": "0", "actiontype": "ModOrder" }
4. Suspend Order
Suspend an existing Titan Email order.
PATCH /restapi/product/{product_key}/order/{order-id}/suspend
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId which is to be suspended. |
reason | String | Required | Reason for Suspension |
Example Request:
PATCH /restapi/product/titanmailindia/order/0/suspend?auth-userid=0&api-key=key&reason=Demo
Success Response:
{ "actiontypedesc": "Suspension of order", "entityid": "0", "actionstatus": "Success", "status": "Success", "eaqid": "0", "error": "NoError", "description": "domain.com", "actiontype": "Suspend", "actionstatusdesc": "Suspension completed successfully" }
5. Unsuspend Order
Unsuspend an existing Titan Email order.
PATCH /restapi/product/{product_key}/order/{order-id}/unsuspend
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId which is to be Unsuspended. |
Example Request:
PATCH /restapi/product/titanmailindia/order/0/unsuspend?auth-userid=0&api-key=key
Success Response:
{ "actiontypedesc": "Unsuspension of order", "entityid": "0", "actionstatus": "Success", "status": "Success", "eaqid": "0", "error": "NoError", "description": "domain.com", "actiontype": "Unsuspend", "actionstatusdesc": "Suspension Removed Successfully" }
6. Get Order Details
Gets the details of an existing Titan Email order.
GET /restapi/product/{product_key}
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Optional | The OrderId for which the details are to be fetched. |
domain-name | String | Optional | Domain name for which the details are to be fetched |
filter | String | Optional | This parameter will filter the orders according to the values provided. Values can be: orderid, domainname, recurring, creationtime, addon_quantity, planid, productkey, productcategory, currentstatus, moneybackperiod, entitytypeid, customerid, endtime, isOrderSuspendedUponExpiry, parentkey, dns_records |
Example Request:
GET /restapi/product/titanmailindia?auth-userid=0&api-key=key&order-id=0&filter=dns_records
Success Response:
{ "moneybackperiod": "0", "recurring": "false", "autoRenewTermType": "SHORT_TERM", "is_free": false, "noofaccounts": 1, "dns_records": [ { "type": "A", "host": "domain.com", "value": "A_RECORD", "class": "IN" }, { "type": "TXT", "host": "titan1._domainkey.domain.com", "value": "DKIM_RECORD", "class": "IN" }, { "type": "TXT", "host": "domain.com", "value": "SPF_RECORD", "class": "IN" }, { "type": "MX", "host": "domain.com", "value": "mx2.titan.email", "class": "IN" }, { "type": "MX", "host": "domain.com", "value": "mx1.titan.email", "class": "IN" } ], "isOrderSuspendedUponExpiry": "false", "planid": 0, "eaqid": "0", "endtime": "0", "productkey": "titanmailindia", "used_account_count": 0, "domainname": "domain.com", "plan_name": "Business Email", "entitytypeid": "0", "autoRenewAttemptDuration": "0", "parentkey": "0", "orderid": "0", "creationtime": "0", "customerid": "0", "productcategory": "hosting", "currentstatus": "Active" }
7. Fetch Autologin URL
Fetch the autologin URL for a specific email account.
GET /restapi/product/{product_key}/order/{order-id}/sso-url
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId for which the details are to be fetched. |
Example Request:
GET /restapi/product/titanmailindia/order/0/sso-url?auth-userid=0&api-key=key
Success Response:
{ "iframe_url": "URL", "sso_url": "URL" }
Important Note: Each API call generates a unique SSO URL, even if invoked in quick succession (e.g., within one second). The SSO URLs generated by the API are valid for 48 hours from the time of creation - you can execute them any time during this time frame. Each generated SSO URL can be accessed only once. Any subsequent API calls will generate new SSO URLs.
8. Add Accounts
Add additional mailbox licenses to an existing Titan Email order.
PATCH /restapi/product/{product_key}/orders/{order-id}/seats/{seats}
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId for which the details are to be fetched. |
seats | Integer | Required | Additional seats/mailbox licenses that needs to be added. |
invoice-option | String | Required | This parameter will decide how the Customer Invoices will be handled. Values can be: NoInvoice, PayInvoice, KeepInvoice, OnlyAdd |
discount-amount | Float | Optional | Discount amount for the order value. |
Example Request:
PATCH /restapi/product/titanmailindia/orders/0/seats/1?auth-userid=0&api-key=key&invoice-option=KeepInvoice
Success Response:
{ "entityid": "0", "description": "domain.com", "actionstatus": "PendingExecution", "actionstatusdesc": "Request will be processed in some time.", "actiontypedesc": "Addition of 1 accounts for domain.com", "status": "Success", "eaqid": "0", "actiontype": "AddAccount" }
9. Delete Accounts
Remove mailbox licenses from an existing Titan Email order.
DELETE /restapi/product/{product_key}/orders/{order-id}/seats/{seats}
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId for which the details are to be fetched. |
seats | Integer | Required | Seats/Mailbox licenses count that needs to be removed. |
Example Request:
DELETE /restapi/product/titanmailindia/order/0/seats/1?auth-userid=0&api-key=key
Success Response:
{ "entityid": "0", "description": "domain.com", "actionstatus": "ExecutionStarted", "actionstatusdesc": "Your account deletion request will be processed shortly.", "actiontypedesc": "Deletion of 1 account for domain.com", "status": "Success", "eaqid": "0", "actiontype": "DeleteAccount" }
10. Delete Order
Delete an existing Titan Email order.
DELETE /restapi/product/{product_key}/order/{order-id}
Query Parameters:
Name | Data Type | Required / Optional | Description |
---|---|---|---|
auth-userid | Integer | Required | Authentication Parameter |
api-key | String | Required | Authentication Parameter |
order-id | Integer | Required | The OrderId for which the order is to be deleted. |
Example Request:
DELETE /restapi/product/titanmailindia/order/0?auth-userid=0&api-key=key
Success Response:
{ "entityid": "0", "description": "domain.com", "actionstatus": "BegunExecution", "actionstatusdesc": "Your Order will be deleted by our automatic provisioning system in the next 5-10 minutes.", "actiontypedesc": "Deletion of domain.com", "status": "Success", "eaqid": "0", "actiontype": "DeleteOrder" }
Business (Free Trial) Plan Terms and Conditions
The business trial plan is a 90-day free trial offered with every domain name registered through us. Here are the caveats and terms:
- The free trial is available only once per domain name.
- Domains with prior free or paid Titan Email orders are ineligible for the free trial.
- Domains that have existing orders with Business Email or Enterprise Email are not eligible for the Titan Email Business (Free Trial) plan.
- The trial offers full access to all product features, with the only limitation being the trial duration.
- Opting to "Buy more accounts" or "Upgrade to Higher Plan" requires cancellation of the free trial and switching to a paid plan. If an order switches to a paid plan in the middle of the trial, the remaining days of the trial will be forfeited.