> [!IMPORTANT]
> **Key Point:** We strongly recommend using our [official client
> libraries](https://developers.google.com/google-ads/api/docs/client-libs) wherever you can. All Google provided client libraries are implemented using gRPC, except for the [Perl
> library](https://github.com/googleads/google-ads-perl/), which uses the REST interface. Unless you are specifically looking for details about REST, consult the [reference documentation](https://developers.google.com/google-ads/api/reference/rpc) for details that cover both our official client libraries and the REST transport layer.

> [!NOTE]
> **Note:** If you are new to the Google Ads API, we recommend reading the [Getting
> Started](https://developers.google.com/google-ads/api/docs/get-started/make-first-call) guide first, which covers how to set up your account and make your first API call. Make sure to follow the *curl* tab.

The Google Ads API can be called either using [gRPC](https://grpc.io/) or REST. Both
interfaces expose a [resource-oriented design](https://cloud.google.com/apis/design)
shared with other Google Cloud APIs.

We recommend using Google's official [client libraries](https://developers.google.com/google-ads/api/docs/client-libs)
wherever possible. They provide idiomatic, type-safe code in each supported
language and handle many low-level details of communication with the API (like
timeout settings, result set [pagination](https://developers.google.com/google-ads/api/rest/examples#paginated), and
[authentication](https://developers.google.com/google-ads/api/rest/auth)). Our client libraries also include an
extensive set of [code examples](https://developers.google.com/google-ads/api/docs/samples) and utilities that assist with
common tasks, such as constructing
[resource names](https://developers.google.com/google-ads/api/rest/design/resource-names) and handling
[field masks](https://developers.google.com/google-ads/api/rest/common/mutate#update).

This guide presents details specific to REST and explains what you need to know
to call the REST interface directly, without the use of a Google-supported
client library. This guide may be useful if you are writing your own custom code
to use REST directly or using a third-party HTTP client library.