<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://api-wiki.apps.rackspace.com/api-wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brian.hartsock&amp;*</id>
		<title>Rackspace Email &amp; Apps API - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://api-wiki.apps.rackspace.com/api-wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brian.hartsock&amp;*"/>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Special:Contributions/Brian.hartsock"/>
		<updated>2026-05-24T06:35:51Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Domain_(Rest_API)&amp;diff=284</id>
		<title>Domain (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Domain_(Rest_API)&amp;diff=284"/>
				<updated>2009-08-30T08:10:50Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Domain ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 [GET] /customers/(customer account number)/domains&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;quot;me&amp;quot; can be used as customer account number to retrieve reseller's own domain list. Similarly, keyword &amp;quot;all&amp;quot; can be used retrieve reseller's own domains and all sub-accounts' domains.&lt;br /&gt;
&lt;br /&gt;
The index operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/DomainList.xsd DomainList.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/all/domains?size=100&amp;amp;page=1', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Customer account number is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid account number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
The show operation will return detailed information about the specified domain name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/Domain.xsd Domain.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/999999/domains/example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 Add: [POST] /customers/(customer account number)/domains/(domain name)&amp;lt;br&amp;gt;&lt;br /&gt;
 Edit: [PUT] /customers/(customer account number)/domains/(domain name)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| serviceType&lt;br /&gt;
| string&lt;br /&gt;
| Domain service type. &amp;quot;rsemail&amp;quot; = &amp;quot;Rackspace Email Only&amp;quot;. &amp;quot;exchange&amp;quot; = &amp;quot;Exchange Only&amp;quot;. &amp;quot;both&amp;quot; = &amp;quot;Rackspace Email and Exchange&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| exchangeExtraStorage&lt;br /&gt;
| int&lt;br /&gt;
| Exchange service extra storage in megabytes&lt;br /&gt;
|- &lt;br /&gt;
| exchangeMaxNumMailboxes&lt;br /&gt;
| int&lt;br /&gt;
| Maximum number of mailboxes allowed under the domain Exchange service. Required for Adding Exchange service&lt;br /&gt;
|- &lt;br /&gt;
| rsEmailBaseMailboxSize&lt;br /&gt;
| int&lt;br /&gt;
| Rackspace Email base mailbox size in megabytes&lt;br /&gt;
|- &lt;br /&gt;
| rsEmailMaxNumberMailboxes&lt;br /&gt;
| int&lt;br /&gt;
| Maximum number of mailboxes allowed under the domain Rackspace Email service. Required for Adding Rackspace Email service&lt;br /&gt;
|- &lt;br /&gt;
| rsEmailExtraStorage&lt;br /&gt;
| int&lt;br /&gt;
| Rackspace Email service extra storage in megabytes&lt;br /&gt;
|- &lt;br /&gt;
| hasArchivingService&lt;br /&gt;
| boolean&lt;br /&gt;
| Enable or disable domain archiving service&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/123455/domains/newcompany.com', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'maxNumMailboxes' =&amp;gt; '5',&lt;br /&gt;
  'extraStorage' =&amp;gt; '1024'  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/123455/domains/newcompany.com', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'maxNumMailboxes' =&amp;gt; '25',&lt;br /&gt;
  'extraStorage' =&amp;gt; '2048'  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Customer account number is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid account number&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: size&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: maxNumMailboxes&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field name cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| Integer form field has non-integer input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for maxNumMailboxes, input must be an integer&lt;br /&gt;
|- &lt;br /&gt;
| New domain name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid domain name&lt;br /&gt;
|- &lt;br /&gt;
| New domain name already exists&lt;br /&gt;
| 400&lt;br /&gt;
| abc.com already exists as a domain or alternate domain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Move ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 [PUT] /customers/(new customer account number)/domains/(domain name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Moves the domain to another customer account.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| moveDomain&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicate whether or not moving the domain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/123456/domains/newcompany.com', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'moveDomain' =&amp;gt; 'true'&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Customer is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Customer not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the domain.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The domain and all the mailboxes, mailbox contents, groups, and contacts are deleted permanently.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/newcompany.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Archiving SSO Login URL ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain)/archivingSSOLoginURL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Gets the domain archiving service SSO login URL.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The retrieved URL can be used in browser to access the domain archiving control panel.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/company.com/archivingSSOLoginURL', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| No archiving service&lt;br /&gt;
| 404&lt;br /&gt;
| Domain abc.com has no archiving service enabled&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Contact_(Rest_API)&amp;diff=277</id>
		<title>Exchange Contact (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Contact_(Rest_API)&amp;diff=277"/>
				<updated>2009-08-30T07:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Exchange Contact ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/contacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns a list of contacts under the domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
For the text/xml format, refer to the following schema document: [Contacts.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/contacts?size=100&amp;amp;page=1&amp;amp;contains=john', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns the contact's details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
For the text/xml format, refer to the following schema document: [Contact.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Contact is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Contact not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 Add: [POST] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&amp;lt;br&amp;gt;&lt;br /&gt;
 Edit: [PUT] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds or edits the contact's details as specified. If the contact does not exist, use Add, if it does, use Edit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| displayName&lt;br /&gt;
| string&lt;br /&gt;
| Name of contact when displayed (Required for add)&lt;br /&gt;
|- &lt;br /&gt;
| externalEmail&lt;br /&gt;
| string&lt;br /&gt;
| Email address (Required for add)&lt;br /&gt;
|- &lt;br /&gt;
| isHidden&lt;br /&gt;
| boolean&lt;br /&gt;
| Whether the contact is hidden from the Global List&lt;br /&gt;
|- &lt;br /&gt;
| firstName&lt;br /&gt;
| string&lt;br /&gt;
| First name&lt;br /&gt;
|- &lt;br /&gt;
| lastName&lt;br /&gt;
| string&lt;br /&gt;
| Last name&lt;br /&gt;
|- &lt;br /&gt;
| jobTitle&lt;br /&gt;
| string&lt;br /&gt;
| Job title&lt;br /&gt;
|- &lt;br /&gt;
| company&lt;br /&gt;
| string&lt;br /&gt;
| Company&lt;br /&gt;
|- &lt;br /&gt;
| department&lt;br /&gt;
| string&lt;br /&gt;
| Department&lt;br /&gt;
|- &lt;br /&gt;
| businessnumber&lt;br /&gt;
| string&lt;br /&gt;
| Business phone number&lt;br /&gt;
|- &lt;br /&gt;
| homenumber&lt;br /&gt;
| string&lt;br /&gt;
| Home phone number&lt;br /&gt;
|- &lt;br /&gt;
| mobilenumber&lt;br /&gt;
| string&lt;br /&gt;
| Mobile phone number&lt;br /&gt;
|- &lt;br /&gt;
| faxnumber&lt;br /&gt;
| string&lt;br /&gt;
| Fax number&lt;br /&gt;
|- &lt;br /&gt;
| pagernumber&lt;br /&gt;
| string&lt;br /&gt;
| Pager number&lt;br /&gt;
|- &lt;br /&gt;
| addressLine1&lt;br /&gt;
| string&lt;br /&gt;
| Street address&lt;br /&gt;
|- &lt;br /&gt;
| city&lt;br /&gt;
| string&lt;br /&gt;
| City&lt;br /&gt;
|- &lt;br /&gt;
| state&lt;br /&gt;
| string&lt;br /&gt;
| State&lt;br /&gt;
|- &lt;br /&gt;
| zip&lt;br /&gt;
| string&lt;br /&gt;
| Zip or postal code&lt;br /&gt;
|- &lt;br /&gt;
| country&lt;br /&gt;
| string&lt;br /&gt;
| Country&lt;br /&gt;
|- &lt;br /&gt;
| notes&lt;br /&gt;
| string&lt;br /&gt;
| Notes field&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'displayName' =&amp;gt; 'Johnny Customer',&lt;br /&gt;
  'externalEmail' =&amp;gt; 'jonny@apple.com' &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'externalEmail' =&amp;gt; 'jonnysNewEmail@microsoft.com',&lt;br /&gt;
  'company' =&amp;gt; 'Microsoft',&lt;br /&gt;
  'businessnumber' =&amp;gt; '425 555 5555' &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Contact is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address jane.doe@abc.com exists&lt;br /&gt;
|- &lt;br /&gt;
| New display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for Enabled, input must be True or False&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: size&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: displayName&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field displayName cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| New display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| New contact name (user name) already exists&lt;br /&gt;
| 400&lt;br /&gt;
| The email address john.doe@abc.com is already in use&lt;br /&gt;
|- &lt;br /&gt;
| New contact name (user name) is reserved by Exchange&lt;br /&gt;
| 400&lt;br /&gt;
| user name reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the contact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
Contact is deleted immediately without verification and data is lost permanently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Contact is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address jane.doe@abc.com exists&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Distribution_List_(Rest_API)&amp;diff=276</id>
		<title>Exchange Distribution List (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Distribution_List_(Rest_API)&amp;diff=276"/>
				<updated>2009-08-30T07:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Exchange Distribution List ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/distributionlists&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns a list of distribution lists associated with the domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [Groups.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/distributionlists?size=100&amp;amp;page=1&amp;amp;contains=mailing', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution List is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns the distribution list's details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [Group.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/distributionlists/all.employees', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 Add: [POST] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
 Edit: [PUT] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds/edits the distribution list with the specified information.  Required fields must be supplied when adding. Others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| Distribution list name (Required for Add, not available for Edit)&lt;br /&gt;
|- &lt;br /&gt;
| displayName&lt;br /&gt;
| string&lt;br /&gt;
| Distribution list display name (Required)&lt;br /&gt;
|- &lt;br /&gt;
| isHidden&lt;br /&gt;
| boolean&lt;br /&gt;
| Whether or not the distribution list is hidden from the Global Address List (Defaults to false)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/distributionlists/all.employees',&lt;br /&gt;
{ &lt;br /&gt;
  'name' =&amp;gt; 'all.employees', &lt;br /&gt;
  'displayName' =&amp;gt; 'Employees' &lt;br /&gt;
},&lt;br /&gt;
'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/12345678/domains/example.com/ex/distributionlists/all.employees',&lt;br /&gt;
{ &lt;br /&gt;
  'displayName' =&amp;gt; 'Example.com Employees' &lt;br /&gt;
},&lt;br /&gt;
'text/xml',&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: name&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field displayName cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for isHidden, input must be True or False&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: size&lt;br /&gt;
|- &lt;br /&gt;
| New distribution list name already exists&lt;br /&gt;
| 400&lt;br /&gt;
| The email address john.doe@abc.com is already in use&lt;br /&gt;
|- &lt;br /&gt;
| New distribution list name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid user name&lt;br /&gt;
|- &lt;br /&gt;
| New distribution list display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|- &lt;br /&gt;
| Display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/distributionlists/all.employees', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email Addresses ===&lt;br /&gt;
&lt;br /&gt;
This refers to the email addresses a distribution list can appear as.&lt;br /&gt;
&lt;br /&gt;
==== Add Email Address ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address that the distribution list is associated with to the list.  This address' domain name must be the same as the domain the distribution list is under.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/emailaddresses/alex@example.com', {}, 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution list not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Email Address ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the email address that is tied to the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/emailaddresses/alex@example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Member ===&lt;br /&gt;
&lt;br /&gt;
This refers to the recipients of the distribution list.&lt;br /&gt;
&lt;br /&gt;
==== Add Member ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/members/(member name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address to the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/members/john.smith', {}, 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution list not found&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing field: addmember&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: deletemember&lt;br /&gt;
|- &lt;br /&gt;
| New member is not found&lt;br /&gt;
| 400&lt;br /&gt;
| No user with the email address jane.doe exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Member ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/members/(member name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Delete an email address from the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/members/john.smith', {}, 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution list not found&lt;br /&gt;
|- &lt;br /&gt;
| Member is not found&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid group member name&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Mailbox_(Rest_API)&amp;diff=275</id>
		<title>Exchange Mailbox (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Mailbox_(Rest_API)&amp;diff=275"/>
				<updated>2009-08-30T07:05:15Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Exchange Mailbox ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Shows a list of mailboxes under the domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [Mailboxes.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
The show operation will return detailed information about the specified mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [Mailbox.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
 [PUT] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds/edits a mailbox using the specified form fields. All required fields must be supplied when adding. Other fields may be omitted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| displayName&lt;br /&gt;
| string&lt;br /&gt;
| Display name (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| initialPassword&lt;br /&gt;
| string&lt;br /&gt;
| Password (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| size&lt;br /&gt;
| positive integer&lt;br /&gt;
| Mailbox size in megabytes (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| isHidden&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicates whether or not the mailbox is hidden from the Global Address List&lt;br /&gt;
|- &lt;br /&gt;
| isPublicFolderAdmin&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicates whether or not the account is a public folder administrator&lt;br /&gt;
|- &lt;br /&gt;
| firstName&lt;br /&gt;
| string&lt;br /&gt;
| First name&lt;br /&gt;
|- &lt;br /&gt;
| lastName&lt;br /&gt;
| string&lt;br /&gt;
| Last name&lt;br /&gt;
|- &lt;br /&gt;
| company&lt;br /&gt;
| string&lt;br /&gt;
| Company&lt;br /&gt;
|- &lt;br /&gt;
| department&lt;br /&gt;
| string&lt;br /&gt;
| Department&lt;br /&gt;
|- &lt;br /&gt;
| jobTitle&lt;br /&gt;
| string&lt;br /&gt;
| Job title&lt;br /&gt;
|- &lt;br /&gt;
| addressLine1&lt;br /&gt;
| string&lt;br /&gt;
| Street address&lt;br /&gt;
|- &lt;br /&gt;
| city&lt;br /&gt;
| string&lt;br /&gt;
| City&lt;br /&gt;
|- &lt;br /&gt;
| state&lt;br /&gt;
| string&lt;br /&gt;
| State&lt;br /&gt;
|- &lt;br /&gt;
| zip&lt;br /&gt;
| string&lt;br /&gt;
| Zip or postal code&lt;br /&gt;
|- &lt;br /&gt;
| country&lt;br /&gt;
| string&lt;br /&gt;
| Country&lt;br /&gt;
|- &lt;br /&gt;
| businessnumber&lt;br /&gt;
| string&lt;br /&gt;
| Business phone number&lt;br /&gt;
|- &lt;br /&gt;
| pagernumber&lt;br /&gt;
| string&lt;br /&gt;
| Pager phone number&lt;br /&gt;
|- &lt;br /&gt;
| homenumber&lt;br /&gt;
| string&lt;br /&gt;
| Home phone number&lt;br /&gt;
|- &lt;br /&gt;
| mobilenumber&lt;br /&gt;
| string&lt;br /&gt;
| Mobile phone number&lt;br /&gt;
|- &lt;br /&gt;
| faxnumber&lt;br /&gt;
| string&lt;br /&gt;
| Fax phone number&lt;br /&gt;
|- &lt;br /&gt;
| notes&lt;br /&gt;
| string&lt;br /&gt;
| Notes field&lt;br /&gt;
|- &lt;br /&gt;
| emailForwardingAddress&lt;br /&gt;
| string&lt;br /&gt;
| Forwarding email address (If this field is assigned an email address, then email forwarding will be turned on. If this field is not assigned or assigned an empty string, then email forwarding will be disabled.)&lt;br /&gt;
|- &lt;br /&gt;
| enabled&lt;br /&gt;
| string&lt;br /&gt;
| Enable/Disable mailbox, input must be &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml', &lt;br /&gt;
{ &lt;br /&gt;
  'displayName' =&amp;gt; 'Alex Smith', &lt;br /&gt;
  'initialPassword' =&amp;gt; 'Secret123!@#', &lt;br /&gt;
  'size' =&amp;gt; '2048' &lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml',&lt;br /&gt;
{ &lt;br /&gt;
  'homenumber' =&amp;gt; '8005551234' &lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: displayName&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field displayName cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox name (user name) doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid user name&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| Integer form field has non-integer input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for size, input must be an integer&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for Enabled, input must be True or False&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox password doesn't meet the password pattern requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Password must be at least 8 characters long&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: extraStorage&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox name (user name) already exists&lt;br /&gt;
| 400&lt;br /&gt;
| The email address john.doe@abc.com is already in use&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the domain. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The mailbox and mailbox contents are deleted permanently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add Email Address ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds a mailbox's email address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete Email Address ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
The delete email address. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The operation will fail if the email address does not exist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spam ===&lt;br /&gt;
&lt;br /&gt;
==== Index Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/blacklist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns email address blacklist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Index IP Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipblacklist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns IP blacklist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Index Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns email address safelist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Index IP Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipsafelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns IP safelist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/blacklist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address or domain to the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@spam.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|- &lt;br /&gt;
| Entered current domain&lt;br /&gt;
| 400&lt;br /&gt;
| Adding example.com would blacklist the current domain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add IP Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an IP to the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/216.12.34.%', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address or domain to the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add IP Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist/(ip address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an IP to the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/216.12.34.1', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/blacklist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an email address or domain from the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@yahoo.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|- &lt;br /&gt;
| Entered email or domain is not on the current blacklist&lt;br /&gt;
| 400&lt;br /&gt;
| abc@junkmail.com is not found on the blacklist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete IP Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an IP from the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist/216.12.34.%', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|- &lt;br /&gt;
| Entered IP is not on the current blacklist&lt;br /&gt;
| 400&lt;br /&gt;
| 216.12.34.1 is not found on the blacklist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an email address or domain from the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|- &lt;br /&gt;
| Entered email or domain is not on the current safelist&lt;br /&gt;
| 400&lt;br /&gt;
| anyone@yahoo.com is not found on the safelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete IP Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipsafelist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an IP from the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist/216.12.34.1', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|- &lt;br /&gt;
| Entered IP is not on the current safelist&lt;br /&gt;
| 400&lt;br /&gt;
| 216.12.34.1 is not found on the safelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Show Spam Setting ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns the spam settings associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Show operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Edit Spam Setting ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [PUT] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation will modify the mailbox spam setting. Only 'filterlevel' is the required form field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| filterlevel&lt;br /&gt;
| string&lt;br /&gt;
| Spam filter status, must be 'on'/'off'/'exclusive' (Required)&lt;br /&gt;
|- &lt;br /&gt;
| sendtodomainquarantine&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicates whether or not send spam to domain quarantine&lt;br /&gt;
|- &lt;br /&gt;
| quarantineowner&lt;br /&gt;
| string&lt;br /&gt;
| The email address that quarantine notifications be sent to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
Form field &amp;quot;filterlevel&amp;quot; is always required. &amp;lt;br&amp;gt;&lt;br /&gt;
When &amp;quot;filterlevel&amp;quot; is &amp;quot;on&amp;quot;, spam will be sent to mailbox quarantine as default, unless &amp;quot;sendtodomainquarantine&amp;quot; is set to &amp;quot;true&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
Changing &amp;quot;filterlevel&amp;quot; to &amp;quot;off&amp;quot; will force &amp;quot;sendtodomainquarantine&amp;quot; to be &amp;quot;false&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
When &amp;quot;filterlevel&amp;quot; is &amp;quot;exclusive&amp;quot;, spam will be sent to mailbox quarantine as default, unless &amp;quot;sendtodomainquarantine&amp;quot; is set to &amp;quot;true&amp;quot;. In addition, mailbox will only receive email from addresses and IPs on its safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml',&lt;br /&gt;
{ &lt;br /&gt;
  'filterlevel' =&amp;gt; 'off'&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: filterlevel&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field filterlevel cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: address&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for sendtodomainquarantine, input must be true or false &lt;br /&gt;
|- &lt;br /&gt;
| Invalid input for form field 'filterlevel'&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid filterLevel, input must be: on/off/exclusive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlackBerry Mobile Service ===&lt;br /&gt;
&lt;br /&gt;
==== Index ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/blackberrymobileservices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns a list of mailboxes that has BlackBerry mobile service enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/blackberrymobileservices', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/blackberrymobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Attaches a BlackBerry mobile service to the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| activationPassword&lt;br /&gt;
| string&lt;br /&gt;
| Activation password () (Required)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'activationPassword' =&amp;gt; '12345'&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox already has BlackBerry Service&lt;br /&gt;
| 400&lt;br /&gt;
| User john.smith@example.com has BlackBerry Mobile Service already&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/blackberrymobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Detaches a BlackBerry mobile service from a mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ActiveSync Mobile Service ===&lt;br /&gt;
&lt;br /&gt;
==== Index ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/activesyncmobileservices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns a list of mailboxes that has ActiveSync mobile service enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/activesyncmobileservices', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/activesyncmobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Attaches a ActiveSync service to the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'activationPassword' =&amp;gt; '12345'&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox already has BlackBerry Service&lt;br /&gt;
| 400&lt;br /&gt;
| User john.smith@example.com has BlackBerry Mobile Service already&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/blackberrymobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Detaches a ActiveSync mobile service from a mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Rest_API&amp;diff=274</id>
		<title>Rest API</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Rest_API&amp;diff=274"/>
				<updated>2009-08-30T07:04:54Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Email API is a RESTful web service based on the Hypertext Transfer Protocol (HTTP). Actions and data requests are performed by using HTTP based commands. For more information on RESTful web services try the following sites:&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Representational_State_Transfer&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/technicalArticles/WebServices/restful/&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
The following sections detail the operations that the API supports. The operations are grouped into sections based on the entity/object types that each operation interacts with.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!Resource&lt;br /&gt;
!Example URI&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Customer| Customer]]&lt;br /&gt;
| /customers/123456789&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Domain| Domain]]&lt;br /&gt;
| /customers/123456789/domains/example.com&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Mailbox| Exchange Mailbox]]&lt;br /&gt;
| /customers/123456789/domains/example.com/ex/mailboxes/john.smith&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Distributionlist| Exchange Distribution List]]&lt;br /&gt;
| /customers/123456789/domains/example.com/ex/distributionlists/group.name&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Contact| Exchange Contact]]&lt;br /&gt;
| /customers/123456789/domains/example.com/ex/contacts/john.smith&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Authentication ==&lt;br /&gt;
&lt;br /&gt;
To gain access to the API, you must have keys generated from the Control Panel Web interface. These keys will be used to sign your request. The two keys are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!Key Name&lt;br /&gt;
!Description&lt;br /&gt;
!Example&lt;br /&gt;
|- &lt;br /&gt;
| User Key&lt;br /&gt;
| A public key that corresponds to your admin id&lt;br /&gt;
| ''eGbq9/2hcZsRlr1JV1Pi''&lt;br /&gt;
|- &lt;br /&gt;
| Secret Key&lt;br /&gt;
| A shared secret key&lt;br /&gt;
| ''QHOvchm/40czXhJ1OxfxK7jDHr3t''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Requests to the API must then include HTTP headers with the following information:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!Header Name&lt;br /&gt;
!Description&lt;br /&gt;
!Example&lt;br /&gt;
|- &lt;br /&gt;
| '''User-Agent'''&lt;br /&gt;
| An identifier you choose to identify your client software with&lt;br /&gt;
| ''Rackspace Management Interface''&lt;br /&gt;
|- &lt;br /&gt;
| '''X-Api-Signature'''&lt;br /&gt;
| A string ending with a signature constructed as specified below&lt;br /&gt;
| ''eGbq9/2hcZsRlr1JV1Pi:20010317143725:HKUn0aajpSDx7qqGK3vqzn3FglI=''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An unsuccessful authentication will result in a 403 HTTP code.&lt;br /&gt;
&lt;br /&gt;
=== X-Api-Signature Header ===&lt;br /&gt;
&lt;br /&gt;
Format is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;'''User Key'''&amp;gt;:&amp;lt;'''Timestamp'''&amp;gt;:&amp;lt;'''Signature'''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: ''eGbq9/2hcZsRlr1JV1Pi:20010317143725:HKUn0aajpSDx7qqGK3vqzn3FglI=''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''User Key''':&amp;lt;br&amp;gt;&lt;br /&gt;
This is the public key issued by the Control Panel interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Timestamp''':&amp;lt;br&amp;gt;&lt;br /&gt;
The format is YYYYMMDDHHmmssff. All values besides year are zero-padded to two spaces. For example, March 17th 2001 at 2:37.25pm would be ''20010317143725''.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!YYYY&lt;br /&gt;
!Four-digit year&lt;br /&gt;
|- &lt;br /&gt;
| MM&lt;br /&gt;
| Month&lt;br /&gt;
|- &lt;br /&gt;
| DD&lt;br /&gt;
| Day&lt;br /&gt;
|- &lt;br /&gt;
| HH&lt;br /&gt;
| Hour in 24h format&lt;br /&gt;
|- &lt;br /&gt;
| mm&lt;br /&gt;
| Minute&lt;br /&gt;
|- &lt;br /&gt;
| ss&lt;br /&gt;
| Second&lt;br /&gt;
|- &lt;br /&gt;
| ff&lt;br /&gt;
| Millisecond&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Signature''':&lt;br /&gt;
&lt;br /&gt;
A SHA1 (Secure Hash Algorithm) hash must be applied to a string with the following information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;'''User Key'''&amp;gt;&amp;lt;'''User Agent'''&amp;gt;&amp;lt;'''Timestamp'''&amp;gt;&amp;lt;'''Secret Key'''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the above example data, the string before hashing is:&amp;lt;br&amp;gt;''eGbq9/2hcZsRlr1JV1PiRackspace Management Interface20010317143725QHOvchm/40czXhJ1OxfxK7jDHr3t''&lt;br /&gt;
&lt;br /&gt;
Resulting base-64 SHA1 Hash:&amp;lt;br&amp;gt;''HKUn0aajpSDx7qqGK3vqzn3FglI=''&lt;br /&gt;
&lt;br /&gt;
Be sure to encode the binary hash, not the hex hash, into base-64. The resulting string should be 28 characters long.&lt;br /&gt;
&lt;br /&gt;
== Throttling ==&lt;br /&gt;
&lt;br /&gt;
The server limits the number of requests allowed per user in a certain period of time.  The current limit is 2500 requests over 5 minutes. The number of requests made are logged per minute. Calls that were made correctly with a user's API key, but not completed for any reason, including those exceeding the throttle limit, are included in this count.&lt;br /&gt;
&lt;br /&gt;
If a user is over the throttling limit then a 403 HTTP code will be returned with an &amp;quot;Exceeded request limits&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
&lt;br /&gt;
The Email API supports two different response formats, XML and JSON. The response format is determined by HTTP 'Accept' header.&lt;br /&gt;
&lt;br /&gt;
For XML, populate the header with 'text/xml' (ex: Headers![&amp;quot;Accept&amp;quot;] = &amp;quot;text/xml&amp;quot;). The XML document returned will conform to a published XSD (XML Schema Document).&lt;br /&gt;
&lt;br /&gt;
For JSON, populate the header with 'application/json' (ex: Headers![&amp;quot;Accept&amp;quot;] = &amp;quot;application/json&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
The API version number is a component of the URL that is used to access the API. For example, to access the root of the API, the URL is http://api.emailsrvr.com/v1/. Bug fixes and minor non-breaking changes will be made without changing the version number. When major features or breaking changes are introduced, the version number will be incremented. It is not yet determined how many versions are going to be supported at any one time.&lt;br /&gt;
&lt;br /&gt;
Note: Pre-release versions of the API will be located at http://api.emailsrvr.com/v0/.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Non-breaking Changes''&lt;br /&gt;
!''Breaking Changes''&lt;br /&gt;
|- &lt;br /&gt;
| Adding new fields or attributes to form fields sent&lt;br /&gt;
| Changing or deleting any fields in form fields sent&lt;br /&gt;
|- &lt;br /&gt;
| Adding fields in returned data&lt;br /&gt;
| Changing or removing fields in returned data&lt;br /&gt;
|- &lt;br /&gt;
| &lt;br /&gt;
| Changing the URI of any resource&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The version number has been omitted from URLs in this documentation.&lt;br /&gt;
&lt;br /&gt;
=== Paging ===&lt;br /&gt;
&lt;br /&gt;
The results of Index actions are split into pages to lessen potentially high resource usage. The index URLs have a query string with parameters in the format &amp;quot;?size=xx&amp;amp;offset=xx.&amp;quot; If a query parameter is omitted, the default value is used. &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Query Parameter''&lt;br /&gt;
!''Default''&lt;br /&gt;
!''Maximum''&lt;br /&gt;
!''Notes''&lt;br /&gt;
|- &lt;br /&gt;
| size&lt;br /&gt;
| 50&lt;br /&gt;
| 250&lt;br /&gt;
| This is the number of elements per page.&lt;br /&gt;
|- &lt;br /&gt;
| offset&lt;br /&gt;
| 0&lt;br /&gt;
| N/A&lt;br /&gt;
| This is the number of items to offset away from the first item in the list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Filter/Search ==&lt;br /&gt;
&lt;br /&gt;
The results of Index actions can be filtered/searched. The index URLs can take either one of the query strings: &amp;quot;?startswith==xxx&amp;quot; or &amp;quot;?contains==xxx,&amp;quot; where &amp;quot;xxx&amp;quot; is the key word. If the request specifies more than one of these two query strings, a 400 HTTP error will be returned. Different fields will be searched depending on the resource type, see below.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;0-9&amp;quot; is a reserved key word for query string &amp;quot;startswith.&amp;quot; It represents any result starting with numbers.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Index Actions''&lt;br /&gt;
!''Where the key word will be searched''&lt;br /&gt;
|- &lt;br /&gt;
| Customer&lt;br /&gt;
| Customer name, account number, reference number&lt;br /&gt;
|- &lt;br /&gt;
| Domain&lt;br /&gt;
| Domain name&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox&lt;br /&gt;
| Mailbox name, mailbox display name&lt;br /&gt;
|- &lt;br /&gt;
| Contact&lt;br /&gt;
| Contact display name, external email&lt;br /&gt;
|- &lt;br /&gt;
| Group&lt;br /&gt;
| Group name, group display name&lt;br /&gt;
|- &lt;br /&gt;
| Mobile Service&lt;br /&gt;
| Associated mailbox name, mailbox display name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reference Number'''&lt;br /&gt;
&lt;br /&gt;
For the customer object only, the query string &amp;quot;referenceNumber=xxx&amp;quot; searches for a customer with an exact reference number. The result if found is the detail page of the customer.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Ruby ===&lt;br /&gt;
&lt;br /&gt;
This examples is written in [http://www.ruby-lang.org/en/ Ruby]. To make the examples shorter, helper methods have been written. These methods are part of a NetMethods module. The contents of the NetMethods module is listed below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module NetMethods &lt;br /&gt;
  def get(url_string, format)&lt;br /&gt;
    url = URI.parse('http://' + server_host + server_port + version + url_string)&lt;br /&gt;
    @response = Net::HTTP::start(url.host, url.port)  do |http|&lt;br /&gt;
      sign_request&lt;br /&gt;
      assign_format(format)&lt;br /&gt;
      @request = Net::HTTP::Get.new(url.path, @headers)&lt;br /&gt;
      &lt;br /&gt;
      http.request(@request)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  def post(url_string, format, fields_hash)&lt;br /&gt;
    url = URI.parse('http://' + server_host + server_port + version + url_string)&lt;br /&gt;
&lt;br /&gt;
    sign_request&lt;br /&gt;
    assign_format(format)&lt;br /&gt;
    @request = Net::HTTP::Post.new(url.path, @headers)&lt;br /&gt;
	&lt;br /&gt;
    @request.set_form_data(fields_hash)&lt;br /&gt;
    @response = Net::HTTP::start(url.host, url.port) do |http| &lt;br /&gt;
      http.request(@request)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def assign_format (format)&lt;br /&gt;
    @headers['Accept'] = format&lt;br /&gt;
  end&lt;br /&gt;
    &lt;br /&gt;
  def sign_request&lt;br /&gt;
    userAgent = 'Ruby Test Client'&lt;br /&gt;
    timestamp = DateTime.now.new_offset.strftime('%Y%m%d%H%M%S00')&lt;br /&gt;
    apiKey = 'XXXXXXXXXXXXXXXXXXXX'&lt;br /&gt;
    secretKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'&lt;br /&gt;
    &lt;br /&gt;
    data_to_sign = apiKey + userAgent + timestamp + secretKey&lt;br /&gt;
    &lt;br /&gt;
    signature = Base64.encode64(Digest::SHA1.digest(data_to_sign))&lt;br /&gt;
    &lt;br /&gt;
    @headers = Hash.new&lt;br /&gt;
    @headers['User-Agent'] = userAgent&lt;br /&gt;
    @headers['X-Api-Signature'] = apiKey + &amp;quot;:&amp;quot; + timestamp + &amp;quot;:&amp;quot; + signature &lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  def server_host&lt;br /&gt;
    'api.emailsrvr.com'&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  def server_port&lt;br /&gt;
    '80'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def version&lt;br /&gt;
    '/v0'&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== C# ===&lt;br /&gt;
&lt;br /&gt;
This examples is written in [http://msdn.microsoft.com/en-us/vcsharp/default.aspx C#].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Specialized;&lt;br /&gt;
using System.Security.Cryptography;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Net;&lt;br /&gt;
&lt;br /&gt;
public class WebMethods&lt;br /&gt;
{&lt;br /&gt;
  private WebClientBase client;&lt;br /&gt;
  private string baseUrl;&lt;br /&gt;
  private string apiKey;&lt;br /&gt;
  private string secretKey;&lt;br /&gt;
&lt;br /&gt;
  public WebMethods(WebClientBase client, string baseUrl, string apiKey, string secretKey)&lt;br /&gt;
  {&lt;br /&gt;
    this.client = client;&lt;br /&gt;
    this.baseUrl = baseUrl;&lt;br /&gt;
    this.apiKey = apiKey;&lt;br /&gt;
    this.secretKey = secretKey;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public virtual string Get(string url)&lt;br /&gt;
  {&lt;br /&gt;
    return MakeRemoteCall((client) =&amp;gt;&lt;br /&gt;
      {&lt;br /&gt;
        return client.DownloadString(baseUrl + url);&lt;br /&gt;
      },&lt;br /&gt;
      format);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public virtual string Post(string url, NameValueCollection data)&lt;br /&gt;
  {&lt;br /&gt;
    return MakeRemoteCall((client) =&amp;gt;&lt;br /&gt;
      {&lt;br /&gt;
        var bytes = client.UploadValues(baseUrl + url, data);&lt;br /&gt;
        return Encoding.UTF8.GetString(bytes);&lt;br /&gt;
      },&lt;br /&gt;
      format);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private void SignMessage()&lt;br /&gt;
  {&lt;br /&gt;
    var userAgent = &amp;quot;C# Client Library&amp;quot;;&lt;br /&gt;
    client.Headers[&amp;quot;User-Agent&amp;quot;] = userAgent;&lt;br /&gt;
&lt;br /&gt;
    var dateTime = DateTime.UtcNow.ToString(&amp;quot;yyyyMMddHHmmssff&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var dataToSign = apiKey + userAgent + dateTime + secretKey;&lt;br /&gt;
    var hash = SHA1.Create();&lt;br /&gt;
    var signedBytes = hash.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));&lt;br /&gt;
    var signature = Convert.ToBase64String(signedBytes);&lt;br /&gt;
&lt;br /&gt;
    client.Headers[&amp;quot;X-Api-Signature&amp;quot;] = apiKey + &amp;quot;:&amp;quot; + dateTime + &amp;quot;:&amp;quot; + signature;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private void AssignFormat(string format)&lt;br /&gt;
  {&lt;br /&gt;
    client.Headers[&amp;quot;Accept&amp;quot;] = format;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private string MakeRemoteCall(Func&amp;lt;WebClientBase, string&amp;gt; remoteCall, string format)&lt;br /&gt;
  {&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      SignMessage();&lt;br /&gt;
      AssignFormat(format);&lt;br /&gt;
      return remoteCall.Invoke(client);&lt;br /&gt;
    }&lt;br /&gt;
    catch (WebException e)&lt;br /&gt;
    {&lt;br /&gt;
      throw new ApiException(e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class WebMethods&lt;br /&gt;
{&lt;br /&gt;
    public function get($url, $format)&lt;br /&gt;
    {&lt;br /&gt;
        $headers = array();&lt;br /&gt;
        $this-&amp;gt;signRequest($headers);&lt;br /&gt;
        $this-&amp;gt;assignFormat($headers, $format);&lt;br /&gt;
&lt;br /&gt;
        $session = curl_init($url);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HEADER, true);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;
        curl_setopt($session, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
&lt;br /&gt;
        $response = curl_exec($session);&lt;br /&gt;
        curl_close($session);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function post($url, $fields, $format)&lt;br /&gt;
    {&lt;br /&gt;
        $headers = array();&lt;br /&gt;
        $this-&amp;gt;signRequest($headers);&lt;br /&gt;
        $this-&amp;gt;assignFormat($headers, $format);&lt;br /&gt;
&lt;br /&gt;
        $session = curl_init($url);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HEADER, true);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;
        curl_setopt($session, CURLOPT_POST, true);&lt;br /&gt;
        curl_setopt($session, CURLOPT_POSTFIELDS, $fields);&lt;br /&gt;
        curl_setopt($session, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
&lt;br /&gt;
        $response = curl_exec($session);&lt;br /&gt;
        curl_close($session);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public function signRequest(&amp;amp;$headers)&lt;br /&gt;
    {&lt;br /&gt;
        $user_agent = 'Api Test';&lt;br /&gt;
        $time_stamp = 'YYYYMMDDHHmmssff';&lt;br /&gt;
        $api_key = 'XXXXXXXXXXXXXXXXXXXX';&lt;br /&gt;
        $secret_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';&lt;br /&gt;
&lt;br /&gt;
        $data_to_sign = $api_key . $user_agent . $time_stamp . $secret_key;&lt;br /&gt;
        $signature = base64_encode(sha1($data_to_sign, true));&lt;br /&gt;
&lt;br /&gt;
        $headers[] = &amp;quot;User-Agent: $user_agent&amp;quot;;&lt;br /&gt;
        $headers[] = &amp;quot;X-Api-Signature: $api_key:$time_stamp:$signature&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function assignFormat(&amp;amp;$headers, $format)&lt;br /&gt;
    {&lt;br /&gt;
        $headers[] = &amp;quot;Accept: $format&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Beta&amp;diff=273</id>
		<title>Beta</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Beta&amp;diff=273"/>
				<updated>2009-08-30T06:56:11Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: Redirecting to RestAPI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[RestAPI]]&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Contact_(Rest_API)&amp;diff=271</id>
		<title>Exchange Contact (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Contact_(Rest_API)&amp;diff=271"/>
				<updated>2009-08-30T06:17:38Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Contact ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/contacts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns a list of contacts under the domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
For the text/xml format, refer to the following schema document: [Contacts.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/contacts?size=100&amp;amp;page=1&amp;amp;contains=john', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns the contact's details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
For the text/xml format, refer to the following schema document: [Contact.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Contact is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Contact not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 Add: [POST] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&amp;lt;br&amp;gt;&lt;br /&gt;
 Edit: [PUT] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds or edits the contact's details as specified. If the contact does not exist, use Add, if it does, use Edit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| displayName&lt;br /&gt;
| string&lt;br /&gt;
| Name of contact when displayed (Required for add)&lt;br /&gt;
|- &lt;br /&gt;
| externalEmail&lt;br /&gt;
| string&lt;br /&gt;
| Email address (Required for add)&lt;br /&gt;
|- &lt;br /&gt;
| isHidden&lt;br /&gt;
| boolean&lt;br /&gt;
| Whether the contact is hidden from the Global List&lt;br /&gt;
|- &lt;br /&gt;
| firstName&lt;br /&gt;
| string&lt;br /&gt;
| First name&lt;br /&gt;
|- &lt;br /&gt;
| lastName&lt;br /&gt;
| string&lt;br /&gt;
| Last name&lt;br /&gt;
|- &lt;br /&gt;
| jobTitle&lt;br /&gt;
| string&lt;br /&gt;
| Job title&lt;br /&gt;
|- &lt;br /&gt;
| company&lt;br /&gt;
| string&lt;br /&gt;
| Company&lt;br /&gt;
|- &lt;br /&gt;
| department&lt;br /&gt;
| string&lt;br /&gt;
| Department&lt;br /&gt;
|- &lt;br /&gt;
| businessnumber&lt;br /&gt;
| string&lt;br /&gt;
| Business phone number&lt;br /&gt;
|- &lt;br /&gt;
| homenumber&lt;br /&gt;
| string&lt;br /&gt;
| Home phone number&lt;br /&gt;
|- &lt;br /&gt;
| mobilenumber&lt;br /&gt;
| string&lt;br /&gt;
| Mobile phone number&lt;br /&gt;
|- &lt;br /&gt;
| faxnumber&lt;br /&gt;
| string&lt;br /&gt;
| Fax number&lt;br /&gt;
|- &lt;br /&gt;
| pagernumber&lt;br /&gt;
| string&lt;br /&gt;
| Pager number&lt;br /&gt;
|- &lt;br /&gt;
| addressLine1&lt;br /&gt;
| string&lt;br /&gt;
| Street address&lt;br /&gt;
|- &lt;br /&gt;
| city&lt;br /&gt;
| string&lt;br /&gt;
| City&lt;br /&gt;
|- &lt;br /&gt;
| state&lt;br /&gt;
| string&lt;br /&gt;
| State&lt;br /&gt;
|- &lt;br /&gt;
| zip&lt;br /&gt;
| string&lt;br /&gt;
| Zip or postal code&lt;br /&gt;
|- &lt;br /&gt;
| country&lt;br /&gt;
| string&lt;br /&gt;
| Country&lt;br /&gt;
|- &lt;br /&gt;
| notes&lt;br /&gt;
| string&lt;br /&gt;
| Notes field&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'displayName' =&amp;gt; 'Johnny Customer',&lt;br /&gt;
  'externalEmail' =&amp;gt; 'jonny@apple.com' &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'externalEmail' =&amp;gt; 'jonnysNewEmail@microsoft.com',&lt;br /&gt;
  'company' =&amp;gt; 'Microsoft',&lt;br /&gt;
  'businessnumber' =&amp;gt; '425 555 5555' &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Contact is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address jane.doe@abc.com exists&lt;br /&gt;
|- &lt;br /&gt;
| New display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for Enabled, input must be True or False&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: size&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: displayName&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field displayName cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| New display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| New contact name (user name) already exists&lt;br /&gt;
| 400&lt;br /&gt;
| The email address john.doe@abc.com is already in use&lt;br /&gt;
|- &lt;br /&gt;
| New contact name (user name) is reserved by Exchange&lt;br /&gt;
| 400&lt;br /&gt;
| user name reserved&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/contacts/(contact name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the contact.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
Contact is deleted immediately without verification and data is lost permanently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Contact is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address jane.doe@abc.com exists&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Distribution_List_(Rest_API)&amp;diff=270</id>
		<title>Exchange Distribution List (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Distribution_List_(Rest_API)&amp;diff=270"/>
				<updated>2009-08-30T06:16:27Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Distribution List ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/distributionlists&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns a list of distribution lists associated with the domain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [Groups.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/distributionlists?size=100&amp;amp;page=1&amp;amp;contains=mailing', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution List is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns the distribution list's details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [Group.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/distributionlists/all.employees', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 Add: [POST] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
 Edit: [PUT] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds/edits the distribution list with the specified information.  Required fields must be supplied when adding. Others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| Distribution list name (Required for Add, not available for Edit)&lt;br /&gt;
|- &lt;br /&gt;
| displayName&lt;br /&gt;
| string&lt;br /&gt;
| Distribution list display name (Required)&lt;br /&gt;
|- &lt;br /&gt;
| isHidden&lt;br /&gt;
| boolean&lt;br /&gt;
| Whether or not the distribution list is hidden from the Global Address List (Defaults to false)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/distributionlists/all.employees',&lt;br /&gt;
{ &lt;br /&gt;
  'name' =&amp;gt; 'all.employees', &lt;br /&gt;
  'displayName' =&amp;gt; 'Employees' &lt;br /&gt;
},&lt;br /&gt;
'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/12345678/domains/example.com/ex/distributionlists/all.employees',&lt;br /&gt;
{ &lt;br /&gt;
  'displayName' =&amp;gt; 'Example.com Employees' &lt;br /&gt;
},&lt;br /&gt;
'text/xml',&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: name&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field displayName cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for isHidden, input must be True or False&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: size&lt;br /&gt;
|- &lt;br /&gt;
| New distribution list name already exists&lt;br /&gt;
| 400&lt;br /&gt;
| The email address john.doe@abc.com is already in use&lt;br /&gt;
|- &lt;br /&gt;
| New distribution list name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid user name&lt;br /&gt;
|- &lt;br /&gt;
| New distribution list display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|- &lt;br /&gt;
| Display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/distributionlists/all.employees', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution List not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email Addresses ===&lt;br /&gt;
&lt;br /&gt;
This refers to the email addresses a distribution list can appear as.&lt;br /&gt;
&lt;br /&gt;
==== Add Email Address ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address that the distribution list is associated with to the list.  This address' domain name must be the same as the domain the distribution list is under.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/emailaddresses/alex@example.com', {}, 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution list not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Email Address ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the email address that is tied to the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/emailaddresses/alex@example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Member ===&lt;br /&gt;
&lt;br /&gt;
This refers to the recipients of the distribution list.&lt;br /&gt;
&lt;br /&gt;
==== Add Member ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/members/(member name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address to the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/members/john.smith', {}, 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution list not found&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing field: addmember&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: deletemember&lt;br /&gt;
|- &lt;br /&gt;
| New member is not found&lt;br /&gt;
| 400&lt;br /&gt;
| No user with the email address jane.doe exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Member ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/distributionlists/(distribution list name)/members/(member name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Delete an email address from the distribution list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/distributionlists/all.employees/members/john.smith', {}, 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Distribution list is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Distribution list not found&lt;br /&gt;
|- &lt;br /&gt;
| Member is not found&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid group member name&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Mailbox_(Rest_API)&amp;diff=269</id>
		<title>Exchange Mailbox (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Exchange_Mailbox_(Rest_API)&amp;diff=269"/>
				<updated>2009-08-30T06:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Mailbox ==&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Shows a list of mailboxes under the domain&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [Mailboxes.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
The show operation will return detailed information about the specified mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [Mailbox.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
 [PUT] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds/edits a mailbox using the specified form fields. All required fields must be supplied when adding. Other fields may be omitted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| displayName&lt;br /&gt;
| string&lt;br /&gt;
| Display name (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| initialPassword&lt;br /&gt;
| string&lt;br /&gt;
| Password (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| size&lt;br /&gt;
| positive integer&lt;br /&gt;
| Mailbox size in megabytes (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| isHidden&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicates whether or not the mailbox is hidden from the Global Address List&lt;br /&gt;
|- &lt;br /&gt;
| isPublicFolderAdmin&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicates whether or not the account is a public folder administrator&lt;br /&gt;
|- &lt;br /&gt;
| firstName&lt;br /&gt;
| string&lt;br /&gt;
| First name&lt;br /&gt;
|- &lt;br /&gt;
| lastName&lt;br /&gt;
| string&lt;br /&gt;
| Last name&lt;br /&gt;
|- &lt;br /&gt;
| company&lt;br /&gt;
| string&lt;br /&gt;
| Company&lt;br /&gt;
|- &lt;br /&gt;
| department&lt;br /&gt;
| string&lt;br /&gt;
| Department&lt;br /&gt;
|- &lt;br /&gt;
| jobTitle&lt;br /&gt;
| string&lt;br /&gt;
| Job title&lt;br /&gt;
|- &lt;br /&gt;
| addressLine1&lt;br /&gt;
| string&lt;br /&gt;
| Street address&lt;br /&gt;
|- &lt;br /&gt;
| city&lt;br /&gt;
| string&lt;br /&gt;
| City&lt;br /&gt;
|- &lt;br /&gt;
| state&lt;br /&gt;
| string&lt;br /&gt;
| State&lt;br /&gt;
|- &lt;br /&gt;
| zip&lt;br /&gt;
| string&lt;br /&gt;
| Zip or postal code&lt;br /&gt;
|- &lt;br /&gt;
| country&lt;br /&gt;
| string&lt;br /&gt;
| Country&lt;br /&gt;
|- &lt;br /&gt;
| businessnumber&lt;br /&gt;
| string&lt;br /&gt;
| Business phone number&lt;br /&gt;
|- &lt;br /&gt;
| pagernumber&lt;br /&gt;
| string&lt;br /&gt;
| Pager phone number&lt;br /&gt;
|- &lt;br /&gt;
| homenumber&lt;br /&gt;
| string&lt;br /&gt;
| Home phone number&lt;br /&gt;
|- &lt;br /&gt;
| mobilenumber&lt;br /&gt;
| string&lt;br /&gt;
| Mobile phone number&lt;br /&gt;
|- &lt;br /&gt;
| faxnumber&lt;br /&gt;
| string&lt;br /&gt;
| Fax phone number&lt;br /&gt;
|- &lt;br /&gt;
| notes&lt;br /&gt;
| string&lt;br /&gt;
| Notes field&lt;br /&gt;
|- &lt;br /&gt;
| emailForwardingAddress&lt;br /&gt;
| string&lt;br /&gt;
| Forwarding email address (If this field is assigned an email address, then email forwarding will be turned on. If this field is not assigned or assigned an empty string, then email forwarding will be disabled.)&lt;br /&gt;
|- &lt;br /&gt;
| enabled&lt;br /&gt;
| string&lt;br /&gt;
| Enable/Disable mailbox, input must be &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml', &lt;br /&gt;
{ &lt;br /&gt;
  'displayName' =&amp;gt; 'Alex Smith', &lt;br /&gt;
  'initialPassword' =&amp;gt; 'Secret123!@#', &lt;br /&gt;
  'size' =&amp;gt; '2048' &lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml',&lt;br /&gt;
{ &lt;br /&gt;
  'homenumber' =&amp;gt; '8005551234' &lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: displayName&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field displayName cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox name (user name) doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid user name&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox display name doesn't meet the naming requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid display name&lt;br /&gt;
|- &lt;br /&gt;
| Integer form field has non-integer input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for size, input must be an integer&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for Enabled, input must be True or False&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox password doesn't meet the password pattern requirements&lt;br /&gt;
| 400&lt;br /&gt;
| Password must be at least 8 characters long&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: extraStorage&lt;br /&gt;
|- &lt;br /&gt;
| New mailbox name (user name) already exists&lt;br /&gt;
| 400&lt;br /&gt;
| The email address john.doe@abc.com is already in use&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the domain. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The mailbox and mailbox contents are deleted permanently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add Email Address ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds a mailbox's email address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete Email Address ===&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/emailaddresses/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
The delete email address. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The operation will fail if the email address does not exist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Spam ===&lt;br /&gt;
&lt;br /&gt;
==== Index Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/blacklist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns email address blacklist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Index IP Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipblacklist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns IP blacklist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Index Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns email address safelist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Index IP Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipsafelist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns IP safelist associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/blacklist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address or domain to the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@spam.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|- &lt;br /&gt;
| Entered current domain&lt;br /&gt;
| 400&lt;br /&gt;
| Adding example.com would blacklist the current domain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add IP Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an IP to the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/216.12.34.%', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an email address or domain to the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add IP Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist/(ip address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Adds an IP to the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/216.12.34.1', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/blacklist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an email address or domain from the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@yahoo.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|- &lt;br /&gt;
| Entered email or domain is not on the current blacklist&lt;br /&gt;
| 400&lt;br /&gt;
| abc@junkmail.com is not found on the blacklist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete IP Blacklist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an IP from the blacklist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist/216.12.34.%', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|- &lt;br /&gt;
| Entered IP is not on the current blacklist&lt;br /&gt;
| 400&lt;br /&gt;
| 216.12.34.1 is not found on the blacklist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/safelist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an email address or domain from the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid email or domain&lt;br /&gt;
| 400&lt;br /&gt;
| invalid email address: abc&lt;br /&gt;
|- &lt;br /&gt;
| Entered email or domain is not on the current safelist&lt;br /&gt;
| 400&lt;br /&gt;
| anyone@yahoo.com is not found on the safelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete IP Safelist ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/ipsafelist/(email address)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Removes an IP from the safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist/216.12.34.1', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Entered invalid IP address&lt;br /&gt;
| 400&lt;br /&gt;
| invalid ip address: 123&lt;br /&gt;
|- &lt;br /&gt;
| Entered IP is not on the current safelist&lt;br /&gt;
| 400&lt;br /&gt;
| 216.12.34.1 is not found on the safelist&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Show Spam Setting ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns the spam settings associated with the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The Show operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':  &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Edit Spam Setting ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [PUT] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/spam/settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation will modify the mailbox spam setting. Only 'filterlevel' is the required form field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| filterlevel&lt;br /&gt;
| string&lt;br /&gt;
| Spam filter status, must be 'on'/'off'/'exclusive' (Required)&lt;br /&gt;
|- &lt;br /&gt;
| sendtodomainquarantine&lt;br /&gt;
| boolean&lt;br /&gt;
| Indicates whether or not send spam to domain quarantine&lt;br /&gt;
|- &lt;br /&gt;
| quarantineowner&lt;br /&gt;
| string&lt;br /&gt;
| The email address that quarantine notifications be sent to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
Form field &amp;quot;filterlevel&amp;quot; is always required. &amp;lt;br&amp;gt;&lt;br /&gt;
When &amp;quot;filterlevel&amp;quot; is &amp;quot;on&amp;quot;, spam will be sent to mailbox quarantine as default, unless &amp;quot;sendtodomainquarantine&amp;quot; is set to &amp;quot;true&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
Changing &amp;quot;filterlevel&amp;quot; to &amp;quot;off&amp;quot; will force &amp;quot;sendtodomainquarantine&amp;quot; to be &amp;quot;false&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
When &amp;quot;filterlevel&amp;quot; is &amp;quot;exclusive&amp;quot;, spam will be sent to mailbox quarantine as default, unless &amp;quot;sendtodomainquarantine&amp;quot; is set to &amp;quot;true&amp;quot;. In addition, mailbox will only receive email from addresses and IPs on its safelist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml',&lt;br /&gt;
{ &lt;br /&gt;
  'filterlevel' =&amp;gt; 'off'&lt;br /&gt;
}  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'': &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| No user with the email address alex.smith@example.com exists&lt;br /&gt;
|- &lt;br /&gt;
| Required form field is missing&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: filterlevel&lt;br /&gt;
|- &lt;br /&gt;
| Required form field has null or empty string input&lt;br /&gt;
| 400&lt;br /&gt;
| Required field filterlevel cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| Form data has unrecognized field&lt;br /&gt;
| 400&lt;br /&gt;
| Unrecognized field: address&lt;br /&gt;
|- &lt;br /&gt;
| Boolean form field has non-boolean input&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid format for sendtodomainquarantine, input must be true or false &lt;br /&gt;
|- &lt;br /&gt;
| Invalid input for form field 'filterlevel'&lt;br /&gt;
| 400&lt;br /&gt;
| Invalid filterLevel, input must be: on/off/exclusive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlackBerry Mobile Service ===&lt;br /&gt;
&lt;br /&gt;
==== Index ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/blackberrymobileservices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns a list of mailboxes that has BlackBerry mobile service enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/blackberrymobileservices', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/blackberrymobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Attaches a BlackBerry mobile service to the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| activationPassword&lt;br /&gt;
| string&lt;br /&gt;
| Activation password () (Required)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'activationPassword' =&amp;gt; '12345'&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox already has BlackBerry Service&lt;br /&gt;
| 400&lt;br /&gt;
| User john.smith@example.com has BlackBerry Mobile Service already&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/blackberrymobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Detaches a BlackBerry mobile service from a mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ActiveSync Mobile Service ===&lt;br /&gt;
&lt;br /&gt;
==== Index ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [GET] /customers/(customer account number)/domains/(domain name)/ex/activesyncmobileservices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Returns a list of mailboxes that has ActiveSync mobile service enabled.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
The index operation only supports the GET HTTP verb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/12345678/domains/example.com/ex/activesyncmobileservices', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Add ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [POST] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/activesyncmobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Attaches a ActiveSync service to the mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
  'activationPassword' =&amp;gt; '12345'&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox already has BlackBerry Service&lt;br /&gt;
| 400&lt;br /&gt;
| User john.smith@example.com has BlackBerry Mobile Service already&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Delete ====&lt;br /&gt;
&lt;br /&gt;
''URL'':&lt;br /&gt;
 [DELETE] /customers/(customer account number)/domains/(domain name)/ex/mailboxes/(mailbox name)/blackberrymobileservice&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Detaches a ActiveSync mobile service from a mailbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Domain is not found&lt;br /&gt;
| 404&lt;br /&gt;
| abc.com not found&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox is not found&lt;br /&gt;
| 404&lt;br /&gt;
| Mailbox not found&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Customer_(Rest_API)&amp;diff=268</id>
		<title>Customer (Rest API)</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Customer_(Rest_API)&amp;diff=268"/>
				<updated>2009-08-30T06:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Customer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Index ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 [GET] /customers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
This operation returns the list of customers that the authenticated user has access to.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
For the text/xml format, refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/CustomerList.xsd CustomerList.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers?size=100&amp;amp;page=1&amp;amp;referenceNumber=102486', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Show ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 [GET] /customers/(customer account number)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
The show operation will return detailed information about the specified account.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Remarks'':&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;quot;me&amp;quot; is equivalent to the reseller's own account number.&lt;br /&gt;
&lt;br /&gt;
The show operation only supports the GET HTTP verb. For text/xml format, refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/Customer.xsd Customer.xsd]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
get '/customers/me', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| Customer account number is invalid&lt;br /&gt;
| 404&lt;br /&gt;
| Invalid account number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Add/Edit ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 Add: [POST] /customers&amp;lt;br&amp;gt; &lt;br /&gt;
 Edit: [PUT] /customers/(customer account number)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Add/Edit a new sub-account. Note that customer number is not known until the customer is added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Field Name''&lt;br /&gt;
!''Data Type''&lt;br /&gt;
!''Description''&lt;br /&gt;
|- &lt;br /&gt;
| name&lt;br /&gt;
| string&lt;br /&gt;
| The customer's display name (Required for Add)&lt;br /&gt;
|- &lt;br /&gt;
| referenceNumber&lt;br /&gt;
| string&lt;br /&gt;
| The reference number of this account&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
post '/customers', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
 'name' =&amp;gt; 'Name' &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
put '/customers/999999', 'text/xml',&lt;br /&gt;
{&lt;br /&gt;
 'name' =&amp;gt; 'NewName',&lt;br /&gt;
 'referenceNumber' =&amp;gt; '12345' &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| The name field was not specified&lt;br /&gt;
| 400&lt;br /&gt;
| Missing required field: name&lt;br /&gt;
|- &lt;br /&gt;
| The name field cannot be blank&lt;br /&gt;
| 400&lt;br /&gt;
| Required field name cannot be empty&lt;br /&gt;
|- &lt;br /&gt;
| Names cannot start with a space&lt;br /&gt;
| 400&lt;br /&gt;
| Improper Customer Name&lt;br /&gt;
|- &lt;br /&gt;
| The customer account was not found&lt;br /&gt;
| 404&lt;br /&gt;
| Customer Not Found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Delete ===&lt;br /&gt;
&lt;br /&gt;
''URL'': &lt;br /&gt;
&lt;br /&gt;
 [DELETE] /customers/(customer account number)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Description'':&lt;br /&gt;
&lt;br /&gt;
Deletes the account.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Example'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete '/customers/999999', 'text/xml'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Errors'':&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Description''&lt;br /&gt;
!''HTTP Response Code''&lt;br /&gt;
!''Sample Message''&lt;br /&gt;
|- &lt;br /&gt;
| Format is invalid&lt;br /&gt;
| 406&lt;br /&gt;
| Invalid format&lt;br /&gt;
|- &lt;br /&gt;
| The customer account was not found&lt;br /&gt;
| 404&lt;br /&gt;
| Customer Not Found&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	<entry>
		<id>http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Rest_API&amp;diff=255</id>
		<title>Rest API</title>
		<link rel="alternate" type="text/html" href="http://api-wiki.apps.rackspace.com/api-wiki/index.php?title=Rest_API&amp;diff=255"/>
				<updated>2009-08-25T21:54:04Z</updated>
		
		<summary type="html">&lt;p&gt;Brian.hartsock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Email API is a RESTful web service based on the Hypertext Transfer Protocol (HTTP). Actions and data requests are performed by using HTTP based commands. For more information on RESTful web services try the following sites:&lt;br /&gt;
&lt;br /&gt;
http://en.wikipedia.org/wiki/Representational_State_Transfer&lt;br /&gt;
&lt;br /&gt;
http://java.sun.com/developer/technicalArticles/WebServices/restful/&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
The following sections detail the operations that the API supports. The operations are grouped into sections based on the entity/object types that each operation interacts with.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!Resource&lt;br /&gt;
!Example URI&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Customer| Customer]]&lt;br /&gt;
| /customers/123456789&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Domain| Domain]]&lt;br /&gt;
| /customers/123456789/domains/example.com&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Mailbox| Mailbox]]&lt;br /&gt;
| /customers/123456789/domains/example.com/ex/mailboxes/john.smith&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Distributionlist| Distribution List]]&lt;br /&gt;
| /customers/123456789/domains/example.com/ex/distributionlists/group.name&lt;br /&gt;
|- &lt;br /&gt;
| [[RestAPI/Contact| Contact]]&lt;br /&gt;
| /customers/123456789/domains/example.com/ex/contacts/john.smith&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Authentication ==&lt;br /&gt;
&lt;br /&gt;
To gain access to the API, you must have keys generated from the Control Panel Web interface. These keys will be used to sign your request. The two keys are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!Key Name&lt;br /&gt;
!Description&lt;br /&gt;
!Example&lt;br /&gt;
|- &lt;br /&gt;
| User Key&lt;br /&gt;
| A public key that corresponds to your admin id&lt;br /&gt;
| ''eGbq9/2hcZsRlr1JV1Pi''&lt;br /&gt;
|- &lt;br /&gt;
| Secret Key&lt;br /&gt;
| A shared secret key&lt;br /&gt;
| ''QHOvchm/40czXhJ1OxfxK7jDHr3t''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Requests to the API must then include HTTP headers with the following information:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!Header Name&lt;br /&gt;
!Description&lt;br /&gt;
!Example&lt;br /&gt;
|- &lt;br /&gt;
| '''User-Agent'''&lt;br /&gt;
| An identifier you choose to identify your client software with&lt;br /&gt;
| ''Rackspace Management Interface''&lt;br /&gt;
|- &lt;br /&gt;
| '''X-Api-Signature'''&lt;br /&gt;
| A string ending with a signature constructed as specified below&lt;br /&gt;
| ''eGbq9/2hcZsRlr1JV1Pi:20010317143725:HKUn0aajpSDx7qqGK3vqzn3FglI=''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An unsuccessful authentication will result in a 403 HTTP code.&lt;br /&gt;
&lt;br /&gt;
=== X-Api-Signature Header ===&lt;br /&gt;
&lt;br /&gt;
Format is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;'''User Key'''&amp;gt;:&amp;lt;'''Timestamp'''&amp;gt;:&amp;lt;'''Signature'''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: ''eGbq9/2hcZsRlr1JV1Pi:20010317143725:HKUn0aajpSDx7qqGK3vqzn3FglI=''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''User Key''':&amp;lt;br&amp;gt;&lt;br /&gt;
This is the public key issued by the Control Panel interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Timestamp''':&amp;lt;br&amp;gt;&lt;br /&gt;
The format is YYYYMMDDHHmmssff. All values besides year are zero-padded to two spaces. For example, March 17th 2001 at 2:37.25pm would be ''20010317143725''.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!YYYY&lt;br /&gt;
!Four-digit year&lt;br /&gt;
|- &lt;br /&gt;
| MM&lt;br /&gt;
| Month&lt;br /&gt;
|- &lt;br /&gt;
| DD&lt;br /&gt;
| Day&lt;br /&gt;
|- &lt;br /&gt;
| HH&lt;br /&gt;
| Hour in 24h format&lt;br /&gt;
|- &lt;br /&gt;
| mm&lt;br /&gt;
| Minute&lt;br /&gt;
|- &lt;br /&gt;
| ss&lt;br /&gt;
| Second&lt;br /&gt;
|- &lt;br /&gt;
| ff&lt;br /&gt;
| Millisecond&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Signature''':&lt;br /&gt;
&lt;br /&gt;
A SHA1 (Secure Hash Algorithm) hash must be applied to a string with the following information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;'''User Key'''&amp;gt;&amp;lt;'''User Agent'''&amp;gt;&amp;lt;'''Timestamp'''&amp;gt;&amp;lt;'''Secret Key'''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the above example data, the string before hashing is:&amp;lt;br&amp;gt;''eGbq9/2hcZsRlr1JV1PiRackspace Management Interface20010317143725QHOvchm/40czXhJ1OxfxK7jDHr3t''&lt;br /&gt;
&lt;br /&gt;
Resulting base-64 SHA1 Hash:&amp;lt;br&amp;gt;''HKUn0aajpSDx7qqGK3vqzn3FglI=''&lt;br /&gt;
&lt;br /&gt;
Be sure to encode the binary hash, not the hex hash, into base-64. The resulting string should be 28 characters long.&lt;br /&gt;
&lt;br /&gt;
== Throttling ==&lt;br /&gt;
&lt;br /&gt;
The server limits the number of requests allowed per user in a certain period of time.  The current limit is 2500 requests over 5 minutes. The number of requests made are logged per minute. Calls that were made correctly with a user's API key, but not completed for any reason, including those exceeding the throttle limit, are included in this count.&lt;br /&gt;
&lt;br /&gt;
If a user is over the throttling limit then a 403 HTTP code will be returned with an &amp;quot;Exceeded request limits&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
== Formats ==&lt;br /&gt;
&lt;br /&gt;
The Email API supports two different response formats, XML and JSON. The response format is determined by HTTP 'Accept' header.&lt;br /&gt;
&lt;br /&gt;
For XML, populate the header with 'text/xml' (ex: Headers![&amp;quot;Accept&amp;quot;] = &amp;quot;text/xml&amp;quot;). The XML document returned will conform to a published XSD (XML Schema Document).&lt;br /&gt;
&lt;br /&gt;
For JSON, populate the header with 'application/json' (ex: Headers![&amp;quot;Accept&amp;quot;] = &amp;quot;application/json&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
The API version number is a component of the URL that is used to access the API. For example, to access the root of the API, the URL is http://api.emailsrvr.com/v1/. Bug fixes and minor non-breaking changes will be made without changing the version number. When major features or breaking changes are introduced, the version number will be incremented. It is not yet determined how many versions are going to be supported at any one time.&lt;br /&gt;
&lt;br /&gt;
Note: Pre-release versions of the API will be located at http://api.emailsrvr.com/v0/.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Non-breaking Changes''&lt;br /&gt;
!''Breaking Changes''&lt;br /&gt;
|- &lt;br /&gt;
| Adding new fields or attributes to form fields sent&lt;br /&gt;
| Changing or deleting any fields in form fields sent&lt;br /&gt;
|- &lt;br /&gt;
| Adding fields in returned data&lt;br /&gt;
| Changing or removing fields in returned data&lt;br /&gt;
|- &lt;br /&gt;
| &lt;br /&gt;
| Changing the URI of any resource&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The version number has been omitted from URLs in this documentation.&lt;br /&gt;
&lt;br /&gt;
=== Paging ===&lt;br /&gt;
&lt;br /&gt;
The results of Index actions are split into pages to lessen potentially high resource usage. The index URLs have a query string with parameters in the format &amp;quot;?size=xx&amp;amp;offset=xx.&amp;quot; If a query parameter is omitted, the default value is used. &lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Query Parameter''&lt;br /&gt;
!''Default''&lt;br /&gt;
!''Maximum''&lt;br /&gt;
!''Notes''&lt;br /&gt;
|- &lt;br /&gt;
| size&lt;br /&gt;
| 50&lt;br /&gt;
| 250&lt;br /&gt;
| This is the number of elements per page.&lt;br /&gt;
|- &lt;br /&gt;
| offset&lt;br /&gt;
| 0&lt;br /&gt;
| N/A&lt;br /&gt;
| This is the number of items to offset away from the first item in the list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Filter/Search ==&lt;br /&gt;
&lt;br /&gt;
The results of Index actions can be filtered/searched. The index URLs can take either one of the query strings: &amp;quot;?startswith==xxx&amp;quot; or &amp;quot;?contains==xxx,&amp;quot; where &amp;quot;xxx&amp;quot; is the key word. If the request specifies more than one of these two query strings, a 400 HTTP error will be returned. Different fields will be searched depending on the resource type, see below.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;quot;0-9&amp;quot; is a reserved key word for query string &amp;quot;startswith.&amp;quot; It represents any result starting with numbers.&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!''Index Actions''&lt;br /&gt;
!''Where the key word will be searched''&lt;br /&gt;
|- &lt;br /&gt;
| Customer&lt;br /&gt;
| Customer name, account number, reference number&lt;br /&gt;
|- &lt;br /&gt;
| Domain&lt;br /&gt;
| Domain name&lt;br /&gt;
|- &lt;br /&gt;
| Mailbox&lt;br /&gt;
| Mailbox name, mailbox display name&lt;br /&gt;
|- &lt;br /&gt;
| Contact&lt;br /&gt;
| Contact display name, external email&lt;br /&gt;
|- &lt;br /&gt;
| Group&lt;br /&gt;
| Group name, group display name&lt;br /&gt;
|- &lt;br /&gt;
| Mobile Service&lt;br /&gt;
| Associated mailbox name, mailbox display name&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reference Number'''&lt;br /&gt;
&lt;br /&gt;
For the customer object only, the query string &amp;quot;referenceNumber=xxx&amp;quot; searches for a customer with an exact reference number. The result if found is the detail page of the customer.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Ruby ===&lt;br /&gt;
&lt;br /&gt;
This examples is written in [http://www.ruby-lang.org/en/ Ruby]. To make the examples shorter, helper methods have been written. These methods are part of a NetMethods module. The contents of the NetMethods module is listed below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module NetMethods &lt;br /&gt;
  def get(url_string, format)&lt;br /&gt;
    url = URI.parse('http://' + server_host + server_port + version + url_string)&lt;br /&gt;
    @response = Net::HTTP::start(url.host, url.port)  do |http|&lt;br /&gt;
      sign_request&lt;br /&gt;
      assign_format(format)&lt;br /&gt;
      @request = Net::HTTP::Get.new(url.path, @headers)&lt;br /&gt;
      &lt;br /&gt;
      http.request(@request)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  def post(url_string, format, fields_hash)&lt;br /&gt;
    url = URI.parse('http://' + server_host + server_port + version + url_string)&lt;br /&gt;
&lt;br /&gt;
    sign_request&lt;br /&gt;
    assign_format(format)&lt;br /&gt;
    @request = Net::HTTP::Post.new(url.path, @headers)&lt;br /&gt;
	&lt;br /&gt;
    @request.set_form_data(fields_hash)&lt;br /&gt;
    @response = Net::HTTP::start(url.host, url.port) do |http| &lt;br /&gt;
      http.request(@request)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def assign_format (format)&lt;br /&gt;
    @headers['Accept'] = format&lt;br /&gt;
  end&lt;br /&gt;
    &lt;br /&gt;
  def sign_request&lt;br /&gt;
    userAgent = 'Ruby Test Client'&lt;br /&gt;
    timestamp = DateTime.now.new_offset.strftime('%Y%m%d%H%M%S00')&lt;br /&gt;
    apiKey = 'XXXXXXXXXXXXXXXXXXXX'&lt;br /&gt;
    secretKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'&lt;br /&gt;
    &lt;br /&gt;
    data_to_sign = apiKey + userAgent + timestamp + secretKey&lt;br /&gt;
    &lt;br /&gt;
    signature = Base64.encode64(Digest::SHA1.digest(data_to_sign))&lt;br /&gt;
    &lt;br /&gt;
    @headers = Hash.new&lt;br /&gt;
    @headers['User-Agent'] = userAgent&lt;br /&gt;
    @headers['X-Api-Signature'] = apiKey + &amp;quot;:&amp;quot; + timestamp + &amp;quot;:&amp;quot; + signature &lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  def server_host&lt;br /&gt;
    'api.emailsrvr.com'&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  def server_port&lt;br /&gt;
    '80'&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def version&lt;br /&gt;
    '/v0'&lt;br /&gt;
  end&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== C# ===&lt;br /&gt;
&lt;br /&gt;
This examples is written in [http://msdn.microsoft.com/en-us/vcsharp/default.aspx C#].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Specialized;&lt;br /&gt;
using System.Security.Cryptography;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Net;&lt;br /&gt;
&lt;br /&gt;
public class WebMethods&lt;br /&gt;
{&lt;br /&gt;
  private WebClientBase client;&lt;br /&gt;
  private string baseUrl;&lt;br /&gt;
  private string apiKey;&lt;br /&gt;
  private string secretKey;&lt;br /&gt;
&lt;br /&gt;
  public WebMethods(WebClientBase client, string baseUrl, string apiKey, string secretKey)&lt;br /&gt;
  {&lt;br /&gt;
    this.client = client;&lt;br /&gt;
    this.baseUrl = baseUrl;&lt;br /&gt;
    this.apiKey = apiKey;&lt;br /&gt;
    this.secretKey = secretKey;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public virtual string Get(string url)&lt;br /&gt;
  {&lt;br /&gt;
    return MakeRemoteCall((client) =&amp;gt;&lt;br /&gt;
      {&lt;br /&gt;
        return client.DownloadString(baseUrl + url);&lt;br /&gt;
      },&lt;br /&gt;
      format);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public virtual string Post(string url, NameValueCollection data)&lt;br /&gt;
  {&lt;br /&gt;
    return MakeRemoteCall((client) =&amp;gt;&lt;br /&gt;
      {&lt;br /&gt;
        var bytes = client.UploadValues(baseUrl + url, data);&lt;br /&gt;
        return Encoding.UTF8.GetString(bytes);&lt;br /&gt;
      },&lt;br /&gt;
      format);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private void SignMessage()&lt;br /&gt;
  {&lt;br /&gt;
    var userAgent = &amp;quot;C# Client Library&amp;quot;;&lt;br /&gt;
    client.Headers[&amp;quot;User-Agent&amp;quot;] = userAgent;&lt;br /&gt;
&lt;br /&gt;
    var dateTime = DateTime.UtcNow.ToString(&amp;quot;yyyyMMddHHmmssff&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var dataToSign = apiKey + userAgent + dateTime + secretKey;&lt;br /&gt;
    var hash = SHA1.Create();&lt;br /&gt;
    var signedBytes = hash.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));&lt;br /&gt;
    var signature = Convert.ToBase64String(signedBytes);&lt;br /&gt;
&lt;br /&gt;
    client.Headers[&amp;quot;X-Api-Signature&amp;quot;] = apiKey + &amp;quot;:&amp;quot; + dateTime + &amp;quot;:&amp;quot; + signature;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private void AssignFormat(string format)&lt;br /&gt;
  {&lt;br /&gt;
    client.Headers[&amp;quot;Accept&amp;quot;] = format;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  private string MakeRemoteCall(Func&amp;lt;WebClientBase, string&amp;gt; remoteCall, string format)&lt;br /&gt;
  {&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      SignMessage();&lt;br /&gt;
      AssignFormat(format);&lt;br /&gt;
      return remoteCall.Invoke(client);&lt;br /&gt;
    }&lt;br /&gt;
    catch (WebException e)&lt;br /&gt;
    {&lt;br /&gt;
      throw new ApiException(e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class WebMethods&lt;br /&gt;
{&lt;br /&gt;
    public function get($url, $format)&lt;br /&gt;
    {&lt;br /&gt;
        $headers = array();&lt;br /&gt;
        $this-&amp;gt;signRequest($headers);&lt;br /&gt;
        $this-&amp;gt;assignFormat($headers, $format);&lt;br /&gt;
&lt;br /&gt;
        $session = curl_init($url);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HEADER, true);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;
        curl_setopt($session, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
&lt;br /&gt;
        $response = curl_exec($session);&lt;br /&gt;
        curl_close($session);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function post($url, $fields, $format)&lt;br /&gt;
    {&lt;br /&gt;
        $headers = array();&lt;br /&gt;
        $this-&amp;gt;signRequest($headers);&lt;br /&gt;
        $this-&amp;gt;assignFormat($headers, $format);&lt;br /&gt;
&lt;br /&gt;
        $session = curl_init($url);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HEADER, true);&lt;br /&gt;
        curl_setopt($session, CURLOPT_HTTPHEADER, $headers);&lt;br /&gt;
        curl_setopt($session, CURLOPT_POST, true);&lt;br /&gt;
        curl_setopt($session, CURLOPT_POSTFIELDS, $fields);&lt;br /&gt;
        curl_setopt($session, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
&lt;br /&gt;
        $response = curl_exec($session);&lt;br /&gt;
        curl_close($session);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    public function signRequest(&amp;amp;$headers)&lt;br /&gt;
    {&lt;br /&gt;
        $user_agent = 'Api Test';&lt;br /&gt;
        $time_stamp = 'YYYYMMDDHHmmssff';&lt;br /&gt;
        $api_key = 'XXXXXXXXXXXXXXXXXXXX';&lt;br /&gt;
        $secret_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';&lt;br /&gt;
&lt;br /&gt;
        $data_to_sign = $api_key . $user_agent . $time_stamp . $secret_key;&lt;br /&gt;
        $signature = base64_encode(sha1($data_to_sign, true));&lt;br /&gt;
&lt;br /&gt;
        $headers[] = &amp;quot;User-Agent: $user_agent&amp;quot;;&lt;br /&gt;
        $headers[] = &amp;quot;X-Api-Signature: $api_key:$time_stamp:$signature&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function assignFormat(&amp;amp;$headers, $format)&lt;br /&gt;
    {&lt;br /&gt;
        $headers[] = &amp;quot;Accept: $format&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brian.hartsock</name></author>	</entry>

	</feed>