---
title: "POST /v1/buyers/{buyersId}/proposals:sendRfp"
method: POST
path: "/v1/buyers/{buyersId}/proposals:sendRfp"
tags: ["buyers"]
---

# POST /v1/buyers/{buyersId}/proposals:sendRfp

`POST /v1/buyers/{buyersId}/proposals:sendRfp`

## Request

- Base URL: `https://authorizedbuyersmarketplace.googleapis.com`
- URL: `https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/{buyersId}/proposals:sendRfp`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/authorized-buyers-marketplace`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/authorized-buyers-marketplace`

Sends a request for proposal (RFP) to a publisher to initiate the negotiation regarding certain inventory. In the RFP, buyers can specify the deal type, deal terms, start and end dates, targeting, and a message to the publisher. Once the RFP is sent, a proposal in `SELLER_REVIEW_REQUESTED` state will be created and returned in the response. The publisher may review your request and respond with detailed deals in the proposal.

## Path parameters

- `buyersId` string, required

## Request body

- SendRfpRequest: Request to send an RFP. All fields in this request are proposed to publisher and subject to changes by publisher during later negotiation.
  - `buyerContacts` Contact[]: Contact information for the buyer.
    - `displayName` string: The display_name of the contact.
    - `email` string: Email address for the contact.
  - `client` string: If the current buyer is sending the RFP on behalf of its client, use this field to specify the name of the client in the format: `buyers/{accountId}/clients/{clientAccountid}`.
  - `displayName` string: Required. The display name of the proposal being created by this RFP.
  - `estimatedGrossSpend` Money: Represents an amount of money with its currency type.
    - `currencyCode` string: The three-letter currency code defined in ISO 4217.
    - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
    - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
  - `flightEndTime` string, google-datetime: Required. Proposed flight end time of the RFP. A timestamp in RFC3339 UTC "Zulu" format. Note that the specified value will be truncated to a granularity of one second.
  - `flightStartTime` string, google-datetime: Required. Proposed flight start time of the RFP. A timestamp in RFC3339 UTC "Zulu" format. Note that the specified value will be truncated to a granularity of one second.
  - `geoTargeting` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
    - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
    - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
  - `inventorySizeTargeting` InventorySizeTargeting: Represents the size of an ad unit that can be targeted on a bid request.
    - `excludedInventorySizes` AdSize[]: A list of inventory sizes to be excluded.
      - `height` string, int64: The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
      - `type` 'TYPE_UNSPECIFIED' | 'PIXEL' | 'INTERSTITIAL' | 'NATIVE' | 'FLUID': The type of the ad slot size.
      - `width` string, int64: The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
    - `targetedInventorySizes` AdSize[]: A list of inventory sizes to be included.
      - `height` string, int64: The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
      - `type` 'TYPE_UNSPECIFIED' | 'PIXEL' | 'INTERSTITIAL' | 'NATIVE' | 'FLUID': The type of the ad slot size.
      - `width` string, int64: The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
  - `note` string: A message that is sent to the publisher. Maximum length is 1024 characters.
  - `preferredDealTerms` PreferredDealTerms: Pricing terms for Preferred Deals.
    - `fixedPrice` Price: Represents a price and a pricing type for a deal.
      - `amount` Money: Represents an amount of money with its currency type.
        - `currencyCode` string: The three-letter currency code defined in ISO 4217.
        - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
        - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
      - `type` 'TYPE_UNSPECIFIED' | 'CPM' | 'CPD': The pricing type for the deal.
  - `programmaticGuaranteedTerms` ProgrammaticGuaranteedTerms: Pricing terms for Programmatic Guaranteed Deals.
    - `fixedPrice` Price: Represents a price and a pricing type for a deal.
      - `amount` Money: Represents an amount of money with its currency type.
        - `currencyCode` string: The three-letter currency code defined in ISO 4217.
        - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
        - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
      - `type` 'TYPE_UNSPECIFIED' | 'CPM' | 'CPD': The pricing type for the deal.
    - `guaranteedLooks` string, int64: Count of guaranteed looks. For CPD deals, buyer changes to guaranteed_looks will be ignored.
    - `impressionCap` string, int64: The lifetime impression cap for CPM Sponsorship deals. Deal will stop serving when cap is reached.
    - `minimumDailyLooks` string, int64: Daily minimum looks for CPD deal types. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.
    - `percentShareOfVoice` string, int64: For sponsorship deals, this is the percentage of the seller's eligible impressions that the deal will serve until the cap is reached. Valid value is within range 0~100.
    - `reservationType` 'RESERVATION_TYPE_UNSPECIFIED' | 'STANDARD' | 'SPONSORSHIP': The reservation type for a Programmatic Guaranteed deal. This indicates whether the number of impressions is fixed, or a percent of available impressions. If not specified, the default reservation type is STANDARD.
  - `publisherProfile` string: Required. The profile of the publisher who will receive this RFP in the format: `buyers/{accountId}/publisherProfiles/{publisherProfileId}`.

## Response `200`

Successful response

- Proposal: Represents a proposal in the Marketplace. A proposal is the unit of negotiation between a seller and a buyer.
  - `billedBuyer` string: Output only. When the client field is populated, this field refers to the buyer who creates and manages the client buyer and gets billed on behalf of the client buyer; when the buyer field is populated, this field is the same value as buyer. Format : `buyers/{buyerAccountId}`
  - `buyer` string: Output only. Refers to a buyer in The Realtime-bidding API. Format: `buyers/{buyerAccountId}`
  - `buyerContacts` Contact[]: Contact information for the buyer.
    - `displayName` string: The display_name of the contact.
    - `email` string: Email address for the contact.
  - `buyerPrivateData` PrivateData: Buyers are allowed to store certain types of private data in a proposal.
    - `referenceId` string: A buyer specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
  - `client` string: Output only. Refers to a Client. Format: `buyers/{buyerAccountId}/clients/{clientAccountid}`
  - `dealType` 'DEAL_TYPE_UNSPECIFIED' | 'PREFERRED_DEAL' | 'PRIVATE_AUCTION' | 'PROGRAMMATIC_GUARANTEED': Output only. Type of deal the proposal contains.
  - `displayName` string: Output only. The descriptive name for the proposal. Maximum length of 255 unicode characters is allowed. Control characters are not allowed. Buyers cannot update this field. Note: Not to be confused with name, which is a unique identifier of the proposal.
  - `isRenegotiating` boolean: Output only. True if the proposal was previously finalized and is now being renegotiated.
  - `lastUpdaterOrCommentorRole` 'BUYER_SELLER_ROLE_UNSPECIFIED' | 'BUYER' | 'SELLER': Output only. The role of the last user that either updated the proposal or left a comment.
  - `name` string: Immutable. The name of the proposal serving as a unique identifier. Format: buyers/{accountId}/proposals/{proposalId}
  - `notes` Note[]: A list of notes from the buyer and the seller attached to this proposal.
    - `createTime` string, google-datetime: Output only. When this note was created.
    - `creatorRole` 'BUYER_SELLER_ROLE_UNSPECIFIED' | 'BUYER' | 'SELLER': Output only. The role who created the note.
    - `note` string: The text of the note. Maximum length is 1024 characters.
  - `originatorRole` 'BUYER_SELLER_ROLE_UNSPECIFIED' | 'BUYER' | 'SELLER': Output only. Indicates whether the buyer/seller created the proposal.
  - `pausingConsented` boolean: Whether pausing is allowed for the proposal. This is a negotiable term between buyers and publishers.
  - `proposalRevision` string, int64: Output only. The revision number for the proposal. Each update to the proposal or deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.
  - `publisherProfile` string: Immutable. Reference to the seller on the proposal. Format: `buyers/{buyerAccountId}/publisherProfiles/{publisherProfileId}` Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
  - `sellerContacts` Contact[]: Output only. Contact information for the seller.
    - `displayName` string: The display_name of the contact.
    - `email` string: Email address for the contact.
  - `state` 'STATE_UNSPECIFIED' | 'BUYER_REVIEW_REQUESTED' | 'SELLER_REVIEW_REQUESTED' | 'BUYER_ACCEPTANCE_REQUESTED' | 'FINALIZED' | 'TERMINATED': Output only. Indicates the state of the proposal.
  - `termsAndConditions` string: Output only. The terms and conditions associated with this proposal. Accepting a proposal implies acceptance of this field. This is created by the seller, the buyer can only view it.
  - `updateTime` string, google-datetime: Output only. The time when the proposal was last revised.

## Changes

- **2026-10-29** `4e374f878f32`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/google/apis/authorizedbuyersmarketplace/changes/v1/buyers/:buyersId/proposals:sendRfp/post.md)

---

[API](https://skmtc.dev/google/apis/authorizedbuyersmarketplace.md) - [All operations](https://skmtc.dev/google/apis/authorizedbuyersmarketplace/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/authorizedbuyersmarketplace/revisions/4e374f878f32?raw)
