PUT /proposal

NOTE: The EPA API has sunset on September 30, 2026. Endpoints are no longer accessible. For alternatives, see EPA to PDP Migration.

Updates an existing proposal and creates a new revision.

Here's what you need to know about updating proposals:

Request example

To update a proposal, use the PUT /proposal endpoint and include the required proposal and deal information.

IMPORTANT: Be sure to include the latest revision number or the update will fail.

{
    "ProposalId": 1234,
    "DisplayName": "Test Proposal",
    "RevisionNumber": 4,
    "Buyer": {
        "BuyerId": "5168"
    },
    "Seller": {
        "SellerId": "Test",
        "SellerName": "Test Seller"
    },
    "Deals": [
        {
            "DealId": 5367297813,
            "DisplayName": "Test Deal",
            "ExternalDealId": "4263497813",
            "PublisherIds": [
                "1234"
            ],
            "DealType": "Preferred",
            "PreferredDealTerms": {
                "RateType": "CPM",
                "Rate": {
                    "Amount": 0.05,
                    "CurrencyCode": "USD"
                }
            },
            "CreativeRestrictions": {
                "CreativeFormat": "Display"
            }
        }
    ]
}

For details on the individual properties, see Proposal object and Deals object.

Response example

A successful response to a PUT /proposal request returns a Proposal object with an updated revision number.

{
    "ProposalId": 1234,
    "DisplayName": "Test Proposal",
    "RevisionNumber": 5,
    "Buyer": {
        "BuyerId": "5168"
    },
    "Seller": {
        "SellerId": "Test",
        "SellerName": "Test Seller"
    },
    "Deals": [
        {
            "DealId": 5367297813,
            "DisplayName": "Test Deal",
            "ExternalDealId": "4263497813",
            "PublisherIds": [
                "1234"
            ],
            "DealType": "Preferred",
            "PreferredDealTerms": {
                "RateType": "CPM",
                "Rate": {
                    "Amount": 0.05,
                    "CurrencyCode": "USD"
                }
            },
            "CreativeRestrictions": {
                "CreativeFormat": "Display"
            },
            "CreateTime": "2021-08-19T18:53:18.05",
            "UpdateTime": "2021-08-19T18:53:18.05"
        }
    ],
    "Notes": [],
    "Originator": "Seller",
    "LastUpdatedBy": "Seller",
    "ProposalState": "Proposed",
    "SellerAccepted": "false",
    "BuyerAccepted": "false",
    "CreatedTime": "2021-08-19T18:53:18.05",
    "UpdatedTime": "2021-08-20T23:01:41.05"
}

For details on the individual properties, see Proposal object and Deals object.

Error codes and messages

The following table provides a list of common errors and their respective HTTP error codes.

HTTP Code Status Description
400 Bad Request The request had missing or invalid parameters.
403 Forbidden The proposal is in the Rejected state and has not been activated.
404 Not Found The proposal or revision does not exist.
409 Conflict A newer revision already exists.
410 Gone The proposal has been deleted by the buyer or seller.