SDK API Reference


Provides access to the phone’s system contacts.


Get a list of all entries in the system contacts. This returns the name and optionally phone number and email of each contact.

param object options

A map of options:

  • fields (array) — An array describing fields to retrieve per contact. Each element must be one of Expo.Contacts.PHONE_NUMBERS or Expo.Contacts.EMAILS.

  • pageSize (number) — The number of contacts per page that will be returned. Defaults to 100.

  • pageOffset (number) — The number of contacts to skip before those that will be returned. Defaults to 0.


A pagination object that contains the following fields.

  • data (array) — An array of objects of the form { id, name, phoneNumbers, emails, addresses, jobTitle, company } with phoneNumbers, emails, and addresses only present if they were requested through the fields parameter. iOS also includes firstName, middleName, lastName.

  • hasNextPage (boolean) — If there is more contacts available.

  • hasPreviousPage (boolean) — If there was contacts skipped. Will be true when passing a pageOffset greater than 0.

  • total (number) — The total number of contacts available.


async function showFirstContactAsync() {
  // Ask for permission to query contacts.
  const permission = await Expo.Permissions.askAsync(Expo.Permissions.CONTACTS);
  if (permission.status !== 'granted') {
    // Permission was denied...
  const contacts = await Expo.Contacts.getContactsAsync({
    fields: [
    pageSize: 10,
    pageOffset: 0,
  if ( > 0) {
      'Your first contact is...',
      `Name: ${[0].name}\n` +
      `Phone: ${JSON.stringify([0].phoneNumbers)}\n` +
      `Email: ${JSON.stringify([0].emails)}`

This function will display the first entry in the user’s contacts.