Skip to Content
DocsAPI ReferenceBrokered ListingsCreate Brokered Listing

POST /api/v1/brokered-listings

Create a listing brokered by a third party. The seller address must match the authenticated user, and the seller cannot be their own broker. The broker fee (in basis points) is validated against the minimum configured fee and must be correctly encoded in the Seaport order’s consideration items.

Existing active listings with the same order hash are auto-cancelled before insertion.

Authentication: Required

Cache: None

Request Body

FieldTypeRequiredDescription
token_idstringYesENS name token ID
price_weistringYesListing price in wei
currency_addressstringNoPayment token (defaults to ETH zero address)
order_datastringYesJSON string of the Seaport order
order_hashstringYesUnique Seaport order hash
seller_addressstringYesSeller’s address (0x + 40 hex, must match authenticated user)
broker_addressstringYesBroker’s address (0x + 40 hex, must differ from seller)
broker_fee_bpsnumberYesBroker fee in basis points (0–10000, must meet minimum)
expires_atstringNoListing expiration (ISO string); falls back to order endTime

Sample Request

curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ https://api.grails.app/api/v1/brokered-listings \ -d '{ "token_id": "12345678901234567890", "price_wei": "100000000000000000", "order_data": "{...}", "order_hash": "0xabc123...", "seller_address": "0xabcd...", "broker_address": "0x5678...", "broker_fee_bps": 500 }'

Response

// 201 Created { "success": true, "data": { "id": 44, "ens_name_id": 1, "seller_address": "0xabcd...", "price_wei": "100000000000000000", "currency_address": "0x0000000000000000000000000000000000000000", "order_hash": "0xabc123...", "order_data": "{...}", "status": "active", "source": "grails", "broker_address": "0x5678...", "broker_fee_bps": 500, "expires_at": "2026-04-14T12:00:00.000Z", "created_at": "2026-04-08T00:00:00.000Z", "updated_at": "2026-04-08T00:00:00.000Z", "ens_name": "example.eth", "token_id": "12345678901234567890" }, "meta": { "timestamp": "2026-04-08T00:00:00.000Z", "version": "1.0.0" } }

Error Responses

StatusCodeDescription
400VALIDATION_ERRORInvalid request body
400SELF_BROKER_NOT_ALLOWEDSeller cannot be their own broker
400BROKER_FEE_TOO_LOWFee below minimum required basis points
400INVALID_FEEFee configuration in order doesn’t match
403FORBIDDENSeller address does not match authenticated user
404ENS_NAME_NOT_FOUNDToken ID not found in database
500BROKERED_LISTING_FAILEDServer error creating listing
Last updated on