Difference between revisions of "Domain (Rest API)"
(v1 documentation) |
(→Add/Edit (Reseller Only): document rsEmailProduct field) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
__TOC__ | __TOC__ | ||
− | == | + | == v1 - Current == |
=== Index === | === Index === | ||
Line 8: | Line 8: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains</nowiki> |
Line 18: | Line 18: | ||
''Remarks'': | ''Remarks'': | ||
− | |||
− | + | *To retrieve a list of domains owned by the account that is logged in, use "me" as the customer account number i.e. <nowiki>'https://api.emailsrvr.com/v1/customers/me/domains'</nowiki>. | |
+ | *To retrieve a list of domains owned by all customer sub-accounts and your own account, use "all" as the customer account number. <nowiki>'https://api.emailsrvr.com/v1/customers/all/domains'</nowiki>. | ||
+ | *To retrieve a list of domains owned by a single customer sub-account, use the subaccounts account number in the url. <nowiki>'https://api.emailsrvr.com/v1/customers/{subaccount number}/domains'</nowiki>. | ||
+ | *Leaving the customers/{customer account number} out of the url is acceptable and returns the sames results as /customers/me | ||
+ | <nowiki>'https://api.emailsrvr.com/v1/domains'</nowiki>. | ||
+ | *The index operation only supports the GET HTTP verb. | ||
''Example'': | ''Example'': | ||
<pre> | <pre> | ||
− | get '/customers/all/domains?size=100&offset=10', ' | + | get '/customers/all/domains?size=100&offset=10' |
+ | </pre> | ||
+ | |||
+ | |||
+ | ''domainNames Parameter '''(V1 only)''''': | ||
+ | The optional query string parameter "domainNames" can be used to retrieve a specific subset of domains by hostname. Up to 100 hostnames can be given at once in a comma-delimited list. | ||
+ | <pre> | ||
+ | get '/customers/all/domains?domainNames=apidomain53.com,apidomain66.com,apidomain68.com', 'application/json' | ||
</pre> | </pre> | ||
Line 44: | Line 55: | ||
<accountNumber>100000</accountNumber> | <accountNumber>100000</accountNumber> | ||
<serviceType>both</serviceType> | <serviceType>both</serviceType> | ||
+ | <exchangeMaxNumMailboxes>10</exchangeMaxNumMailboxes> | ||
+ | <exchangeUsedStorage>4</exchangeUsedStorage> | ||
+ | <rsEmailMaxNumberMailboxes>10</rsEmailMaxNumberMailboxes> | ||
+ | <rsEmailUsedStorage>9</rsEmailUsedStorage> | ||
</domain> | </domain> | ||
<domain> | <domain> | ||
<name>apidomain66.com</name> | <name>apidomain66.com</name> | ||
<accountNumber>100001</accountNumber> | <accountNumber>100001</accountNumber> | ||
− | <serviceType> | + | <serviceType>rsemail</serviceType> |
+ | <exchangeMaxNumMailboxes>0</exchangeMaxNumMailboxes> | ||
+ | <exchangeUsedStorage>0</exchangeUsedStorage> | ||
+ | <rsEmailMaxNumberMailboxes>100</rsEmailMaxNumberMailboxes> | ||
+ | <rsEmailUsedStorage>40</rsEmailUsedStorage> | ||
</domain> | </domain> | ||
<domain> | <domain> | ||
<name>apidomain68.com</name> | <name>apidomain68.com</name> | ||
<accountNumber>100002</accountNumber> | <accountNumber>100002</accountNumber> | ||
− | <serviceType> | + | <serviceType>exchange</serviceType> |
+ | <exchangeMaxNumMailboxes>50</exchangeMaxNumMailboxes> | ||
+ | <exchangeUsedStorage>10</exchangeUsedStorage> | ||
+ | <rsEmailMaxNumberMailboxes>0</rsEmailMaxNumberMailboxes> | ||
+ | <rsEmailUsedStorage>0</rsEmailUsedStorage> | ||
</domain> | </domain> | ||
</domains> | </domains> | ||
Line 64: | Line 87: | ||
<pre> | <pre> | ||
{"offset":0,"size":50,"total":3,"domains": | {"offset":0,"size":50,"total":3,"domains": | ||
− | [{"name":"apidomain53.com","accountNumber":"100000","serviceType":"both"}, | + | [{"name":"apidomain53.com","accountNumber":"100000","serviceType":"both","exchangeMaxNumMailboxes":"10","exchangeUsedStorage":"4","rsEmailMaxNumberMailboxes":"10","rsEmailUsedStorage":"9"}, |
− | {"name":"apidomain66.com","accountNumber":"100001","serviceType":" | + | {"name":"apidomain66.com","accountNumber":"100001","serviceType":"rsemail","exchangeMaxNumMailboxes":"0","exchangeUsedStorage":"0","rsEmailMaxNumberMailboxes":"100","rsEmailUsedStorage":"40"}, |
− | {"name":"apidomain68.com","accountNumber":"100002","serviceType":" | + | {"name":"apidomain68.com","accountNumber":"100002","serviceType":"exchange","exchangeMaxNumMailboxes":"50","exchangeUsedStorage":"10","rsEmailMaxNumberMailboxes":"0","rsEmailUsedStorage":"0"}]} |
</pre> | </pre> | ||
+ | |||
+ | === Export === | ||
+ | |||
+ | ''URL'': | ||
+ | |||
+ | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains?exportTo={email address}</nowiki> | ||
+ | |||
+ | |||
+ | ''Description'': | ||
+ | |||
+ | Use this route to export a file that includes details for domains on an account. | ||
+ | |||
+ | |||
+ | ''Remarks'': | ||
+ | |||
+ | *To retrieve a list of domains owned by the account that is logged in, use "me" as the customer account number i.e. <nowiki>'https://api.emailsrvr.com/v1/customers/me/domains?exportTo=myAdminEmail@example.com'</nowiki>. | ||
+ | *To retrieve a list of domains owned by all customer sub-accounts and your own account, use "all" as the customer account number. <nowiki>'https://api.emailsrvr.com/v1/customers/all/domains?exportTo=myAdminEmail@example.com'</nowiki>. | ||
+ | *To retrieve a list of domains owned by a single customer sub-account, use the subaccounts account number in the url. <nowiki>'https://api.emailsrvr.com/v1/customers/{subaccount number}/domains?exportTo=myAdminEmail@example.com'</nowiki>. | ||
+ | *Leaving the customers/{customer account number} out of the url is acceptable and returns the sames results as /customers/me | ||
+ | <nowiki>'https://api.emailsrvr.com/v1/domains?exportTo=myAdminEmail@example.com'</nowiki>. | ||
+ | *The export route supports 'contains' and 'startswith' filtering | ||
=== Show === | === Show === | ||
Line 73: | Line 117: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)</nowiki> |
Line 83: | Line 127: | ||
''Remarks'': | ''Remarks'': | ||
− | The show operation only supports the GET HTTP verb. | + | The show operation only supports the GET HTTP verb. |
Line 95: | Line 139: | ||
<pre> | <pre> | ||
− | get '/customers/999999/domains/example.com | + | get '/customers/999999/domains/example.com' |
</pre> | </pre> | ||
Line 142: | Line 186: | ||
''URL'': | ''URL'': | ||
<nowiki> | <nowiki> | ||
− | Add: [POST] https://api.emailsrvr.com/ | + | Add: [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) |
− | Edit: [PUT] https://api.emailsrvr.com/ | + | Edit: [PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) |
</nowiki> | </nowiki> | ||
Line 168: | Line 212: | ||
| int | | int | ||
| Maximum number of mailboxes allowed under the domain Exchange service. Required for Adding Exchange service | | Maximum number of mailboxes allowed under the domain Exchange service. Required for Adding Exchange service | ||
+ | |- | ||
+ | | rsEmailProduct | ||
+ | | string | ||
+ | | Rackspace Email product type. "rse-basic" = "Basic (Email)". "rse-plus" = "Plus (Email, Mobile Sync, Drive, and Docs)" | ||
|- | |- | ||
| rsEmailBaseMailboxSize | | rsEmailBaseMailboxSize | ||
Line 214: | Line 262: | ||
<pre> | <pre> | ||
− | post '/customers/123455/domains/newcompany.com | + | post '/customers/123455/domains/newcompany.com', |
{ | { | ||
'maxNumMailboxes' => '5', | 'maxNumMailboxes' => '5', | ||
Line 222: | Line 270: | ||
<pre> | <pre> | ||
− | put '/customers/123455/domains/newcompany.com | + | put '/customers/123455/domains/newcompany.com', |
{ | { | ||
'maxNumMailboxes' => '25', | 'maxNumMailboxes' => '25', | ||
Line 245: | Line 293: | ||
| abc.com already exists as a domain or alternate domain | | abc.com already exists as a domain or alternate domain | ||
|} | |} | ||
+ | |||
+ | ''Notes'': | ||
+ | |||
+ | When setting <code>rsEmailProduct</code>, there is a short delay before the change is reflected, while the upgrade (or downgrade) process is happening. | ||
=== Move (Reseller Only)=== | === Move (Reseller Only)=== | ||
Line 250: | Line 302: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[PUT] https://api.emailsrvr.com/ | + | <nowiki>[PUT] https://api.emailsrvr.com/v1/customers/ |
(new customer account number)/domains/(domain name)</nowiki> | (new customer account number)/domains/(domain name)</nowiki> | ||
Line 256: | Line 308: | ||
''Description'': | ''Description'': | ||
− | Moves | + | Moves a domain among your account and subaccounts. |
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 278: | Line 329: | ||
<pre> | <pre> | ||
− | put '/customers/123456/domains/newcompany.com | + | put '/customers/123456/domains/newcompany.com', |
{ | { | ||
'moveDomain' => 'true' | 'moveDomain' => 'true' | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | === Transfer === | ||
+ | |||
+ | Transfers ownership of a domain to another customer. You can start, read, and cancel the transfer. The other customer can finish the transfer. | ||
+ | |||
+ | ==== Start ==== | ||
+ | |||
+ | ''URL'': | ||
+ | |||
+ | <pre> | ||
+ | [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer | ||
+ | </pre> | ||
+ | |||
+ | ''Description'': | ||
+ | |||
+ | Creates a transfer, which is represented by a token. A transfer also has an expiration, which is represented by an RFC 3339 formatted timestamp. After the expiration, the transfer is automatically canceled. | ||
+ | |||
+ | ''Example'': | ||
+ | |||
+ | <pre> | ||
+ | post'/customers/12345678/domains/company.com/transfer', 'application/json' | ||
+ | </pre> | ||
+ | |||
+ | ''JSON Result Example'': | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Token": "b77b8460-5019-48e0-a5eb-4951640ea3cd", | ||
+ | "Expiration": "2014-08-20T17:28:44Z" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ''Errors'': | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !''Description'' | ||
+ | !''HTTP Response Code'' | ||
+ | !''Sample Message'' | ||
+ | |- | ||
+ | | The domain does not exist or is not accessible by the admin | ||
+ | | 404 | ||
+ | | example.com not found | ||
+ | |} | ||
+ | |||
+ | ==== Read ==== | ||
+ | |||
+ | ''URL'': | ||
+ | |||
+ | <pre> | ||
+ | [GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer | ||
+ | </pre> | ||
+ | |||
+ | ''Description'': | ||
+ | |||
+ | Retrieves the domain transfer information for the domain that was returned by the request to start the transfer. | ||
+ | |||
+ | ''Example'': | ||
+ | |||
+ | <pre> | ||
+ | get '/customers/12345678/domains/company.com/transfer', 'application/json' | ||
+ | </pre> | ||
+ | |||
+ | ''JSON Result Example'': | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Token": "b77b8460-5019-48e0-a5eb-4951640ea3cd", | ||
+ | "Expiration": "2014-08-20T17:28:44Z" | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ''Errors'': | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !''Description'' | ||
+ | !''HTTP Response Code'' | ||
+ | !''Sample Message'' | ||
+ | |- | ||
+ | | No transfer has been started, or the transfer has expired | ||
+ | | 404 | ||
+ | | Domain transfer offer not found. | ||
+ | |} | ||
+ | |||
+ | ==== Cancel ==== | ||
+ | |||
+ | ''URL'': | ||
+ | |||
+ | <pre> | ||
+ | [DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer | ||
+ | </pre> | ||
+ | |||
+ | ''Description'': | ||
+ | |||
+ | Cancels a domain transfer. | ||
+ | |||
+ | ''Example'': | ||
+ | |||
+ | <pre> | ||
+ | delete '/customers/12345678/domains/company.com/transfer', 'application/json' | ||
+ | </pre> | ||
+ | |||
+ | ==== Finish ==== | ||
+ | |||
+ | ''URL'': | ||
+ | |||
+ | <pre> | ||
+ | [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer/finish | ||
+ | </pre> | ||
+ | |||
+ | ''Description'': | ||
+ | |||
+ | Finish a domain transfer. This API request must be made by an admin that is on the account that will accept the domain. When the request completes successfully, assigns ownership of the domain to the company of the authenticated admin. That company will have full control of the domain, and accepts billing for services associated with the domain. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !''Field Name'' | ||
+ | !''Data Type'' | ||
+ | !''Description'' | ||
+ | |- | ||
+ | | token | ||
+ | | string | ||
+ | | the token returned by the POST or GET to this resource by an admin with access to the domain | ||
+ | |} | ||
+ | |||
+ | ''Example'': | ||
+ | |||
+ | <pre> | ||
+ | post '/customers/12345678/domains/company.com/transfers/finish', 'application/json', | ||
+ | { | ||
+ | 'Token' => 'b77b8460-5019-48e0-a5eb-4951640ea3cd' | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ''JSON Result Example'': | ||
+ | |||
+ | <pre> | ||
+ | { | ||
+ | "Token": "b77b8460-5019-48e0-a5eb-4951640ea3cd", | ||
+ | "Expiration": "2014-08-20T17:28:44Z" | ||
+ | } | ||
+ | </pre> | ||
+ | ''Errors'': | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !''Description'' | ||
+ | !''HTTP Response Code'' | ||
+ | !''Sample Message'' | ||
+ | |- | ||
+ | | The domain does not exist or is not accessible by the admin | ||
+ | | 404 | ||
+ | | example.com not found | ||
+ | |- | ||
+ | | The transfer token is invalid | ||
+ | | 404 | ||
+ | | example.com not found | ||
+ | |} | ||
=== Delete (Reseller Only)=== | === Delete (Reseller Only)=== | ||
Line 288: | Line 494: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[DELETE] https://api.emailsrvr.com/ | + | <nowiki>[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)</nowiki> |
Line 304: | Line 510: | ||
<pre> | <pre> | ||
− | delete '/customers/12345678/domains/newcompany.com | + | delete '/customers/12345678/domains/newcompany.com' |
</pre> | </pre> | ||
Line 314: | Line 520: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/ |
domains/(domain name)/alternatedomains</nowiki> | domains/(domain name)/alternatedomains</nowiki> | ||
Line 320: | Line 526: | ||
''Description'': | ''Description'': | ||
− | This operation returns a list of Domain Aliases and Accepted Domains for the domain. The type of the alternate domain is indicated by the 'type' data field. | + | This operation returns a list of Domain Aliases and Accepted Domains for the domain. The type of the alternate domain is indicated by the 'type' data field. |
Line 326: | Line 532: | ||
<pre> | <pre> | ||
− | get '/customers/12345678/domains/test.com/alternatedomains | + | get '/customers/12345678/domains/test.com/alternatedomains' |
</pre> | </pre> | ||
Line 359: | Line 565: | ||
''URL'': | ''URL'': | ||
<nowiki> | <nowiki> | ||
− | [POST] https://api.emailsrvr.com/ | + | [POST] https://api.emailsrvr.com/v1/customers/(customer account number) |
/domains/(domain name)/alternatedomains/(alternate domain name) | /domains/(domain name)/alternatedomains/(alternate domain name) | ||
</nowiki> | </nowiki> | ||
Line 389: | Line 595: | ||
<pre> | <pre> | ||
− | post '/customers/123456/domains/example.com/alternatedomains/accepteddomain.com | + | post '/customers/123456/domains/example.com/alternatedomains/accepteddomain.com', |
{ | { | ||
'type' => 'AcceptedDomain' | 'type' => 'AcceptedDomain' | ||
Line 427: | Line 633: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[DELETE] https://api.emailsrvr.com/ | + | <nowiki>[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/ |
domains/(domain name)/alternatedomains/(alternate domain name)</nowiki> | domains/(domain name)/alternatedomains/(alternate domain name)</nowiki> | ||
Line 448: | Line 654: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain)/splitdomainrouting</nowiki> |
''Description'': | ''Description'': | ||
− | Shows the current external email server. | + | Shows the current external email server. |
Line 457: | Line 663: | ||
<pre> | <pre> | ||
− | get '/customers/12345678/domains/company.com/splitdomainrouting | + | get '/customers/12345678/domains/company.com/splitdomainrouting' |
</pre> | </pre> | ||
Line 480: | Line 686: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[PUT] https://api.emailsrvr.com/ | + | <nowiki>[PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain)/splitdomainrouting</nowiki> |
''Description'': | ''Description'': | ||
Line 505: | Line 711: | ||
<pre> | <pre> | ||
− | put '/customers/12345678/domains/company.com/splitdomainrouting | + | put '/customers/12345678/domains/company.com/splitdomainrouting', |
{ | { | ||
'externalServer' => 'email.externalserver.com', | 'externalServer' => 'email.externalserver.com', | ||
Line 526: | Line 732: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain)/archivingSSOLoginURL</nowiki> |
Line 542: | Line 748: | ||
<pre> | <pre> | ||
− | get '/customers/12345678/domains/company.com/archivingSSOLoginURL | + | get '/customers/12345678/domains/company.com/archivingSSOLoginURL' |
</pre> | </pre> | ||
Line 563: | Line 769: | ||
''URL'': | ''URL'': | ||
<nowiki> | <nowiki> | ||
− | [GET] https://api.emailsrvr.com/ | + | [GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/ex/publicfolders |
</nowiki> | </nowiki> | ||
''Description'': | ''Description'': | ||
− | Retrieves the Exchange Public Folders status for the domain. | + | Retrieves the Exchange Public Folders status for the domain. |
− | |||
''Example'': | ''Example'': | ||
<pre> | <pre> | ||
− | get '/customers/12345678/domains/company.com/ex/publicFolders | + | get '/customers/12345678/domains/company.com/ex/publicFolders' |
</pre> | </pre> | ||
Line 588: | Line 793: | ||
''URL'': | ''URL'': | ||
<nowiki> | <nowiki> | ||
− | [PUT] https://api.emailsrvr.com/ | + | [PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/ex/publicfolders |
</nowiki> | </nowiki> | ||
Line 609: | Line 814: | ||
<pre> | <pre> | ||
− | put '/customers/12345678/domains/company.com/ex/publicFolders | + | put '/customers/12345678/domains/company.com/ex/publicFolders', |
{ | { | ||
'enabled' => 'true' | 'enabled' => 'true' | ||
Line 633: | Line 838: | ||
''URL'': | ''URL'': | ||
<nowiki> | <nowiki> | ||
− | [POST] https://api.emailsrvr.com/ | + | [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/emaileveryone |
− | [POST] https://api.emailsrvr.com/ | + | [POST] https://api.emailsrvr.com/v1/domains/(domain name)/emaileveryone |
</nowiki> | </nowiki> | ||
Line 667: | Line 872: | ||
<pre> | <pre> | ||
− | post'/customers/12345678/domains/example.com/emaileveryone | + | post'/customers/12345678/domains/example.com/emaileveryone', |
{ | { | ||
'fromName' => 'John Doe', | 'fromName' => 'John Doe', | ||
Line 697: | Line 902: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/catchalladdress</nowiki> |
− | <nowiki>[GET] https://api.emailsrvr.com/ | + | <nowiki>[GET] https://api.emailsrvr.com/v1/domains/(domain name)/catchalladdress</nowiki> |
Line 714: | Line 919: | ||
<pre> | <pre> | ||
− | get '/customers/999999/domains/example.com/catchalladdress | + | get '/customers/999999/domains/example.com/catchalladdress' |
</pre> | </pre> | ||
Line 739: | Line 944: | ||
''URL'': | ''URL'': | ||
− | <nowiki>[PUT] https://api.emailsrvr.com/ | + | <nowiki>[PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/catchalladdress</nowiki> |
− | <nowiki>[PUT] https://api.emailsrvr.com/ | + | <nowiki>[PUT] https://api.emailsrvr.com/v1/domains/(domain name)/catchalladdress</nowiki> |
Line 771: | Line 976: | ||
<pre> | <pre> | ||
− | post'/customers/12345678/domains/example.com/emaileveryone | + | post'/customers/12345678/domains/example.com/emaileveryone', |
{ | { | ||
'address' => 'abc@example.com' | 'address' => 'abc@example.com' | ||
} | } | ||
</pre> | </pre> |
Latest revision as of 10:31, 5 April 2017
Contents
- 1 v1 - Current
- 1.1 Index
- 1.2 Export
- 1.3 Show
- 1.4 Add/Edit (Reseller Only)
- 1.5 Move (Reseller Only)
- 1.6 Transfer
- 1.7 Delete (Reseller Only)
- 1.8 Alternate Domains
- 1.9 Split Domain Routing
- 1.10 Archiving SSO Login URL
- 1.11 Domain Public Folders
- 1.12 Domain Email Everyone
- 1.13 Show Domain Catch-All Address
- 1.14 Edit Domain Catch-All Address
v1 - Current
Index
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains
Description:
This operation returns a list of domains under the account. If a customer account is specified, then a list of domains under that specific account will be returned.
Remarks:
- To retrieve a list of domains owned by the account that is logged in, use "me" as the customer account number i.e. 'https://api.emailsrvr.com/v1/customers/me/domains'.
- To retrieve a list of domains owned by all customer sub-accounts and your own account, use "all" as the customer account number. 'https://api.emailsrvr.com/v1/customers/all/domains'.
- To retrieve a list of domains owned by a single customer sub-account, use the subaccounts account number in the url. 'https://api.emailsrvr.com/v1/customers/{subaccount number}/domains'.
- Leaving the customers/{customer account number} out of the url is acceptable and returns the sames results as /customers/me
'https://api.emailsrvr.com/v1/domains'.
- The index operation only supports the GET HTTP verb.
Example:
get '/customers/all/domains?size=100&offset=10'
domainNames Parameter (V1 only):
The optional query string parameter "domainNames" can be used to retrieve a specific subset of domains by hostname. Up to 100 hostnames can be given at once in a comma-delimited list.
get '/customers/all/domains?domainNames=apidomain53.com,apidomain66.com,apidomain68.com', 'application/json'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <domainList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:domainList"> <offset>0</offset> <size>50</size> <total>3</total> <domains> <domain> <name>apidomain53.com</name> <accountNumber>100000</accountNumber> <serviceType>both</serviceType> <exchangeMaxNumMailboxes>10</exchangeMaxNumMailboxes> <exchangeUsedStorage>4</exchangeUsedStorage> <rsEmailMaxNumberMailboxes>10</rsEmailMaxNumberMailboxes> <rsEmailUsedStorage>9</rsEmailUsedStorage> </domain> <domain> <name>apidomain66.com</name> <accountNumber>100001</accountNumber> <serviceType>rsemail</serviceType> <exchangeMaxNumMailboxes>0</exchangeMaxNumMailboxes> <exchangeUsedStorage>0</exchangeUsedStorage> <rsEmailMaxNumberMailboxes>100</rsEmailMaxNumberMailboxes> <rsEmailUsedStorage>40</rsEmailUsedStorage> </domain> <domain> <name>apidomain68.com</name> <accountNumber>100002</accountNumber> <serviceType>exchange</serviceType> <exchangeMaxNumMailboxes>50</exchangeMaxNumMailboxes> <exchangeUsedStorage>10</exchangeUsedStorage> <rsEmailMaxNumberMailboxes>0</rsEmailMaxNumberMailboxes> <rsEmailUsedStorage>0</rsEmailUsedStorage> </domain> </domains> </domainList>
Json Result Example:
{"offset":0,"size":50,"total":3,"domains": [{"name":"apidomain53.com","accountNumber":"100000","serviceType":"both","exchangeMaxNumMailboxes":"10","exchangeUsedStorage":"4","rsEmailMaxNumberMailboxes":"10","rsEmailUsedStorage":"9"}, {"name":"apidomain66.com","accountNumber":"100001","serviceType":"rsemail","exchangeMaxNumMailboxes":"0","exchangeUsedStorage":"0","rsEmailMaxNumberMailboxes":"100","rsEmailUsedStorage":"40"}, {"name":"apidomain68.com","accountNumber":"100002","serviceType":"exchange","exchangeMaxNumMailboxes":"50","exchangeUsedStorage":"10","rsEmailMaxNumberMailboxes":"0","rsEmailUsedStorage":"0"}]}
Export
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains?exportTo={email address}
Description:
Use this route to export a file that includes details for domains on an account.
Remarks:
- To retrieve a list of domains owned by the account that is logged in, use "me" as the customer account number i.e. 'https://api.emailsrvr.com/v1/customers/me/domains?exportTo=myAdminEmail@example.com'.
- To retrieve a list of domains owned by all customer sub-accounts and your own account, use "all" as the customer account number. 'https://api.emailsrvr.com/v1/customers/all/domains?exportTo=myAdminEmail@example.com'.
- To retrieve a list of domains owned by a single customer sub-account, use the subaccounts account number in the url. 'https://api.emailsrvr.com/v1/customers/{subaccount number}/domains?exportTo=myAdminEmail@example.com'.
- Leaving the customers/{customer account number} out of the url is acceptable and returns the sames results as /customers/me
'https://api.emailsrvr.com/v1/domains?exportTo=myAdminEmail@example.com'.
- The export route supports 'contains' and 'startswith' filtering
Show
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
Description:
The show operation will return detailed information about the specified domain name.
Remarks:
The show operation only supports the GET HTTP verb.
Notes:
- These two fields 'exchangeUsedStorage' and 'rsEmailUsedStorage' actually return the number of active mailboxes in each service respectively.
- Due to a performance issue Domain Public Folder Status is now returned from an individual URL. See Public Folders Status. The field 'publicFoldersEnabled' from Show Domain result always returns 'false'.
Example:
get '/customers/999999/domains/example.com'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <domain xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:domain"> <name>apidomain21.com</name> <accountNumber>100000</accountNumber> <serviceType>both</serviceType> <exchangeBaseMailboxSize>2048</exchangeBaseMailboxSize> <exchangeUsedStorage>0</exchangeUsedStorage> <exchangeTotalStorage>18432</exchangeTotalStorage> <exchangeExtraStorage>10240</exchangeExtraStorage> <exchangeMaxNumMailboxes>4</exchangeMaxNumMailboxes> <rsEmailBaseMailboxSize>2048</rsEmailBaseMailboxSize> <rsEmailMaxNumberMailboxes>4</rsEmailMaxNumberMailboxes> <rsEmailExtraStorage>10240</rsEmailExtraStorage> <rsEmailUsedStorage>0</rsEmailUsedStorage> <aliases /> <archivingServiceEnabled>false</archivingServiceEnabled> <publicFoldersEnabled>false</publicFoldersEnabled> <blackBerryMobileServiceEnabled>true</blackBerryMobileServiceEnabled> <blackBerryLicenses>4</blackBerryLicenses> <activeSyncMobileServiceEnabled>true</activeSyncMobileServiceEnabled> <activeSyncLicenses>4</activeSyncLicenses> </domain>
Json Result Example:
{"name":"apidomain21.com","accountNumber":"100000","serviceType":"both", "exchangeBaseMailboxSize":2048,"exchangeUsedStorage":0,"exchangeTotalStorage":18432, "exchangeExtraStorage":10240,"exchangeMaxNumMailboxes":4,"rsEmailBaseMailboxSize":2048, "rsEmailMaxNumberMailboxes":4,"rsEmailExtraStorage":10240,"rsEmailUsedStorage":0, "aliases":[],"archivingServiceEnabled":false,"publicFoldersEnabled":false, "blackBerryMobileServiceEnabled":true,"blackBerryLicenses":4,"activeSyncMobileServiceEnabled":true, "activeSyncLicenses":4}
Add/Edit (Reseller Only)
URL:
Add: [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) Edit: [PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
Description:
Adds/edits a new domain to the account with the data specified. To add a domain to your own account, use your own account id.
Field Name | Data Type | Description |
---|---|---|
serviceType | string | Domain service type. "rsemail" = "Rackspace Email Only". "exchange" = "Exchange Only". "both" = "Rackspace Email and Exchange" |
exchangeExtraStorage | int | Exchange service extra storage in megabytes |
exchangeMaxNumMailboxes | int | Maximum number of mailboxes allowed under the domain Exchange service. Required for Adding Exchange service |
rsEmailProduct | string | Rackspace Email product type. "rse-basic" = "Basic (Email)". "rse-plus" = "Plus (Email, Mobile Sync, Drive, and Docs)" |
rsEmailBaseMailboxSize | int | Rackspace Email base mailbox size in megabytes |
rsEmailMaxNumberMailboxes | int | Maximum number of mailboxes allowed under the domain Rackspace Email service. Required for Adding Rackspace Email service |
rsEmailExtraStorage | int | Rackspace Email service extra storage in megabytes |
blackBerryMobileServiceEnabled | boolean | Enable or disable domain BlackBerry Mobile service |
blackBerryLicenses | int | Maximum number of mailboxes allowed to have BlackBerry Mobile service. 0 means unlimited |
activeSyncMobileServiceEnabled | boolean | Enable or disable domain ActiveSync Mobile service |
activeSyncLicenses | int | Maximum number of mailboxes allowed to have ActiveSync Mobile service. 0 means unlimited |
goodMobileServiceEnabled (deprecated) | boolean | Enable or disable domain Good Mobile service |
goodMobileLicenses (deprecated) | int | Maximum number of mailboxes allowed to have Good Mobile service. 0 means unlimited |
archivingServiceEnabled | boolean | Enable or disable domain archiving service |
Example:
post '/customers/123455/domains/newcompany.com', { 'maxNumMailboxes' => '5', 'extraStorage' => '1024' }
put '/customers/123455/domains/newcompany.com', { 'maxNumMailboxes' => '25', 'extraStorage' => '2048' }
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
New domain name doesn't meet the naming requirements | 400 | Invalid domain name |
New domain name already exists | 400 | abc.com already exists as a domain or alternate domain |
Notes:
When setting rsEmailProduct
, there is a short delay before the change is reflected, while the upgrade (or downgrade) process is happening.
Move (Reseller Only)
URL:
[PUT] https://api.emailsrvr.com/v1/customers/ (new customer account number)/domains/(domain name)
Description:
Moves a domain among your account and subaccounts.
Field Name | Data Type | Description |
---|---|---|
moveDomain | boolean | Indicate whether or not moving the domain |
Remarks:
Note 'Move Domain' and 'Edit Domain' share the same URI and HTTP verb. When the domain doesn't belong to the customer and 'moveDomain' is set to 'true', API will take the request as a 'Move Domain' call.
Example:
put '/customers/123456/domains/newcompany.com', { 'moveDomain' => 'true' }
Transfer
Transfers ownership of a domain to another customer. You can start, read, and cancel the transfer. The other customer can finish the transfer.
Start
URL:
[POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer
Description:
Creates a transfer, which is represented by a token. A transfer also has an expiration, which is represented by an RFC 3339 formatted timestamp. After the expiration, the transfer is automatically canceled.
Example:
post'/customers/12345678/domains/company.com/transfer', 'application/json'
JSON Result Example:
{ "Token": "b77b8460-5019-48e0-a5eb-4951640ea3cd", "Expiration": "2014-08-20T17:28:44Z" }
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
The domain does not exist or is not accessible by the admin | 404 | example.com not found |
Read
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer
Description:
Retrieves the domain transfer information for the domain that was returned by the request to start the transfer.
Example:
get '/customers/12345678/domains/company.com/transfer', 'application/json'
JSON Result Example:
{ "Token": "b77b8460-5019-48e0-a5eb-4951640ea3cd", "Expiration": "2014-08-20T17:28:44Z" }
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
No transfer has been started, or the transfer has expired | 404 | Domain transfer offer not found. |
Cancel
URL:
[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer
Description:
Cancels a domain transfer.
Example:
delete '/customers/12345678/domains/company.com/transfer', 'application/json'
Finish
URL:
[POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/transfer/finish
Description:
Finish a domain transfer. This API request must be made by an admin that is on the account that will accept the domain. When the request completes successfully, assigns ownership of the domain to the company of the authenticated admin. That company will have full control of the domain, and accepts billing for services associated with the domain.
Field Name | Data Type | Description |
---|---|---|
token | string | the token returned by the POST or GET to this resource by an admin with access to the domain |
Example:
post '/customers/12345678/domains/company.com/transfers/finish', 'application/json', { 'Token' => 'b77b8460-5019-48e0-a5eb-4951640ea3cd' }
JSON Result Example:
{ "Token": "b77b8460-5019-48e0-a5eb-4951640ea3cd", "Expiration": "2014-08-20T17:28:44Z" }
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
The domain does not exist or is not accessible by the admin | 404 | example.com not found |
The transfer token is invalid | 404 | example.com not found |
Delete (Reseller Only)
URL:
[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
Description:
Deletes the domain.
Remarks:
The domain and all the mailboxes, mailbox contents, groups, and contacts are deleted permanently.
Example:
delete '/customers/12345678/domains/newcompany.com'
Alternate Domains
Index (Reseller Only)
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/ domains/(domain name)/alternatedomains
Description:
This operation returns a list of Domain Aliases and Accepted Domains for the domain. The type of the alternate domain is indicated by the 'type' data field.
Example:
get '/customers/12345678/domains/test.com/alternatedomains'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <alternateDomainList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:domainAlternateList"> <alternateDomains> <alternateDomain> <name>domainalias.com</name> <type>DomainAlias</type> </alternateDomain> <alternateDomain> <name>accepteddomain.com</name> <type>AcceptedDomain</type> </alternateDomain> </alternateDomains> </alternateDomainList>
Json Result Example:
{"alternateDomains":[{"name":"domainalias.com","type":"DomainAlias"},{"name":"accepteddomain.com","type":"AcceptedDomain"}]}
Add (Reseller Only)
URL:
[POST] https://api.emailsrvr.com/v1/customers/(customer account number) /domains/(domain name)/alternatedomains/(alternate domain name)
Description:
Adds either a Domain Alias or Accepted Domain to the domain.
Field Name | Data Type | Description |
---|---|---|
type | string | Alternate domain type. Send "DomainAlias" for a domain alias, and "AcceptedDomain" for an accepted domain. (Required) |
createForExistingRecipients | boolean | Whether the alternate addresses should be created for existing mailboxes when adding an Accepted Domain. Sending this field in the request when the type is Domain Alias will throw an error. This defaults to false. |
Example:
post '/customers/123456/domains/example.com/alternatedomains/accepteddomain.com', { 'type' => 'AcceptedDomain' 'createForExistingRecipients' => 'true' }
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
New domain name doesn't meet the naming requirements | 400 | Invalid domain name |
Alternate domain already exists | 400 | abc.com already exists as a domain or alternate domain |
The 'createForExistingRecipients' field was sent with either data, or as a null field. It should not be included in the form data at all. | 400 | Invalid Alternate Domain Setting: createForExistingRecipients is an invalid setting for Domain Aliases |
The only valid values for 'type' are 'DomainAlias' and 'AcceptedDomain', for a Domain Alias and Accepted Domain respectively. | 400 | Invalid Alternate Domain type |
Delete (Reseller Only)
URL:
[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/ domains/(domain name)/alternatedomains/(alternate domain name)
Description:
Deletes the alternate domain.
Example:
delete '/customers/12345678/domains/example.com/alternatedomains/accepteddomain.com'
Split Domain Routing
Show Settings
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain)/splitdomainrouting
Description: Shows the current external email server.
Example:
get '/customers/12345678/domains/company.com/splitdomainrouting'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <splitDomainRouting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:splitDomainRouting"> <externalServer>email.externalserver.com</externalServer> </splitDomainRouting>
JSON Result Example:
{"externalServer":"email.externalserver.com"}
Edit Settings
URL:
[PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain)/splitdomainrouting
Description:
This command sets the external email server. This command will return a success when the verification passes. Since this involves communication to the external server the request may take some time. If the verification fails a 400 return code will be sent back with the verification's error message.
Field Name | Data Type | Description |
---|---|---|
externalServer | string | The address of the external email server. To turn off split domain routing send 'none'. (Required) |
verificationAddress | string | An email address part of your domain or one of the alternate domains that the external server is already set up to handle. (Required only when turning on split domain routing, Do not send this field if turning off.) |
Example:
put '/customers/12345678/domains/company.com/splitdomainrouting', { 'externalServer' => 'email.externalserver.com', 'verificationAddress' => 'externalaccount@company.com', }
Description | HTTP Response Code | Sample Message |
---|---|---|
The SMTP host could not be found. | 400 | One of the verification error messages. |
Archiving SSO Login URL
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain)/archivingSSOLoginURL
Description:
Gets the domain archiving service SSO login URL.
Remarks:
The retrieved URL can be used in browser to access the domain archiving control panel.
Example:
get '/customers/12345678/domains/company.com/archivingSSOLoginURL'
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
No archiving service | 404 | Domain abc.com has no archiving service enabled |
Domain Public Folders
Show Status
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/ex/publicfolders
Description:
Retrieves the Exchange Public Folders status for the domain. Example:
get '/customers/12345678/domains/company.com/ex/publicFolders'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?> <domainPublicFolders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:domainPublicFolders"> <enabled>true</enabled> </domainPublicFolders>
Enable
URL:
[PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/ex/publicfolders
Description:
Enables the Exchange Public Folders feature on the domain. Once enabled, it cannot be disabled.
Field Name | Data Type | Description |
---|---|---|
enabled | string | Whether to enable public folders. Once enabled, it cannot be disabled. |
Example:
put '/customers/12345678/domains/company.com/ex/publicFolders', { 'enabled' => 'true' }
Errors:
Description | HTTP Response Code | Sample Message |
---|---|---|
Public folders cannot be turned off after it's been turned on. | 400 | Public Folders cannot be disabled once enabled |
Domain Email Everyone
URL:
[POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/emaileveryone [POST] https://api.emailsrvr.com/v1/domains/(domain name)/emaileveryone
Description:
Send an email to all mailboxes for the domain. This request returns a list of recipients.
Field Name | Data Type | Description |
---|---|---|
fromName | string | Sender's Name. |
fromAddress | string | Sender's Email Address. |
subject | string | Message subject. |
body | string | Message body. |
Example:
post'/customers/12345678/domains/example.com/emaileveryone', { 'fromName' => 'John Doe', 'fromAddress' => 'john.doe@test.com', 'subject' => 'Hi All', 'body' => 'Hello World.', }
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <emailAddressList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:emailAddressList"> <emailAddresses> <address>a@example.com</address> <address>b@example.com</address> </emailAddresses> </emailAddressList>
Json Result Example:
{"emailAddresses":["a@example.com","b@example.com"]}
Show Domain Catch-All Address
URL:
[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/catchalladdress [GET] https://api.emailsrvr.com/v1/domains/(domain name)/catchalladdress
Description:
Return the Catch-All Address for the domain. Returns empty string when no Catch-All Address set for the domain.
Remarks:
When an email is sent to a mailbox that does not exist on your domain, deliver the email to this address.
Example:
get '/customers/999999/domains/example.com/catchalladdress'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <emailAddress xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:emailAddress"> <address>abc@example.com</address> </emailAddress>
Json Result Example:
{"address":"abc@example.com"}
Edit Domain Catch-All Address
URL:
[PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)/catchalladdress [PUT] https://api.emailsrvr.com/v1/domains/(domain name)/catchalladdress
Description:
Edit the Catch-All Address for the domain.
Remarks:
When an email is sent to a mailbox that does not exist on your domain, deliver the email to this address.
Notes:
This request may take about 1-2 minutes to be applied to the domain.
Field Name | Data Type | Description |
---|---|---|
address | string | The Catch-All email address. Set address to empty string to remove Catch-All Address. |
Example:
post'/customers/12345678/domains/example.com/emaileveryone', { 'address' => 'abc@example.com' }