API Reference
Contacts
Read, create, and update device contacts.
Type Definitions
bash
type Contact {
id: ID!
prefix: String!
firstName: String!
middleName: String!
lastName: String!
suffix: String!
nickname: String!
photoId: String! # use GET /fs?id=<photoId>
phoneNumbers: [ContactPhoneNumber!]!
emails: [ContentItem!]!
addresses: [ContentItem!]!
events: [ContentItem!]! # birthdays, anniversaries
source: String! # account type e.g. "com.google"
starred: Boolean!
contactId: ID!
thumbnailId: String!
notes: String!
groups: [ContactGroup!]!
organization: Organization
websites: [ContentItem!]!
ims: [ContentItem!]!
ringtone: String!
updatedAt: String!
}
type ContactPhoneNumber {
value: String!
type: Int! # 1=home 2=mobile 3=work
label: String!
normalizedNumber: String!
}
type ContentItem {
value: String!
type: Int!
label: String!
}
type Organization {
company: String!
title: String!
}
type ContactGroup {
id: ID!
name: String!
contactCount: Int!
}
type ContactSource {
name: String!
accountType: String!
}
input ContactInput {
firstName: String
lastName: String
phoneNumbers: [ContactPhoneNumberInput]
emails: [ContentItemInput]
organization: OrganizationInput
}Operations
query
contacts
Search contacts. Leave query empty to list all.
bash
query GetContacts($offset: Int!, $limit: Int!, $query: String!) {
contacts(offset: $offset, limit: $limit, query: $query) {
id firstName lastName phoneNumbers { value type }
emails { value } source starred updatedAt
}
}query
contactCount
Count contacts matching a query.
bash
query GetContactCount($query: String!) {
contactCount(query: $query)
}query
contactSources
List available contact account sources.
bash
query GetContactSources {
contactSources { name accountType }
}query
contactGroups
List all contact groups.
bash
query GetContactGroups {
contactGroups { id name contactCount }
}mutation
createContact
Create a new contact.
bash
mutation CreateContact($input: ContactInput!) {
createContact(input: $input) { id firstName lastName phoneNumbers { value } }
}mutation
updateContact
Update an existing contact. Only supplied fields are modified.
bash
mutation UpdateContact($id: ID!, $input: ContactInput!) {
updateContact(id: $id, input: $input) { id firstName lastName updatedAt }
}mutation
deleteContacts
Delete all contacts matching a query.
bash
mutation DeleteContacts($query: String!) {
deleteContacts(query: $query)
}mutation
createContactGroup
Create a contact group in a specific account.
bash
mutation CreateContactGroup($name: String!, $accountName: String!, $accountType: String!) {
createContactGroup(name: $name, accountName: $accountName, accountType: $accountType) {
id name contactCount
}
}mutation
updateContactGroup
Rename a contact group.
bash
mutation UpdateContactGroup($id: ID!, $name: String!) {
updateContactGroup(id: $id, name: $name) { id name }
}mutation
deleteContactGroup
Delete a contact group. Contacts in the group are not deleted, only ungrouped.
bash
mutation DeleteContactGroup($id: ID!) {
deleteContactGroup(id: $id)
}