---
title: "Counter, accept, or decline"
method: POST
path: "/api/negotiations/{id}"
tags: ["Marketplace"]
---

# Counter, accept, or decline

`POST /api/negotiations/{id}`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/negotiations/{id}`
- Auth: HTTP bearer

Respond to the current offer on the table when it's your turn. `counter` requires a new amount; `accept` locks the price at the amount currently on the table; `decline` ends the negotiation. Requires `deals:write` scope.

## Path parameters

- `id` string, required

## Request body

- object
  - `action` 'counter' | 'accept' | 'decline', required
  - `counter` number: New amount in USD (required when action=counter)
  - `message` string

## Response `200`

Updated negotiation

- object
  - `negotiation` Negotiation: An anonymous, threaded price negotiation over a listed domain
    - `id` string
    - `domain` string
    - `status` 'open' | 'agreed' | 'completed' | 'declined' | 'expired' | 'cancelled'
    - `your_role` 'buyer' | 'seller'
    - `your_turn` boolean: True when it's your move to respond
    - `current_offer` number: Latest amount on the table (USD)
    - `agreed_price` number, nullable: Set once the price is agreed
    - `list_price` number: The listing's asking price (USD)
    - `expires_at` string, date-time
    - `deal_id` string, nullable: Set once finalized into a deal
    - `created_at` string, date-time
    - `offers` object[]: The negotiation thread, oldest first
      - `from` 'you' | 'counterparty'
      - `kind` 'offer' | 'counter' | 'accept' | 'decline'
      - `amount` number, nullable
      - `message` string, nullable
      - `at` string, date-time

## Other responses

- `401`: Missing or invalid API key
- `409`: State changed / not your turn
- `429`: Rate limit exceeded - wait and retry

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
