# REST Interface Design

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 Search Ads 360 Reporting 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/search-ads/reporting/api/reference/rest/examples) page for how you can make these same API calls using the [`curl`](https://curl.haxx.se/) command line utility.

## Resource-oriented design

Generally, the Search Ads 360 Reporting 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/search-ads/reporting/api/reference/rest/resource-names) and [methods](https://developers.google.com/search-ads/reporting/api/reference/rest/service-methods), combined
with a specific *API version prefix*, comprise the URLs of the REST interface.
For example, the URL below can be broken down into these individual components
according to the following table:

    https://searchads360.googleapis.com/v0/customers/1234567890/searchAds360:search

| API Version Prefix | Resource Name (relative) | Method |
|---|---|---|
| `https://searchads360.googleapis.com/v0` | `customers/1234567890` | `search` |

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

The Search Ads 360 Reporting API makes heavy use of *custom methods* , as opposed to most
traditional REST APIs that use standard REST methods such as `list` and `get`. The Search Ads 360 Reporting API
includes two custom methods: `search` and `searchStream`.

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