This page assumes a familiarity with the [Resource Oriented
Design](https://cloud.google.com/apis/design/resources) and [Resource
Names](https://cloud.google.com/apis/design/resource_names) developer guides and
complements them with specific implementation details of the Google Ads API.

> [!IMPORTANT]
> **Key Point:** The examples throughout this guide use HTTP protocol to demonstrate how to call the API. See the [Examples](https://developers.google.com/google-ads/api/rest/examples) page for how you can make these same API calls using the [`curl`](https://curl.se/) command line utility.

> [!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.

## Resource-oriented design

Generally, the Google Ads API follows a resource-oriented design, modeled as
*collections* of individually-addressable *resources* (the *nouns* of the API).
Resources are referenced with their resource names and manipulated using a small
set of *methods* (also known as *verbs* or *operations* ).
These [resource names](https://developers.google.com/google-ads/api/rest/design/resource-names) and [methods](https://developers.google.com/google-ads/api/rest/design/service-methods), combined
with a specific *API version prefix*, comprise the URLs of the REST interface.
For example, this example URL can be broken down into these individual
components according to the following table:

    https://googleads.googleapis.com/v26/customers/1234567890:mutate

| API Version Prefix | Resource Name (relative) | Method |
|---|---|---|
| `https://googleads.googleapis.com/v26` | `customers/1234567890` | `mutate` |

All REST URLs for a particular version of the API (e.g., `v26`)
share a common API version prefix. The resource name and method together
identifies which API service is being called.

The Google Ads API makes heavy use of *custom methods* , as opposed to most
REST APIs that use standard REST methods such as `list`, `get`,
`create`, `update`, and `delete`. Examples of custom methods in the Google Ads API
include `search`, `searchStream`, and `mutate`.

The following pages go into more details about the Google Ads API's [resource
names](https://developers.google.com/google-ads/api/rest/design/resource-names), [service methods](https://developers.google.com/google-ads/api/rest/design/service-methods), and
[JSON naming conventions](https://developers.google.com/google-ads/api/rest/design/json-mappings) to illustrate how they're used
together to define REST interface endpoints.

## Error management

See [Understand API errors](https://developers.google.com/google-ads/api/docs/best-practices/understand-api-errors) for
guidance on how to analyze and debug any errors that arise.

## Discovery document

To facilitate and automate the discovery of available methods in the Google Ads API,
you can use the discovery document published for each version.

It is available at
`https://googleads.googleapis.com/$discovery/rest?version=<API_VERSION>`.
So, for example, this is the
[discovery document](https://googleads.googleapis.com/$discovery/rest?version=v26)
for the latest version of the Google Ads API.

The discovery document contains information about all the services, methods,
resources and entities used in the Google Ads API, like the
[reference documentation](https://developers.google.com/google-ads/api/reference/rpc/v26), but in a machine-readable,
JSON format.