Google Ads Customers.reservations API

The customers.reservations API from Google Ads — 2 operation(s) for customers.reservations.

Operations 2

POST /v25/customers/{customersId}/reservations:quoteCampaigns Proposes quotes for booking campaigns #
POST /v25/customers/{customersId}/reservations:bookCampaigns Books the requested campaigns #

Work with this as data

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-customers-reservations-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 Specification

google-ads-customers-reservations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Google Ads Customers.reservations 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: customers.reservations
paths:
  /v25/customers/{customersId}/reservations:quoteCampaigns:
    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_customers_reservations_quoteCampaigns
      summary: Proposes quotes for booking campaigns
      tags:
      - customers.reservations
      description: Proposes quotes for booking campaigns. This request can have a latency of 30 seconds.
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          pattern: ^[^/]+$
          type: string
        description: Required. The ID of the customer making the request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__QuoteCampaignsRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__QuoteCampaignsResponse'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/adwords
  /v25/customers/{customersId}/reservations:bookCampaigns:
    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_customers_reservations_bookCampaigns
      summary: Books the requested campaigns
      tags:
      - customers.reservations
      description: Books the requested campaigns. This request can have a latency of 30 seconds.
      parameters:
      - name: customerId
        in: path
        required: true
        schema:
          pattern: ^[^/]+$
          type: string
        description: Required. The ID of the customer making the request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__BookCampaignsRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleAdsGoogleadsV25Services__BookCampaignsResponse'
      security:
      - oauth2:
        - https://www.googleapis.com/auth/adwords
components:
  schemas:
    GoogleAdsGoogleadsV25Actions__QuoteCampaignsOperation:
      type: object
      properties:
        campaigns:
          type: array
          description: Campaigns for which the quotes are requested. Maximum 2 campaigns per request.
          items:
            $ref: '#/components/schemas/GoogleAdsGoogleadsV25Actions_QuoteCampaignsOperation_Campaign'
        quoteSignature:
          description: If provided, the signature of the previous quote. Clients should always provide the quote signature from previous quotes if they haven't changed the campaigns to prevent price fluctuations within a user session.
          type: string
      description: Request message for the QuoteCampaigns action. Request including this operation can have a latency of up to 30 seconds. This feature is not publicly available.
    GoogleAdsGoogleadsV25Services__QuoteCampaignsRequest:
      type: object
      properties:
        operation:
          description: The operation to quote the campaigns.
          $ref: '#/components/schemas/GoogleAdsGoogleadsV25Actions__QuoteCampaignsOperation'
      description: Request message for ReservationService.QuoteCampaigns.
    GoogleAdsGoogleadsV25Services__BookCampaignsResponse:
      description: Response message for ReservationService.BookCampaigns.
      type: object
      properties:
        result:
          description: The result of the book campaigns operation.
          $ref: '#/components/schemas/GoogleAdsGoogleadsV25Actions__BookCampaignsResult'
    GoogleAdsGoogleadsV25Actions__BookCampaignsOperation:
      type: object
      properties:
        campaigns:
          description: Campaigns to book. Maximum 2 campaigns per request.
          items:
            $ref: '#/components/schemas/GoogleAdsGoogleadsV25Actions_BookCampaignsOperation_Campaign'
          type: array
        quoteSignature:
          description: If provided, the signature of the previous quote. Clients should always provide the quote signature from previous quotes if they haven't changed the campaigns to prevent price fluctuations within a user session.
          type: string
      description: Request message for the BookCampaigns action. Request including this operation can have a latency of up to 30 seconds. This feature is not publicly available.
    GoogleAdsGoogleadsV25Services__BookCampaignsRequest:
      description: Request message for ReservationService.BookCampaigns.
      type: object
      properties:
        operation:
          description: The operation to book the campaigns.
          $ref: '#/components/schemas/GoogleAdsGoogleadsV25Actions__BookCampaignsOperation'
    GoogleAdsGoogleadsV25Actions_QuoteCampaignsOperation_Campaign:
      type: object
      properties:
        campaign:
          description: 'Campaign for which the quote is requested. Format: customers/{customer_id}/campaigns/{campaign_id}'
          type: string
      description: A campaign for which the quote is requested.
    GoogleAdsGoogleadsV25Services__QuoteCampaignsResponse:
      description: Response message for ReservationService.QuoteCampaigns.
      type: object
      properties:
        result:
          $ref: '#/components/schemas/GoogleAdsGoogleadsV25Actions__QuoteCampaignsResult'
          description: The result of the quote campaigns operation.
    GoogleAdsGoogleadsV25Common__CampaignReservationQuote:
      type: object
      properties:
        possibleHoldDurationSeconds:
          format: int64
          description: The possible duration of the hold, in seconds.
          type: string
        maxBudgetMicros:
          description: Maximum budget to get all available impressions at the current CPM. Capped at 10M USD. Specified in micros of the advertiser currency.
          type: string
          format: int64
        suggestedCpmMicros:
          format: int64
          type: string
          description: The CPM that would be accepted for the campaign calculated at the proposed budget. Specified in micros of the advertiser currency.
        campaign:
          description: 'The campaign resource name, as it was specified in the request. It could contain a temp ID. Format: customers/{customer_id}/campaigns/{campaign_id}'
          type: string
      description: The campaign reservation quote.
    GoogleAdsGoogleadsV25Actions_BookCampaignsOperation_Campaign:
      type: object
      properties:
        campaign:
          type: string
          description: 'Campaign resource to book. Format: customers/{customer_id}/campaigns/{campaign_id}'
        requestType:
          x-enumDescriptions:
          - Not specified.
          - Used for return value only. Represents value unknown in this version.
          - Book the campaign. The campaign must have ENABLED status. If the campaign has a hold, it will remove the hold and confirm the contract.
          - Hold the inventory for the campaign. The campaign must have PAUSED status to request a hold.
          enum:
          - UNSPECIFIED
          - UNKNOWN
          - BOOK
          - HOLD
          type: string
          description: Determines if the current request should book the inventory or hold it.
      description: A single campaign to book.
    GoogleAdsGoogleadsV25Actions__QuoteCampaignsResult:
      description: The response of the QuoteCampaigns action, when the action is successful. Note that if the response contains errors, the action response will not be returned, but a quote may still be returned in the ErrorDetails.reservation_error_details field.
      type: object
      properties:
        quotes:
          description: The quotes for the requested campaigns.
          items:
            $ref: '#/components/schemas/GoogleAdsGoogleadsV25Common__CampaignReservationQuote'
          type: array
        quoteSignature:
          type: string
          description: The signature of the quote. This signature should be used when booking the quote.
    GoogleAdsGoogleadsV25Actions__BookCampaignsResult:
      type: object
      properties: {}
      description: Response message for the BookCampaigns action. Note that if the response contains errors, the action response will not be returned, but a quote may still be returned in the ErrorDetails.reservation_error_details field.
  securitySchemes:
    oauth2:
      type: oauth2
      description: Google OAuth 2.0. Google Ads API additionally requires a developer token in the developer-token header.
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/adwords: See, edit, create, and delete your Google Ads accounts and data.
externalDocs:
  url: https://developers.google.com/google-ads/api/
x-source: https://googleads.googleapis.com/$discovery/rest?version=v25
x-generated-by: API Evangelist enrichment pipeline — mechanical conversion of the first-party Google API Discovery Document