Difference between revisions of "Exchange Contact (Rest API)"

From Rackspace Email & Apps API
Jump to: navigation, search
(remove accept header from examples to avoid confusion)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
 
 
__TOC__
 
__TOC__
  
 +
== v1 - Current ==
  
 
=== Index ===
 
=== Index ===
  
 
''URL'':
 
''URL'':
  <nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/contacts</nowiki>
 
         /ex/contacts</nowiki>
  
Line 15: Line 14:
 
Returns a list of contacts under the domain.
 
Returns a list of contacts under the domain.
  
 +
''Example'':
 +
<pre>
 +
get '/customers/12345678/domains/example.com/ex/contacts?contains=john'
 +
</pre>
  
''Remarks'':
 
  
For the text/xml format, refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/ContactList.xsd ContactList.xsd]
+
''XML Result Example'':
  
 
''Example'':
 
 
<pre>
 
<pre>
get '/customers/12345678/domains/example.com/ex/contacts?size=100&page=1&contains=john', 'text/xml'
+
<?xml version="1.0" encoding="utf-8"?>
 +
<contactList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:contactList">
 +
  <offset>0</offset>
 +
  <size>50</size>
 +
  <total>3</total>
 +
  <contacts>
 +
    <contact>
 +
      <name>apiexcontact66</name>
 +
      <displayName>API Test</displayName>
 +
      <externalEmail>externalemail58@yahoo.com</externalEmail>
 +
    </contact>
 +
    <contact>
 +
      <name>apiexcontact73</name>
 +
      <displayName>API Test</displayName>
 +
      <externalEmail>externalemail98@yahoo.com</externalEmail>
 +
    </contact>
 +
    <contact>
 +
      <name>apiexcontact81</name>
 +
      <displayName>API Test</displayName>
 +
      <externalEmail>externalemail46@yahoo.com</externalEmail>
 +
    </contact>
 +
  </contacts>
 +
</contactList>
 
</pre>
 
</pre>
  
  
''Errors'':
+
''Json Result Example'':
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 406
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|}
 
  
 +
{"offset":0,"size":50,"total":3,"contacts":[{"name":"apiexcontact66","displayName":"API Test","externalEmail":"externalemail58@yahoo.com"},{"name":"apiexcontact73","displayName":"API Test","externalEmail":"externalemail98@yahoo.com"},{"name":"apiexcontact81","displayName":"API Test","externalEmail":"externalemail46@yahoo.com"}]}
  
 
=== Show ===
 
=== Show ===
  
 
''URL'':
 
''URL'':
  <nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/contacts/(contact name)</nowiki>
 
         /ex/contacts/(contact name)</nowiki>
  
Line 56: Line 65:
  
  
''Remarks'':
+
''Example'':
 +
<pre>
 +
get '/customers/12345678/domains/example.com/ex/contacts/alex.smith'
 +
</pre>
  
For the text/xml format, refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/Contact.xsd Contact.xsd]
 
  
 +
''XML Result Example'':
  
''Example'':
 
 
<pre>
 
<pre>
get '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml'
+
<?xml version="1.0" encoding="utf-8"?>
 +
<contact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:contact">
 +
  <name>apiexcontact73</name>
 +
  <displayName>API Test</displayName>
 +
  <externalEmail>externalemail98@yahoo.com</externalEmail>
 +
  <isHidden>false</isHidden>
 +
  <contactInfo>
 +
    <firstName>API</firstName>
 +
    <lastName>Test</lastName>
 +
    <jobTitle>Dev</jobTitle>
 +
    <company>My Company</company>
 +
    <department>R&amp;D</department>
 +
    <businessNumber>111-1111</businessNumber>
 +
    <homeNumber>222-2222</homeNumber>
 +
    <mobileNumber>333-3333</mobileNumber>
 +
    <faxNumber>444-4444</faxNumber>
 +
    <pagerNumber>1234</pagerNumber>
 +
    <addressLine1>123 Main Street</addressLine1>
 +
    <city>Blacksburg</city>
 +
    <state>VA</state>
 +
    <zip>24060</zip>
 +
    <country>USA</country>
 +
    <notes>My Notes</notes>
 +
  </contactInfo>
 +
</contact>
 
</pre>
 
</pre>
 +
 +
 +
''Json Result Example'':
 +
 +
{"name":"apiexcontact73","displayName":"API Test","externalEmail":"externalemail98@yahoo.com","isHidden":false,"contactInfo":{"firstName":"API","lastName":"Test","jobTitle":"Dev","company":"My Company","department":"R&D","businessNumber":"111-1111","homeNumber":"222-2222","mobileNumber":"333-3333","faxNumber":"444-4444","pagerNumber":"1234","addressLine1":"123 Main Street","city":"Blacksburg","state":"VA","zip":"24060","country":"USA","notes":"My Notes"}}
  
  
 
''Errors'':
 
''Errors'':
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Description''
 
!''Description''
 
!''HTTP Response Code''
 
!''HTTP Response Code''
 
!''Sample Message''
 
!''Sample Message''
|-
 
| Format is invalid
 
| 406
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
 
|-
 
|-
 
| Contact is not found
 
| Contact is not found
Line 86: Line 118:
 
| Contact not found
 
| Contact not found
 
|}
 
|}
 
  
 
=== Add/Edit ===
 
=== Add/Edit ===
  
 
''URL'':
 
''URL'':
  <nowiki>Add: [POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>Add: [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
                 /ex/contacts/(contact name)
 
                 /ex/contacts/(contact name)
  
Edit: [PUT] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
Edit: [PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
                 /ex/contacts/(contact name)</nowiki>
 
                 /ex/contacts/(contact name)</nowiki>
  
Line 103: Line 134:
  
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Field Name''
 
!''Field Name''
 
!''Data Type''
 
!''Data Type''
Line 140: Line 171:
 
| Department
 
| Department
 
|-
 
|-
| businessnumber
+
| businessNumber
 
| string
 
| string
 
| Business phone number
 
| Business phone number
 
|-
 
|-
| homenumber
+
| homeNumber
 
| string
 
| string
 
| Home phone number
 
| Home phone number
 
|-
 
|-
| mobilenumber
+
| mobileNumber
 
| string
 
| string
 
| Mobile phone number
 
| Mobile phone number
 
|-
 
|-
| faxnumber
+
| faxNumber
 
| string
 
| string
 
| Fax number
 
| Fax number
 
|-
 
|-
| pagernumber
+
| pagerNumber
 
| string
 
| string
 
| Pager number
 
| Pager number
Line 188: Line 219:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml',
+
post '/customers/12345678/domains/example.com/ex/contacts/alex.smith',
 
{
 
{
 
   'displayName' => 'Johnny Customer',
 
   'displayName' => 'Johnny Customer',
Line 196: Line 227:
  
 
<pre>
 
<pre>
put '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml',
+
put '/customers/12345678/domains/example.com/ex/contacts/alex.smith',
 
{
 
{
 
   'externalEmail' => 'jonnysNewEmail@microsoft.com',
 
   'externalEmail' => 'jonnysNewEmail@microsoft.com',
Line 207: Line 238:
 
''Errors'':
 
''Errors'':
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Description''
 
!''Description''
 
!''HTTP Response Code''
 
!''HTTP Response Code''
 
!''Sample Message''
 
!''Sample Message''
|-
 
| Format is invalid
 
| 406
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
 
|-
 
|-
 
| Contact is not found
 
| Contact is not found
Line 227: Line 250:
 
| 400
 
| 400
 
| Invalid display name
 
| Invalid display name
|-
 
| Boolean form field has non-boolean input
 
| 400
 
| Invalid format for Enabled, input must be True or False
 
|-
 
| Form data has unrecognized field
 
| 400
 
| Unrecognized field: size
 
|-
 
| Required form field is missing
 
| 400
 
| Missing required field: displayName
 
|-
 
| Required form field has null or empty string input
 
| 400
 
| Required field displayName cannot be empty
 
 
|-
 
|-
 
| New display name doesn't meet the naming requirements
 
| New display name doesn't meet the naming requirements
Line 261: Line 268:
  
 
''URL'':
 
''URL'':
  <nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
             /ex/contacts/(contact name)</nowiki>
 
             /ex/contacts/(contact name)</nowiki>
  
Line 277: Line 284:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
delete '/customers/12345678/domains/example.com/ex/contacts/alex.smith', 'text/xml'
+
delete '/customers/12345678/domains/example.com/ex/contacts/alex.smith'
 
</pre>
 
</pre>
  
 
''Errors'':
 
''Errors'':
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Description''
 
!''Description''
 
!''HTTP Response Code''
 
!''HTTP Response Code''
 
!''Sample Message''
 
!''Sample Message''
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
 
|-
 
|-
 
| Contact is not found
 
| Contact is not found

Latest revision as of 13:48, 12 January 2017

v1 - Current

Index

URL:

[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
        /ex/contacts


Description:

Returns a list of contacts under the domain.

Example:

get '/customers/12345678/domains/example.com/ex/contacts?contains=john'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<contactList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:contactList">
  <offset>0</offset>
  <size>50</size>
  <total>3</total>
  <contacts>
    <contact>
      <name>apiexcontact66</name>
      <displayName>API Test</displayName>
      <externalEmail>externalemail58@yahoo.com</externalEmail>
    </contact>
    <contact>
      <name>apiexcontact73</name>
      <displayName>API Test</displayName>
      <externalEmail>externalemail98@yahoo.com</externalEmail>
    </contact>
    <contact>
      <name>apiexcontact81</name>
      <displayName>API Test</displayName>
      <externalEmail>externalemail46@yahoo.com</externalEmail>
    </contact>
  </contacts>
</contactList>


Json Result Example:

{"offset":0,"size":50,"total":3,"contacts":[{"name":"apiexcontact66","displayName":"API Test","externalEmail":"externalemail58@yahoo.com"},{"name":"apiexcontact73","displayName":"API Test","externalEmail":"externalemail98@yahoo.com"},{"name":"apiexcontact81","displayName":"API Test","externalEmail":"externalemail46@yahoo.com"}]}

Show

URL:

[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
        /ex/contacts/(contact name)


Description:

Returns the contact's details.


Example:

get '/customers/12345678/domains/example.com/ex/contacts/alex.smith'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<contact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:contact">
  <name>apiexcontact73</name>
  <displayName>API Test</displayName>
  <externalEmail>externalemail98@yahoo.com</externalEmail>
  <isHidden>false</isHidden>
  <contactInfo>
    <firstName>API</firstName>
    <lastName>Test</lastName>
    <jobTitle>Dev</jobTitle>
    <company>My Company</company>
    <department>R&D</department>
    <businessNumber>111-1111</businessNumber>
    <homeNumber>222-2222</homeNumber>
    <mobileNumber>333-3333</mobileNumber>
    <faxNumber>444-4444</faxNumber>
    <pagerNumber>1234</pagerNumber>
    <addressLine1>123 Main Street</addressLine1>
    <city>Blacksburg</city>
    <state>VA</state>
    <zip>24060</zip>
    <country>USA</country>
    <notes>My Notes</notes>
  </contactInfo>
</contact>


Json Result Example:

{"name":"apiexcontact73","displayName":"API Test","externalEmail":"externalemail98@yahoo.com","isHidden":false,"contactInfo":{"firstName":"API","lastName":"Test","jobTitle":"Dev","company":"My Company","department":"R&D","businessNumber":"111-1111","homeNumber":"222-2222","mobileNumber":"333-3333","faxNumber":"444-4444","pagerNumber":"1234","addressLine1":"123 Main Street","city":"Blacksburg","state":"VA","zip":"24060","country":"USA","notes":"My Notes"}}


Errors:

Description HTTP Response Code Sample Message
Contact is not found 404 Contact not found

Add/Edit

URL:

Add: [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
                /ex/contacts/(contact name)

Edit: [PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
                /ex/contacts/(contact name)


Description:

Adds or edits the contact's details as specified. If the contact does not exist, use Add, if it does, use Edit.


Field Name Data Type Description
displayName string Name of contact when displayed (Required for add)
externalEmail string Email address (Required for add)
isHidden boolean Whether the contact is hidden from the Global List
firstName string First name
lastName string Last name
jobTitle string Job title
company string Company
department string Department
businessNumber string Business phone number
homeNumber string Home phone number
mobileNumber string Mobile phone number
faxNumber string Fax number
pagerNumber string Pager number
addressLine1 string Street address
city string City
state string State
zip string Zip or postal code
country string Country
notes string Notes field


Example:

post '/customers/12345678/domains/example.com/ex/contacts/alex.smith',
{
  'displayName' => 'Johnny Customer',
  'externalEmail' => 'jonny@apple.com'
}
put '/customers/12345678/domains/example.com/ex/contacts/alex.smith',
{
  'externalEmail' => 'jonnysNewEmail@microsoft.com',
  'company' => 'Microsoft',
  'businessnumber' => '425 555 5555'
}


Errors:

Description HTTP Response Code Sample Message
Contact is not found 404 No user with the email address jane.doe@abc.com exists
New display name doesn't meet the naming requirements 400 Invalid display name
New display name doesn't meet the naming requirements 400 Invalid display name
New contact name (user name) already exists 400 The email address john.doe@abc.com is already in use
New contact name (user name) is reserved by Exchange 400 user name reserved


Delete

URL:

[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
            /ex/contacts/(contact name)


Description:

Deletes the contact.


Remarks:

Contact is deleted immediately without verification and data is lost permanently.


Example:

delete '/customers/12345678/domains/example.com/ex/contacts/alex.smith'

Errors:

Description HTTP Response Code Sample Message
Contact is not found 404 No user with the email address jane.doe@abc.com exists