Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/google-ads-v25-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Google Ads V25 API
description: Manage your Google Ads accounts, campaigns, and reports with this API.
version: v25
x-discovery-revision: '20260721'
contact:
name: Google
url: https://developers.google.com/google-ads/api/
termsOfService: https://developers.google.com/terms
servers:
- url: https://googleads.googleapis.com
description: Google Ads API production server
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
tags:
- name: v25
paths:
/v25:listBenchmarksLocations:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listBenchmarksLocations
summary: Returns the list of locations that support benchmarks (for example, countries)
tags:
- v25
description: 'Returns the list of locations that support benchmarks (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksLocationsRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksLocationsResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listPlannableProducts:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listPlannableProducts
summary: Returns the list of per-location plannable YouTube ad formats with allowed targeting
tags:
- v25
description: 'Returns the list of per-location plannable YouTube ad formats with allowed targeting. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableProductsRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableProductsResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:generateConversionRates:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_generateConversionRates
summary: Returns a collection of conversion rate suggestions for supported plannable products
tags:
- v25
description: 'Returns a collection of conversion rate suggestions for supported plannable products. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__GenerateConversionRatesRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__GenerateConversionRatesResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listBenchmarksAvailableDates:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listBenchmarksAvailableDates
summary: Returns a date range that supports benchmarks
tags:
- v25
description: 'Returns a date range that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksAvailableDatesRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksAvailableDatesResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listPlannableUserLists:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listPlannableUserLists
summary: Returns the list of plannable user lists with their plannable status
tags:
- v25
description: 'Returns the list of plannable user lists with their plannable status. User lists may not be plannable for a number of reasons, including: - They are less than 10 days old. - They have a membership lifespan that is less than 30 days - They have less than 10,000 or more than 700,000 users. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RangeError]() [ReachPlanError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableUserListsRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableUserListsResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listPlannableUserInterests:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listPlannableUserInterests
summary: Returns the list of plannable user interests
tags:
- v25
description: 'Returns the list of plannable user interests. A plannable user interest is one that can be targeted in a reach forecast using ReachPlanService.GenerateReachForecast. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [ListOperationError]() [QuotaError]() [RequestError]() [StringLengthError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableUserInterestsRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableUserInterestsResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listBenchmarksProducts:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listBenchmarksProducts
summary: Returns the list of products that supports benchmarks
tags:
- v25
description: 'Returns the list of products that supports benchmarks. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksProductsRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksProductsResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listPlannableLocations:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listPlannableLocations
summary: Returns the list of plannable locations (for example, countries)
tags:
- v25
description: 'Returns the list of plannable locations (for example, countries). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableLocationsRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListPlannableLocationsResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
/v25:listBenchmarksSources:
parameters:
- name: upload_protocol
in: query
required: false
schema:
type: string
description: Upload protocol for media (e.g. "raw", "multipart").
- name: quotaUser
in: query
required: false
schema:
type: string
description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
- name: fields
in: query
required: false
schema:
type: string
description: Selector specifying which fields to include in a partial response.
- name: $.xgafv
in: query
required: false
schema:
type: string
enum:
- '1'
- '2'
x-enumDescriptions:
- v1 error format
- v2 error format
description: V1 error format.
- name: callback
in: query
required: false
schema:
type: string
description: JSONP
- name: prettyPrint
in: query
required: false
schema:
type: boolean
default: 'true'
description: Returns response with indentations and line breaks.
- name: access_token
in: query
required: false
schema:
type: string
description: OAuth access token.
- name: uploadType
in: query
required: false
schema:
type: string
description: Legacy upload protocol for media (e.g. "media", "multipart").
- name: key
in: query
required: false
schema:
type: string
description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
- name: oauth_token
in: query
required: false
schema:
type: string
description: OAuth 2.0 token for the current user.
- name: alt
in: query
required: false
schema:
x-enumDescriptions:
- Responses with Content-Type of application/json
- Media download with context-dependent Content-Type
- Responses with Content-Type of application/x-protobuf
type: string
default: json
enum:
- json
- media
- proto
description: Data format for response.
post:
operationId: googleads_listBenchmarksSources
summary: Returns the list of benchmarks sources (for example, Industry Verticals)
tags:
- v25
description: 'Returns the list of benchmarks sources (for example, Industry Verticals). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [FieldError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksSourcesRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__ListBenchmarksSourcesResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/adwords
components:
schemas:
GoogleAdsGoogleadsV25Services__PlannableUserListMetadata:
type: object
properties:
userListCrmDataSourceType:
description: The data source type of a CRM based user list.
type: string
x-enumDescriptions:
- Not specified.
- Used for return value only. Represents value unknown in this version.
- The uploaded data is first-party data.
- The uploaded data is from a third-party credit bureau.
- The uploaded data is from a third-party voter file.
- The uploaded data is third party partner data.
enum:
- UNSPECIFIED
- UNKNOWN
- FIRST_PARTY
- THIRD_PARTY_CREDIT_BUREAU
- THIRD_PARTY_VOTER_FILE
- THIRD_PARTY_PARTNER_DATA
description: The metadata associated with a plannable user list.
GoogleAdsGoogleadsV25Services__SurfaceTargeting:
type: object
properties:
surfaces:
type: array
description: List of surfaces available to target.
items:
type: string
x-enumDescriptions:
- Not specified.
- The value is unknown in this version.
- Discover feed ad surface.
- Gmail ad surface.
- In-Feed ad surface.
- In-Stream bumper ad surface.
- In-Stream non-skippable ad surface.
- In-Stream skippable ad surface.
- Shorts ad surface.
- Google Display Network ad surface.
- In-Stream non-skippable (30 seconds) ad surface.
enum:
- UNSPECIFIED
- UNKNOWN
- DISCOVER_FEED
- GMAIL
- IN_FEED
- IN_STREAM_BUMPER
- IN_STREAM_NON_SKIPPABLE
- IN_STREAM_SKI
# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google-ads/refs/heads/main/openapi/google-ads-v25-api-openapi.yml