Field masks

Field masks are a way for API callers to list the fields that a request should return. Using a field mask allows the API to avoid unnecessary work and improves performance.

A field mask can be specified either as a URL query parameter or as an HTTP or gRPC header:

URL Query Parameter HTTP or gRPC Header
$fields or fields X-Goog-FieldMask

Field mask syntax

The following field mask examples are based on this example response type.

message ExampleResponse {
  message Foo {
    string foo1 = 1;
    string foo2 = 2;
    Bar foo3 = 3;
  }

  message Bar {
    string bar1 = 1;
    string bar2 = 2;
    string bar3 = 3;
  }

  string field1 = 1;
  repeated Foo field2 = 2;
}

Nested fields can be selected using the dot syntax or by enclosing them in parentheses.

Expression Output
* Returns all fields and nested fields.
field1,field2 Returns field1 and all nested fields of field2.
field1,field2.foo1 Returns field1 and field2.foo1.
field1,field2(foo1) Returns field1 and field2.foo1.
field1,field2(foo1,foo2) Returns:
field1
field2.foo1
field2.foo2
field1,field2(foo1,foo3(bar1,bar2)) Returns:
field1
field2.foo1
field2.foo3.bar1
field2.foo3.bar2