Google Apps Provisioning API (Deprecated)

Notice
The Google Apps Provisioning API has been officially deprecated as of May 15, 2013. It has been replaced by the Admin SDK’s Directory API. The Google Apps Provisioning API will continue to work as per our Deprecation Policy.

Google Provisioning API Reference Guide

This document provides detailed reference documentation for the Google Apps Provisioning API.

Read/write access with the Provisioning API is only available to Google Apps for Business, Education, and ISPs customers. The Provisioning API is available in all product versions for read-only access by Apps Marketplace applications.

Contents

Audience

Google Apps allows website administrators to offer a variety of personalized and co-branded Google applications, such as Gmail. This document describes the Google Apps Provisioning API, which enables application developers to programmatically enable access to these applications. Specifically, the API provides functions for creating, retrieving, updating and deleting user accounts, nicknames and email groups.

This is a reference document; it assumes that you understand the concepts presented in the Developer's Guide, and the general ideas behind the Google Data APIs protocol.

How the API Works

To execute an operation using the API, you need to submit an HTTP POST, GET, PUT or DELETE request to the URL that corresponds to the operation that you wish to perform. Each URL includes variables that identify your domain and, possibly, the resource that you are creating, retrieving, updating or deleting. For example, to retrieve information about the us-sales group in the example.com domain, you would submit an HTTP GET request to the following URL:

https://apps-apis.google.com/a/feeds/group/2.0/example.com/us-sales

The tables in the subsections below identify the URLs associated with each API operation. The tables also identify the type of HTTP request associated with each API request.

All create and update requests – POST and PUT requests – also require you to submit an XML document that contains the information needed to fulfill the request. The content should be sent using the application/atom+xml content type. The XML Request Formats section in the Developer's Guide explains those XML structures and provides samples for each.

If your query rate for provisioning requests is too high, you might receive HTTP 503 responses from the API server indicating that your quota has been exceeded. If you get these responses, use an exponential back-off algorithm to retry your requests. For best results, parallelize operations across different groups, rather than adding or removing lots of members to one group simultaneously.

Creating, Retrieving, Updating and Deleting User Accounts

Operation HTTP Request Type and URL
Create User Account POST https://apps-apis.google.com/a/feeds/domain/user/2.0
Retrieve User Account GET https://apps-apis.google.com/a/feeds/domain/user/2.0/userName
Retrieve All Users in Domain GET https://apps-apis.google.com/a/feeds/domain/user/2.0
Retrieve a Page of 100 Users GET https://apps-apis.google.com/a/feeds/domain/user/2.0?startUsername=userName
Update User Account PUT https://apps-apis.google.com/a/feeds/domain/user/2.0/userName
Renaming User Account PUT https://apps-apis.google.com/a/feeds/domain/user/2.0/(old)userName
Delete User Account DELETE https://apps-apis.google.com/a/feeds/domain/user/2.0/userName

Creating, Retrieving and Deleting Nicknames

Operation HTTP Request Type and URL
Create Nickname POST https://apps-apis.google.com/a/feeds/domain/nickname/2.0
Retrieve Nickname GET https://apps-apis.google.com/a/feeds/domain/nickname/2.0/nickname
Retrieve All Nicknames for a User GET https://apps-apis.google.com/a/feeds/domain/nickname/2.0?username=userName
Retrieve All Nicknames in Domain GET https://apps-apis.google.com/a/feeds/domain/nickname/2.0
Retrieve a Page of 100 Nicknames GET https://apps-apis.google.com/a/feeds/domain/nickname/2.0?startNickname=nickname
Delete Nickname DELETE https://apps-apis.google.com/a/feeds/domain/nickname/2.0/nickname

Creating, Retrieving, Updating, and Deleting Groups

Operation HTTP Request Type and URL
Create Group POST https://apps-apis.google.com/a/feeds/group/2.0/domain
Update Group PUT https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId
Retrieve Group GET https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId
Retrieve All Groups in Domain GET https://apps-apis.google.com/a/feeds/group/2.0/domain[?[start=startKey]]
Retrieve All Groups for a Member GET https://apps-apis.google.com/a/feeds/group/2.0/domain/?member=memberId[&start=startKey][&directOnly=true|false]
Delete Group DELETE https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId
Create Email List POST https://apps-apis.google.com/a/feeds/domain/emailList/2.0 (Deprecated)
Retrieve Email List GET https://apps-apis.google.com/a/feeds/domain/emailList/2.0/emailListName (Deprecated)
Retrieve All Email Lists in Domain GET https://apps-apis.google.com/a/feeds/domain/emailList/2.0 (Deprecated)
Retrieve All Email List Subscriptions for an Email Address GET https://apps-apis.google.com/a/feeds/domain/emailList/2.0?recipient=emailAddress (Deprecated)
Delete Email List DELETE https://apps-apis.google.com/a/feeds/domain/emailList/2.0/emailListName (Deprecated)

Adding, Retrieving, and Removing Group Members

Operation HTTP Request Type and URL
Add Member to Group POST https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/member
Retrieve All Members of a Group GET https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/member
Retrieve Member of a Group GET https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/member/memberId
Remove Member from Group DELETE https://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/member/memberId
Add Address to Email List POST https://apps-apis.google.com/a/feeds/domain/emailList/2.0/emailListName/recipient/ (Deprecated)
Retrieve All Subscribers to Email List GET https://apps-apis.google.com/a/feeds/domain/emailList/2.0/emailListName/recipient/ (Deprecated)
Remove Address from Email List DELETE https://apps-apis.google.com/a/feeds/domain/emailList/2.0/emailListName/recipient/emailAddress (Deprecated)

Adding, Retrieving, and Removing Group Owners

Operation HTTP Request Type and URL
Add Owner to Group POST http://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/owner
Retrieve All Owners of a Group GET http://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/owner
Retrieve Owner of a Group GET http://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/owner/ownerEmail
Remove Owner from Group DELETE http://apps-apis.google.com/a/feeds/group/2.0/domain/groupId/owner/ownerEmail

Creating, Updating, Renaming, Retrieving, and Deleting Users in Multiple Domains

Operation HTTP Request Type and URL
Create a User for a Domain POST https://apps-apis.google.com/a/feeds/user/2.0/the domain name
Update a Domain User's Account PUT https://apps-apis.google.com/a/feeds/user/2.0/the domain name/user email address
Rename a User's Account PUT https://apps-apis.google.com/a/feeds/user/userEmail/2.0/the old domain name/full old primary email address
Retrieve a Single User in a Domain GET https://apps-apis.google.com/a/feeds/user/2.0/the domain name/full user email
Retrieve All User Accounts in a Domain GET https://apps-apis.google.com/a/feeds/user/2.0/the domain name?start=the user name@domain.com
Delete a User from a Domain DELETE https://apps-apis.google.com/a/feeds/user/2.0/the domain name/user email address

Creating, Retrieving, and Deleting User Aliases in Multiple Domains

Operation HTTP Request Type and URL
Create a User Alias for a Domain POST https://apps-apis.google.com/a/feeds/alias/2.0/the alias domain
Retrieve a User Alias in a Domain GET https://apps-apis.google.com/a/feeds/alias/2.0/the domain name/alias email address
Retrieve All User Aliases in a Domain GET https://apps-apis.google.com/a/feeds/alias/2.0/the domain name?start=alias@domain
Retrieving All User Aliases for a User GET https://apps-apis.google.com/a/feeds/alias/2.0/the domain name?userEmail=user@domain
Delete a User Alias from a Domain DELETE https://apps-apis.google.com/a/feeds/alias/2.0/the domain name/user email address

Retrieving a customerId, and Creating, Updating, Renaming, Retrieving, and Deleting Organization Units

Operation HTTP Request Type and URL
Retrieve a customerId GET https://apps-apis.google.com/a/feeds/customer/2.0/customerId
Create an organization unit POST https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId
Updating an organization unit PUT https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId/full org unit path
Moving users to an organization unit PUT https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId/full organization unit's path
Retrieve a single organization unit GET https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId/full organization unit's path
Retrieve all organization units GET https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId?get=all
Retrieve an organization unit's immediate sub-organizations GET https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId?get=children&orgUnitPath=the URL-encoded organization unit's path
Delete an organization unit DELETE https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId/the organization unit's path

Creating, Updating, Retrieving, and Deleting Organization Users

Operation HTTP Request Type and URL
Create an organization user POST https://apps-apis.google.com/a/feeds/your domain/user/2.0
Update an organization user PUT https://apps-apis.google.com/a/feeds/orgunit/2.0/the customerId/the organization user's email
Retrieve a single organization user GET https://apps-apis.google.com/a/feeds/orguser/2.0/the customerId/organization user's email
Retrieve all organization users GET https://apps-apis.google.com/a/feeds/orguser/2.0/the customerId?get=all
Retrieving an organization user's immediate sibling users GET https://apps-apis.google.com/a/feeds/orguser/2.0/the customerId?get=children&orgUnitPath=the URL-encoded full organization unit path
Delete an organization user DELETE https://apps-apis.google.com/a/feeds/domain/user/2.0/userName

Results Pagination

If your API request produces a UserFeed, NicknameFeed, Property name response, MultipleDomain User feed, MultipleDomain User Alias feed, OrgUnit feed, and the OrgUnit User feed, the Provisioning API will return an Atom XML feed containing a maximum of 100 entries. If there are more than 100 entries in the feed, the API response will contain an <atom:link> tag for which the rel attribute has a value of next. The URL identified in that <atom:link> tag points to the next page of results for the request. If your API request produces a GroupFeed, MemberFeed, or OwnersFeed, the Provisioning API will return an Atom XML feed containing a maximum of 200 entries.

In the XML excerpt below, the <atom:link> tag that identifies the next page of results is highlighted in bold text:

<?xml version="1.0" encoding="UTF-8"?>
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" 
  xmlns:apps="http://schemas.google.com/apps/2006"
  xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"
  xmlns:gd="http://schemas.google.com/g/2005">
    <atom:id>
        https://apps-apis.google.com/a/feeds/example.com/user/2.0
    </atom:id>
    <atom:updated>1970-01-01T00:00:00.000Z</atom:updated>
    <atom:category scheme="http://schemas.google.com/g/2005#kind" 
        term="http://schemas.google.com/apps/2006#user"/>
    <atom:title type="text">Users</atom:title>
    <atom:link rel="next" type="application/atom+xml" 
        href="https://apps-apis.google.com/a/feeds/example.com/user/2.0?startUsername=john"/>
    <atom:link rel="http://schemas.google.com/g/2005#feed" 
        type="application/atom+xml" 
        href="https://apps-apis.google.com/a/feeds/example.com/user/2.0"/>
...

The time to complete requests to retrieve all users, nicknames, groups, members, or owners of a group will directly relate to the amount of data being retrieved. For example, if a group has 100 subscribers, the client library can obtain a complete subscriber list with a single HTTP request. However, if a group has 1,000 members, you must make 5 HTTP requests to obtain the full member list.

If your API request produces a GroupFeed, MemberFeed, or OwnersFeed, the Provisioning API will return an Atom XML feed containing a maximum of 200 entries.

  • If you are using the Java, .NET, PHP, or Python client library, the code provides you with the option of explicitly requesting additional pages of results or automatically requesting additional results until all results have been obtained. For example, the retrievePageOfUsers method makes a single HTTP request for up to 100 users or (200 group members), and the retrieveAllUsers method will automatically issue additional HTTP requests until all results have been obtained.

    For a free Google Apps account, a group can contain up to 100 members.

  • If you write your own code to process API responses, you will need to ensure that your code requests additional pages of results as necessary.

XML Tag Definitions

This section contains definitions of the XML tags used in Provisioning API requests and responses.

Subtags Legend

Certain symbols may be displayed next to some subtags in the definitions below. These symbols, and their meanings, are:

? = optional subtag
* = zero or more instances of the subtag
+ = one or more instances of the subtag
| = Boolean OR

atom:feed
Definition

The <atom:feed> tag encapsulates an API response to a request to retrieve either all of the nicknames associated with an account or all of the email groups that an account subscribes to.

Example <atom:feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">
Subtags atom:id, atom:category, atom:link, openSearch:startIndex, openSearch:itemsPerPage, atom:entry
Content Format Container

atom:entry
Definition

The <atom:entry> encapsulates an API request or an API Atom response.

Subtags atom:id, atom:category, atom:title, atom:link, apps:login, apps:name, apps:property name gd:feedLink, gd:who
Content Format Container

atom:category
Definition

The <atom:category> tag specifies the type of resource that is described in an Atom request or response.

Attributes
Name Format Description
scheme Text This attribute specifies the XML schema that defines the resource type. Please set this attribute value to http://schemas.google.com/g/2005#kind.
term Text This attribute identifies the category to which the entry belongs. If you are submitting an API request, please use the appropriate value from the list below:

Type of Resource URL
Account http://schemas.google.com/apps/2006#user
Nickname http://schemas.google.com/apps/2006#nickname
Groups http://schemas.google.com/apps/2006#emailList

The appropriate value is also returned in the API's XML responses.

Subtag of atom:entry
Content Format Empty

atom:title
Definition

The <atom:title> tag value describes an API response.

Attributes
Name Format Description
type String

This attribute identifies the content format of the tag's value. The value of the type attribute must be text.

Example <atom:title type="text">SusanJones-1321</atom:title>
Subtag of atom:entry
Content Format Complex

atom:id
Definition

The <atom:id> tag's value identifies a permanent, unique identifier for a feed. This tag is included in API responses. It may also be included in requests to update user accounts. When you include this tag in API requests, the tag's value should be set to the URL to which you submit your API request.

Example <atom:id>https://apps-apis.google.com/a/feeds/group/2.0/example.com/us-sales</atom:id>
Subtag of atom:entry
Content Format String (IRI)

atom:link
Definition

The <atom:link> tag provides an IRI reference related to an API results feed or a resource in the feed.

Attributes
Name Format Description
rel Text

The rel attribute identifies the relationship of the link to the API response feed.

  • If the value of the rel attribute is self, then the href attribute value will be a link to the URL you would use to request the feed.

  • If the value of the rel attribute is edit, then the href attribute value will be the URL that you would use to retrieve, update or delete the resource. Note: You would use an HTTP GET request to retrieve the resource, an HTTP PUT request to update the resource, and an HTTP DELETE request to delete the resource.

  • If the value of the rel attribute is next, then the href attribute value contains the URL that you would use to retrieve the next page of results for the request. Please see the Pagination in API Responses section of this document for more information.

href Text The href attribute contains an IRI reference that indicates how to retrieve or edit the information in an API response.
Example <atom:link rel="edit" type="application/atom+xml" href="https://apps-apis.google.com/a/feeds/group/2.0/example.com/us-sales"/>
Subtag of atom:entry
Content Format Empty

atom:updated
Definition

The <atom:updated> tag identifies the date and time that an entry in an Atom feed was updated. This tag is included in Provisioning API responses so that those responses conform with the Atom specification. However, the value of the <atom:updated> tag will always be a date in 1970 and the value does not serve a function in Provisioning API responses.

Example <atom:updated>1970-01-01T00:00:00.000Z</atom:updated>
Subtag of atom:feed, atom:entry
Content Format Date

apps:emailList (Deprecated)
Definition

The <apps:emailList> tag specifies a group.

Attributes
Name Format Description
name Text The name attribute identifies the group. The name attribute is required.
Example <apps:emailList="us-sales"/>
Subtag of atom:entry
Content Format Complex

apps:login
Definition

The <apps:login> tag specifies the username, and possibly the password, associated with a user account.

Attributes
Name Format Description
userName Text

The userName attribute specifies the username associated with a user account. The userName attribute is required in requests to create a user account or a nickname. However, it is optional in requests to update user accounts. See a list of valid characters for usernames.

  • In requests to create an account, the userName attribute identifies the name that will be used for a new account.
  • In requests to update an account, the userName attribute identifies the account that will be updated. When renaming a user, this attribute identifies the new username.
  • In requests to create a nickname, the userName attribute identifies the account for which you are creating the nickname.
password Text

The password attribute identifies the password for a user account. Passwords must contain at least eight characters.

The password attribute is required in requests to create an account. However, it is optional in requests to update an account and should only be provided if the user is updating her account password.

This attribute is not returned in API responses.

hashFunctionName, or hashFunction (for Multiple Domain Users and User Aliases) Text

The hashFunctionName or hashFunction attribute indicates the format of the value of the password attribute. Currently the only valid values for this attribute are "SHA-1" and "MD5". If this attribute is specified, then password is a hashed value as opposed to clear text.

For example, rather than sending:

password="tiddlyWinkles"

as clear text, you can send the base16-encoded SHA-1 hash value of "tiddlyWinkles" as the value of password and "SHA-1" as the value of hashFunctionName as shown below:

password="51eea05d46317fadd5cad6787a8f562be90b4446"
hashFunctionName="SHA-1"

or you can send the base16-encoded MD5 hash value of "tiddlyWinkles" as the value of password and "MD5" as the value of hashFunctionName as shown below:

password="d27117a019717502efe307d110f5eb3d"
hashFunctionName="MD5"
admin Text

The admin attribute indicates whether the user in an admin user.

  • To give a user admin status, include the admin attribute in your request with a value of true.
  • To remove admin status for a particular user, include the admin attribute in your request with a value of false.
  • If you omit the admin attribute from your request, Google will not update the status of the user account.
agreedToTerms Text

The agreedToTerms attribute indicates whether the user has agreed to the Terms of Service. This is a read-only attribute.

suspended Text

The suspended attribute indicates whether a user account is suspended or active.

  • To suspend a user account, include the suspended attribute in your request with a value of true.
  • To restore a user's ability to access a suspended account, include the suspended attribute in your request with a value of false.
  • If you omit the suspended attribute from your request, Google will not update the status of the user account.
changePasswordAtNextLogin Text

The changePasswordAtNextLogin attribute indicates whether the system will force the user to change his or her password at the next login.

  • To force the user to change his or her password at the next login, include the changePasswordAtNextLogin attribute in your request with a value of true.
  • To cancel the obligation for a user to change his or her password, include the changePasswordAtNextLogin attribute in your request with a value of false.
  • If you omit the changePasswordAtNextLogin attribute from your request, Google will not update the status of the user account.
Example <apps:login userName="SusanJones" suspended="false" admin="false" changePasswordAtNextLogin="false" agreedToTerms="true"/>
Subtag of atom:entry
Content Format Complex

apps:name
Definition

The <apps:name> tag specifies the account owner's first name and last name. First and last names may contain spaces, letters (a-z), numbers (0-9), dashes (-), forward slashes (/) and periods(.).

Attributes
Name Format Description
familyName Text The familyName attribute identifies the user's last name or surname. The familyName attribute is required.
givenName Text The givenName attribute identifies the user's first, or given, name. The givenName attribute is required.
Example <apps:name familyName="Jones" givenName="Susan"/>
Subtag of atom:entry
Content Format Complex

apps:nickname
Definition

The <apps:nickname> tag specifies a nickname.

Attributes
Name Format Description
name Text The name attribute identifies the nickname. The name attribute is required.
Example <apps:nickname name="Jones"/>
Subtag of atom:entry
Content Format Complex

apps:property
Definition

The <apps:property> tag specifies information about groups or members associated with an API response. For example, when you retrieve information about a group, the API response might contain several tags. One tag contains information about the group name associated with the retrieved account or with one of the retrieved account's non-primary domains. Another tag includes the group description.

Attributes
Name Format Description
name Text

The name attribute specifies the property name (for example, groupName, description, or memberId).

value Text

The value attribute specifies the value of the property. This is the information about the entry for the field corresponding to the name attribute.


apps:quota
Definition

The <apps:quota> tag specifies the amount of disk space that should be allocated to a user account. By default, Google allocates 2GB of disk space to each user account.

  • The ability to set the user disk space quota using apps:quota is no longer available. Setting a custom quota, different than 25600MB, has no effect.

Attributes
Name Format Description
limit Integer

The limit attribute specifies the amount of disk space, in megabytes (MB), that you are allocating to a user's account. The limit attribute is required.

Example <apps:quota limit="25600"/>
Subtag of atom:entry
Content Format Complex

gd:feedLink
Definition

The <gd:feedLink> tag contains information about a logically nested feed associated with an API response. For example, when you retrieve information about a user account, the API response contains two <gd:feedLink> tags. One tag contains information about a feed of nicknames associated with the retrieved account. The other tag contains information about a feed of groups that the account is subscribed to.

Attributes
Name Format Description
rel Text The rel attribute identifies the type of content that is in the nested feed. If the attribute's value ends with user.nicknames, then the feed contains a list of nicknames associated with the user account. If the attribute's value ends with #user.groups, then the feed contains a list of groups that the user account subscribes to.
href Text The href attribute specifies the URI that you can use to retrieve the related feed.
Example <gd:feedLink rel="http://schemas.google.com/apps/2006#user.groups" href="https://apps-apis.google.com/a/feeds/group/2.0/example.com/?recipient=us-sales@example.com"/>
Subtag of atom:entry
Content Format Complex

gd:who
Definition

The <gd:who> tag identifies a person associated with an API response. This tag is used in API requests to add a person to a group as well as in API responses to requests to update or retrieve a group.

Attributes
Name Format Description
email Text The email attribute specifies an email address that is subscribed to the group. The email address can be for a hosted email account in your domain or it can be an address at an external domain. The email attribute is required.
Example <gd:who email="SusanJones-1321@example.com"/>
Subtag of atom:entry
Content Format Complex

openSearch:startIndex
Definition

The <openSearch:startIndex> value identifies the one-based index of the first item returned in the result.

Example <openSearch:startIndex>1</openSearch:startIndex>
Subtag of atom:feed
Content Format Integer

openSearch:itemsPerPage
Definition

The <openSearch:itemsPerPage> value indicates the total number of items included in the API response.

Example <openSearch:itemsPerPage>10</openSearch:itemsPerPage>
Subtag of atom:feed
Content Format Integer

AppsForYourDomainErrors
Definition

The <AppsForYourDomainErrors> tag encapsulates a list of <error> tags explaining why an API request failed.

Example <AppsForYourDomainErrors>
Subtags error
Content Format Container

error
Definition

The <error> tag contains information explaining why Google failed to execute an API request.

Attributes
Name Format Description
errorCode Text

The errorCode attribute specifies the type of error that caused an API request to fail. The following list specifies possible values for this attribute. For more information about these codes, please see GData Error Codes.

  • UnknownError(1000)
  • UserDeletedRecently(1100)
  • UserSuspended(1101)
  • DomainUserLimitExceeded(1200)
  • DomainAliasLimitExceeded(1201)
  • DomainSuspended(1202)
  • DomainFeatureUnavailable(1203)
  • EntityExists(1300)
  • EntityDoesNotExist(1301)
  • EntityNameIsReserved(1302)
  • EntityNameNotValid(1303)
  • InvalidGivenName(1400)
  • InvalidFamilyName(1401)
  • InvalidPassword(1402)
  • InvalidUsername(1403)
  • InvalidHashFunctionName(1404)
  • InvalidHashDigestLength(1405)
  • InvalidEmailAddress(1406)
  • InvalidQueryParameterValue(1407)
  • TooManyRecipientsOnEmailList(1500)

reason Text The reason attribute contains a short explanation of the error.
invalidInput Text The invalidInput attribute contains the data that caused an API response to fail. This attribute may not be provided for all error types.
Example <error errorCode="1301" reason="EntityDoesNotExist" invalidInput="Some-Nonexistent-User"/>
Subtag of AppsForYourDomainErrors
Content Format Complex

GData Error Codes

The following list (ordered by error code number) explains the different error codes that you may receive in a Google Apps XML response.

  • UnknownError(1000) - The request failed for an unknown reason.

  • ServerBusy(1001) - The server is busy and it could not complete the request.

  • UserDeletedRecently(1100) - The request instructs Google to create a new user but uses the username of an account that was deleted in the previous five days.

  • UserSuspended(1101) - The user identified in the request is suspended.

  • DomainUserLimitExceeded(1200) - The specified domain has already reached its quota of user accounts.

  • DomainAliasLimitExceeded(1201) - The specified domain has already reached its quota of aliases. Aliases include nicknames and email lists.

  • DomainSuspended(1202) - Google has suspended the specified domain's access to Google Apps.

  • DomainFeatureUnavailable(1203) -  This particular feature is not available for the specified domain.

  • EntityExists(1300) - The request instructs Google to create an entity that already exists.

  • EntityDoesNotExist(1301) - The request asks Google to retrieve an entity that does not exist.

  • EntityNameIsReserved(1302) - The request instructs Google to create an entity with a reserved name, such as "abuse" or "postmaster".

  • EntityNameNotValid(1303) - The request provides an invalid name for a requested resource.

  • InvalidGivenName(1400) - The value in the API request for the user's first name, or given name, contains unaccepted characters. Learn more about accepted characters for this field.

  • InvalidFamilyName(1401) - The value in the API request for the user's surname, or family name, contains unaccepted characters. Learn more about accepted characters for this field.

  • InvalidPassword(1402) - The value in the API request for the user's password contains an invalid number of characters or unaccepted characters. Learn more about accepted characters for this field.

  • InvalidUsername(1403) - The value in the API request for the user's username contains unaccepted characters. Learn more about accepted characters for this field.

  • InvalidHashFunctionName(1404) - The specified query parameter value is not valid.

  • InvalidHashDigestLength(1405) - The specified password does not comply with the specified hash function.

  • InvalidEmailAddress(1406) - The specified email address is not valid.

  • InvalidQueryParameterValue(1407) - The specified query parameter value is not valid.

  • InvalidSsoSigningKey(1408) - The specified signing key is not valid.

  • TooManyRecipientsOnEmailList(1500) - The request instructs Google to add users to an email list, but that list has already reached the maximum number of subscribers (1000).

  • TooManyNicknamesForUser(1501) - The request instructs Google to add a nickname to an email address, but that email address has already reached the maximum number of nicknames.

  • DuplicateDestinations(1601) - The destination specified has already been used.

  • TooManyDestinations(1602) - The maximum number of destinations has been reached.

  • InvalidRouteAddress(1603) - The routing address specified is invalid.

  • GroupCannotContainCycle(1700) - A group cannot contain a cycle.

  • InvalidDomainEdition(1800) - The domain product version is not valid.

  • InvalidValue(1801) - An value specified is not valid.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.