Google.Cloud.DocumentAI.V1 is a.NET client library for the Cloud Document AI API.

Note: This documentation is for version 3.6.0 of the library. Some samples may not work with other versions.


Install the Google.Cloud.DocumentAI.V1 package from NuGet. Add it to your project in the normal way (for example by right-clicking on the project in Visual Studio and choosing "Manage NuGet Packages...").


When running on Google Cloud Platform, no action needs to be taken to authenticate.

Otherwise, the simplest way of authenticating your API calls is to download a service account JSON file then set the GOOGLE_APPLICATION_CREDENTIALS environment variable to refer to it. The credentials will automatically be used to authenticate. See the Getting Started With Authentication guide for more details.

Getting started

All operations are performed through DocumentProcessorServiceClient.

Create a client instance by calling the static Create or CreateAsync methods. Alternatively, use the builder class associated with each client class (e.g. DocumentProcessorServiceClientBuilder for DocumentProcessorServiceClient) as an easy way of specifying custom credentials, settings, or a custom endpoint. Clients are thread-safe, and we recommend using a single instance across your entire application unless you have a particular need to configure multiple client objects separately.

Using the REST (HTTP/1.1) transport

This library defaults to performing RPCs using gRPC using the binary Protocol Buffer wire format. However, it also supports HTTP/1.1 and JSON, for situations where gRPC doesn't work as desired. (This is typically due to an incompatible proxy or other network issue.) To create a client using HTTP/1.1, specify a RestGrpcAdapter reference for the GrpcAdapter property in the client builder. Sample code:

var client = new DocumentProcessorServiceClientBuilder
    GrpcAdapter = RestGrpcAdapter.Default

For more details, see the transport selection page.

Specifying regional endpoints

Note that if you wish to use processors other than in the US, you must specify the endpoint when you construct the client. The endpoint is of the form {location}, e.g. The simplest way to specify the endpoint is to use DocumentProcessorServiceClientBuilder:

DocumentProcessorServiceClient client = new DocumentProcessorServiceClientBuilder
    Endpoint = ""
// Now use the client to access EU document processors.