The Reseller API requires you to be an authorized seller. To register as a reseller and integrate our APIs into your applications, check our Register as a Reseller guide.
Authentication is optional for this endpoint and it's required only if using specific payment types (free, payback). If Authentication is used - API should be called from secure server environment. This API endpoint is used for buying domains from UD. The blockchain needs time before a transaction is mined. In rare cases, it is possible for someone to front run your purchase, which would result in an order being cancelled. We expect this to happen in less than 1 out of 10000 cases. Please make sure you are using the 'Order Status' endpoint and wait until the transaction is mined. Endpoint requires either email or owner address. If email is provided - domain will be linked to Unstoppable website account. If owner address is provided - domain will be minted right into crypto wallet. Optionally user can specify domain records that will be added to the domain once it's minted (i.e. if owner address is provided)
object (OrderPayment) Payment type and parameters | |
Array of objects |
Successful
Bad Request
Reseller not found
{- "payment": {
- "method": "stripe",
- "properties": {
- "tokenId": "tok_1FAeVFG8PQyZCUJhJp7emswP"
}
}, - "domains": [
- {
- "name": "matt.dao",
- "ownerAddress": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "email": "matt@unstoppabledomains.com",
- "resolution": {
- "crypto.ETH.address": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "crypto.BTC.address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}, - "resellerIdentityKey": "string"
}
]
}
{- "orderNumber": "-Lm9wiYytgrpf4YCWYv6",
- "payment": {
- "method": "stripe",
- "properties": {
- "tokenId": "tok_1FAeVFG8PQyZCUJhJp7emswP"
}
}, - "total": 0,
- "items": [
- {
- "domain": {
- "id": 1001,
- "name": "matt.dao",
- "ownerAddress": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "resolver": "0x049aba7510f45BA5b64ea9E658E342F904DB358D",
- "registryAddress": "0x049aba7510f45BA5b64ea9E658E342F904DB358D",
- "networkId": 1,
- "resolution": {
- "crypto.ETH.address": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "crypto.BTC.address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}, - "blockchain": "MATIC",
- "freeToClaim": true,
- "node": "0x756e4e998dbffd803c21d23b06cd855cdc7a4b57706c95964a37e24b47c10fc9"
}, - "mintingTransaction": {
- "id": 101,
- "blockchain": "MATIC",
- "networkId": 1,
- "hash": "0x5588e089b59458b4b34716c3299418e4ea449efbff35c8810f7c189160b1ed57",
- "blockExplorerUrl": "https://etherscan.io/tx/0x5698544cecaa05f7d155ff59fea48ef28cbd72068c7c3817987a19816d74fb9b",
- "statusGroup": "Pending"
}
}
]
}
Use this endpoint to pull the status of the order
Successful
Reseller not found
Order Not Found
const resellerId = 'YOUR_resellerID_PARAMETER'; const orderNumber = 'YOUR_orderNumber_PARAMETER'; const resp = await fetch( `https://unstoppabledomains.com/api/v2/resellers/${resellerId}/orders/${orderNumber}`, {method: 'GET'} ); const data = await resp.text(); console.log(data);
{- "orderNumber": "-Lm9wiYytgrpf4YCWYv6",
- "payment": {
- "method": "stripe",
- "properties": {
- "tokenId": "tok_1FAeVFG8PQyZCUJhJp7emswP"
}
}, - "total": 0,
- "items": [
- {
- "domain": {
- "id": 1001,
- "name": "matt.dao",
- "ownerAddress": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "resolver": "0x049aba7510f45BA5b64ea9E658E342F904DB358D",
- "registryAddress": "0x049aba7510f45BA5b64ea9E658E342F904DB358D",
- "networkId": 1,
- "resolution": {
- "crypto.ETH.address": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "crypto.BTC.address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}, - "blockchain": "MATIC",
- "freeToClaim": true,
- "node": "0x756e4e998dbffd803c21d23b06cd855cdc7a4b57706c95964a37e24b47c10fc9"
}, - "mintingTransaction": {
- "id": 101,
- "blockchain": "MATIC",
- "networkId": 1,
- "hash": "0x5588e089b59458b4b34716c3299418e4ea449efbff35c8810f7c189160b1ed57",
- "blockExplorerUrl": "https://etherscan.io/tx/0x5698544cecaa05f7d155ff59fea48ef28cbd72068c7c3817987a19816d74fb9b",
- "statusGroup": "Pending"
}
}
]
}
const resellerId = 'YOUR_resellerID_PARAMETER'; const domainName = 'YOUR_domainName_PARAMETER'; const resp = await fetch( `https://unstoppabledomains.com/api/v2/resellers/${resellerId}/domains/${domainName}`, {method: 'GET'} ); const data = await resp.text(); console.log(data);
{- "domain": {
- "id": 1001,
- "name": "matt.dao",
- "ownerAddress": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "resolver": "0x049aba7510f45BA5b64ea9E658E342F904DB358D",
- "registryAddress": "0x049aba7510f45BA5b64ea9E658E342F904DB358D",
- "networkId": 1,
- "resolution": {
- "crypto.ETH.address": "0x6EC0DEeD30605Bcd19342f3c30201DB263291589",
- "crypto.BTC.address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"
}, - "blockchain": "MATIC",
- "freeToClaim": true,
- "node": "0x756e4e998dbffd803c21d23b06cd855cdc7a4b57706c95964a37e24b47c10fc9"
}, - "availability": {
- "registered": false,
- "protected": false,
- "price": 1000,
- "availableForFree": false,
- "test": true
}
}
This endpoint is used to provide domains variants based on provided domains and label. Method will provide domains similar to domains provided in domains parameter.
Valid
Bad Request
Reseller not found
const query = new URLSearchParams({ search: 'test.crypto,hello,domains.888', tlds: 'crypto,nft,888' }).toString(); const resellerId = 'YOUR_resellerID_PARAMETER'; const resp = await fetch( `https://unstoppabledomains.com/api/v2/resellers/${resellerId}/domains/suggestions?${query}`, {method: 'GET'} ); const data = await resp.text(); console.log(data);
[- {
- "name": "thetest.crypto",
- "price": 20000
}, - {
- "name": "hellos.crypto",
- "price": 20000
}, - {
- "name": "thedomains.888",
- "price": 200000
}
]
This endpoint is used to provide free domains suggestions if Resellers is eligible for free domains. If Reseller isn't eligible for free domains suggestions - endpoint will return error.
Valid
Bad Request
Reseller not found
const query = new URLSearchParams({ search: 'fancyfox123.crypto,firstname,domainsforfree1.888', tlds: 'crypto,nft,888' }).toString(); const resellerId = 'YOUR_resellerID_PARAMETER'; const resp = await fetch( `https://unstoppabledomains.com/api/v2/resellers/${resellerId}/domains/suggestions/free?${query}`, {method: 'GET'} ); const data = await resp.text(); console.log(data);
[- {
- "name": "thetest.crypto",
- "price": 20000
}, - {
- "name": "hellos.crypto",
- "price": 20000
}, - {
- "name": "thedomains.888",
- "price": 200000
}
]
Reserve free domain name for external user identifier. Usually it's a user identifier or email in a resellers system. Domain name becomes unavailable for selling and claiming to anyone except identity that reserved the domain. Only one domain could be reserved per resellerIdentityKey. Reserve time is 168 hours.
Valid
Bad Request
Reseller not found
{- "resellerIdentityKey": "example@user.com"
}
{- "error": {
- "code": "ERROR_CODE",
- "message": "Error code explanation",
- "field": "some field",
- "value": "some value",
- "status": 400
}, - "constraints": [
- {
- "code": "ERROR_CODE",
- "message": "Error code explanation",
- "field": "some field",
- "value": "some value",
- "status": 400
}
]
}