gRPC APIs
Check out our API Overview for more information.
Protocol Buffer Definitions
You can download the proto files directly from GitHub below.
| Protobuf | Description | 
|---|---|
| services.proto | Defines the core services within the platform. | 
| serving.proto | Message definitions for running queries. | 
| custom_dim.proto | Message definitions for custom dimensions. | 
| indexing.proto | Message definitions for indexing content. | 
| admin.proto | Message definitions for performing administrative tasks. | 
| status.proto | Status return codes. | 
| common.proto | Common message definitions. | 
Download the Auxiliary Protocol Buffers
The gRPC services also use Google's
annotations.proto
and http.proto.
If you need these proto files, the following curl commands download these files into
the ext subdirectory.
You can then reference them in the protoc path using -I ext.
proto $ ls
admin.proto  common.proto indexing.proto  services.proto  serving.proto  status.proto
proto $ mkdir ext
proto $ curl -s -o ext/google/api/annotations.proto --create-dirs \
             https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/annotations.proto
proto $ curl -s -o ext/google/api/http.proto --create-dirs \
             https://raw.githubusercontent.com/googleapis/googleapis/master/google/api/http.proto
Example Protocol Buffers
The Quickstart Examples GitHub repository has examples of connecting via gRPC in a variety of languages.
Generating Strongly Typed Clients
One of the advantages of using gRPC is that there is some tooling for generating strongly-typed clients/bindings in many programming languages. These work by converting the protobuf definitions to code.
The most up-to-date documentation on how to do this is in the "quick start" sections of https://grpc.io/docs/languages/ following the "Generate gRPC code" section in the language of your choosing. For example, check out the official documentation for getting started with gRPC in Python.