---
title: "Request acquisition of a taken domain"
method: POST
path: "/api/broker"
tags: ["Marketplace"]
---

# Request acquisition of a taken domain

`POST /api/broker`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/broker`
- Auth: HTTP bearer

Ask domani to acquire a specific taken, unlisted domain on your behalf. Agents source the owner via RDAP, reach out anonymously, and negotiate - commission-only, no upfront fee. Owner interest opens an anonymous negotiation. Note: many owners are unreachable (GDPR-redacted WHOIS) - the request then ends `no_contact`. Requires `deals:write` scope.

## Request body

- object
  - `domain` string, required: The taken domain you want
  - `max_budget` number: Your ceiling in USD (optional)

## Response `201`

Broker request created (status sourcing)

- object
  - `request` BrokerRequest: A request to acquire a specific taken domain (autonomous broker)
    - `id` string
    - `domain` string
    - `status` 'sourcing' | 'contacted' | 'negotiating' | 'agreed' | 'completed' | 'no_contact' | 'declined' | 'expired' | 'cancelled'
    - `max_budget` number, nullable: Your ceiling in USD
    - `contacted` boolean: Whether the owner has been reached
    - `negotiation_id` string, nullable: Set once the owner engages and a negotiation opens
    - `failure_reason` string, nullable
    - `expires_at` string, date-time
    - `created_at` string, date-time

## Other responses

- `400`: Rejected: `ALREADY_LISTED`, `DOMAIN_AVAILABLE`, `REQUEST_EXISTS`, `DOMAIN_IN_BROKERAGE` (already being brokered for another buyer), `UNSUPPORTED_TLD` (registrar can't transfer this TLD), `RESTRICTED`, `INVALID_DOMAIN`, `INVALID_AMOUNT`
- `401`: Missing or invalid API key
- `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)
