Accessing the People API from C# / .NET

The Google People API has launched, this post describes how to access the API from .NET projects using C#.


Code overview

The following code shows how to access the API:

using Google.Apis.Auth.OAuth2;
using Google.Apis.People.v1;
using Google.Apis.People.v1.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace PeopleQuickstart
    class Program
        // If modifying these scopes, delete your previously saved credentials
        // at ~/.credentials/people-dotnet-quickstart.json
        static string[] Scopes = { PeopleService.Scope.ContactsReadonly };
        static string ApplicationName = "People API .NET Quickstart";

        static ClientSecrets secrets = new ClientSecrets()
            ClientId = "YOUR_CLIENT_ID",
            ClientSecret = "YOUR_CLIENT_SERCRET"

        static void Main(string[] args)
            UserCredential credential;

            string credPath = System.Environment.GetFolderPath(
            credPath = Path.Combine(credPath, ".credentials/people-dotnet-quickstart");

            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                new FileDataStore(credPath, true)).Result;
            Console.WriteLine("Credential file saved to: " + credPath);

            // Create Drive API service.
            var service = new PeopleService(new BaseClientService.Initializer()
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,

            // List People.               
            GetPeople(service, null);


        static void GetPeople(PeopleService service, string pageToken)
            // Define parameters of request.
            PeopleResource.ConnectionsResource.ListRequest peopleRequest =

            if (pageToken != null)
                peopleRequest.PageToken = pageToken;

            ListConnectionsResponse people = peopleRequest.Execute();

            if (people != null && people.Connections != null && people.Connections.Count > 0)
                foreach (var person in people.Connections)
                    Console.WriteLine(person.Names != null ? (person.Names[0].DisplayName ?? "n/a") : "n/a");

                if (people.NextPageToken != null)
                    GetPeople(service, people.NextPageToken);
                Console.WriteLine("No people found / end of list");



1. Create a project in Visual Studio and install the People API NuGet package.

2. Add a new project on the Google Developer Console. Create a project, add the People API, and add an API key of type Other.

3. From your project Credentials, copy the client ID and secret into your Visual Studio project, replacing YOUR_CLIENT_ID and YOUR_CLIENT_SECRET in the provided code.

4. Build and run, after you authenticate, you will see the contacts available to the app.