---
title: "Purchase an external domain (create deal)"
method: POST
path: "/api/deals"
tags: ["Marketplace"]
---

# Purchase an external domain (create deal)

`POST /api/deals`

## Request

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

Create an escrow deal to purchase a domain listed on the marketplace. Buyer's payment is held in escrow until the domain transfer completes. The seller is notified and has 7 days to provide the EPP/auth code.

Requires `domains:transfer` scope.

## Request body

- object
  - `domain` string, required: Domain name to purchase
  - `payment_method` 'card' | 'usdc' | 'balance': Payment method: 'card' (default), 'usdc', or 'balance' (marketplace credit).

## Response `201`

Deal created, payment in escrow

- object
  - `deal` object
  - `hint` string
  - `next_steps` string[]

## Other responses

- `400`: Invalid request parameters
- `401`: Missing or invalid API key
- `404`: Listing not found
- `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)
