Skip to main content
POST
/
accept-proposal
Accept or decline proposal assignment
curl --request POST \
  --url https://outcome-agent.yourcompany.com/accept-proposal \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "tacticId": "12345",
  "campaignContext": {
    "budget": 50000,
    "budgetCurrency": "USD",
    "startDate": "2025-01-01T00:00:00Z",
    "endDate": "2025-01-31T23:59:59Z",
    "channel": "display",
    "countries": [
      "US"
    ],
    "creatives": [
      "<unknown>"
    ],
    "brandStandards": [
      "<unknown>"
    ]
  },
  "brandAgentId": "ba_123",
  "seatId": "seat_456"
}
'
{
  "acknowledged": true,
  "reason": "Insufficient budget for effective optimization"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
tacticId
string
required

ID of the tactic from the strategy table (assigned when user accepts your proposal)

Example:

"12345"

campaignContext
object
required
brandAgentId
string
required

Brand agent (advertiser) for this campaign

Example:

"ba_123"

seatId
string
required

Seat/account ID

Example:

"seat_456"

proposalId
string

ID of the proposal that was accepted (matches proposalId from GetProposalsResponse)

Example:

"premium-vcpm-display"

customFields
object

Custom fields provided by advertiser

Example:
{ "targetVCPM": 2.5 }
additional_info
object

The additional_info blob that was returned in the proposal response

Example:
{
"property_list": ["prop1", "prop2"],
"custom_data": "value"
}

Response

Acknowledgment of tactic assignment

acknowledged
boolean
required

true to accept assignment, false to decline

Example:

true

reason
string

Optional reason if declining

Example:

"Insufficient budget for effective optimization"