D3 API
D3 API Overview
D3 API allow for a fully custom integration of D3 features directly into your application. The API exposes an interface for interacting with Web3 Name Tokens on the D3 registry and allows searching, purchasing and minting, and more.
Getting Started
Sample Source Code (See our github repository for an example app built using our APIs)
Detailed Steps 👇
Sign up at D3 Developer Dashboard to get your own API keys today.
Swagger for these APIs can also be viewed at https://api-public.d3.app/swagger#/
Provides search, combining availability information and pricing, both in native token and USD.
Number of records to return for pagination.
25Number of records to skip for pagination.
0Top-level domain (TLD) of the name token to search for (comma separated list). Leave empty to search all available TLDs.
comSecond-level domain (SLD) of the name token to search for (comma separated list)
exampleUnauthorized. API Key is missing or invalid.
Forbidden. API Key is missing SEARCH permission.
GET /v1/partner/search?sld=example HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Accept: */*
{
"total": 100,
"pageItems": [
{
"sld": "example",
"tld": "com",
"status": "available",
"eoi": false,
"isListed": true,
"registrationExpiresAt": "2025-05-15T00:00:00.000Z",
"reservationExpiresAt": "2025-05-15T00:00:00.000Z",
"registryUsdPrice": "9.99",
"registryNativePrice": "1.23456",
"listNativePrice": "1.23456",
"listUsdPrice": "1.23456",
"nativeCurrency": "ETH",
"clickUrl": "https://d3.app/search?sld=example&product=example.com&partner=com&utm_source=developer&utm_medium=api",
"lockExpiresAt": "2025-05-15T00:00:00.000Z"
}
]
}Returns name recommendations based on the provided SLDs and TLDs
Top-level domain (TLD) of the name token to recommend (comma separated list). Leave empty to recommend all available TLDs.
comSecond-level domain (SLD) of the name token to recommend (comma separated list). Maximum of 5 SLDs allowed.
exampleSuccessful name recommendations
Invalid TLDs or other request issues
Forbidden. API Key is missing necessary permissions.
GET /v1/partner/recommendations?sld=example HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Accept: */*
[
{
"sld": "example",
"tld": "com",
"status": "available",
"eoi": false,
"isListed": true,
"registrationExpiresAt": "2025-05-15T00:00:00.000Z",
"reservationExpiresAt": "2025-05-15T00:00:00.000Z",
"registryUsdPrice": "9.99",
"registryNativePrice": "1.23456",
"listNativePrice": "1.23456",
"listUsdPrice": "1.23456",
"nativeCurrency": "ETH",
"clickUrl": "https://d3.app/search?sld=example&product=example.com&partner=com&utm_source=developer&utm_medium=api",
"lockExpiresAt": "2025-05-15T00:00:00.000Z"
}
]Accepts mint name request. Only allows minting of non-premium name tokens (requires NON_PREMIUM_MINT permission).Token is not minted immediately but is scheduled for minting. Mint status could be checked using token status endpoint.
Second-level domain (SLD) of the name to mint.
exampleTop-level domain (TLD) of the name to mint.
comUser information required to mint the name.
Bad Request. Unable to mint the requested name token.
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing NON_PREMIUM_MINT permission.
Conflict. Name token is already minted.
POST /v1/partner/mint HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 119
{
"sld": "example",
"tld": "com",
"user": {
"wallet": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
"email": "[email protected]"
}
}{
"tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
"contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
"chainId": "1"
}Returns the supported payment options (contract and token addresses) for the provided TLDs.
Top-level domain (TLD) of the name token to fetch payment options (comma separated list). Leave empty to fetch for all available TLDs.
comReturns payment options for name tokens.
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing PURCHASE permission.
GET /v1/partner/payment/options HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Accept: */*
{
"options": [
{
"chainId": "1",
"chainName": "Ethereum",
"addressType": "EVM",
"contractAddress": "0x46A7bEA3dBb87522834c8b24FA14D051893deE8a",
"tokenAddress": "0x0000000000000000000000000000000000000000",
"symbol": "BTC",
"icon": "https://cdn.d3.app/assets/tokens/token_image_BTC.png",
"price": "0.3983550997142373"
}
]
}Creates a new order for name token purchase. The response includes a payment voucher and details necessary to complete the purchase.
The payment options for the transaction
The registrant contact for ICANN TLDs
The order has been successfully created.
Bad Request. Some names are not available for purchase.
Forbidden. API Key is missing necessary permissions.
POST /v1/partner/order HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 569
{
"paymentOptions": {
"contractAddress": "0x46A7bEA3dBb87522834c8b24FA14D051893deE8a",
"tokenAddress": "0x0000000000000000000000000000000000000000",
"buyerAddress": "0x65d90DBa570408f8D512c91556d8E405acd99EE2"
},
"names": [
{
"sld": "example1",
"tld": "shib",
"autoRenew": false,
"domainLength": 1
}
],
"registrantContact": {
"firstName": "text",
"lastName": "text",
"organization": "Example Inc",
"email": "[email protected]",
"phone": "234567890",
"phoneCountryCode": "+1",
"fax": "234567890",
"faxCountryCode": "+1",
"street": "text",
"city": "text",
"state": "text",
"postalCode": "text",
"countryCode": "text"
}
}{
"voucher": {
"buyer": "0x0FB3F00e792F17B7D45611932ac72FcD4cdFfE6E",
"token": "0x0000000000000000000000000000000000000000",
"amount": "23295578965024017037",
"voucherExpiration": 1727104758,
"paymentId": "47cbbdaa-0a3c-4e80-94e9-139415e86fdd",
"orderId": "3434-3675-5844-7264",
"names": [
{
"registry": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
"label": "example",
"tld": "tst",
"expirationTime": 1758585600,
"owner": "0x0FB3F00e792F17B7D45611932ac72FcD4cdFfE6E",
"renewal": false
}
]
},
"signature": "0x57235cf3bc5d305cc1dc4b040ae3b1dd34ade899ecc97d33e2167346c05f217348f80012d8081bdfaeed3f02a81e12483fdf12afd6715f5c5c1f322c390defc61c"
}Returns metadata and registration status of a name token.
Top-level domain (TLD) of the name token.
comSecond-level domain (SLD) of the name token.
exampleBad Request. Wrong SLD or TLD format.
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing NON_PREMIUM_MINT permission.
Not Found. Name token is not registered and mint is not in progress.
GET /v1/partner/token/{sld}/{tld} HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Accept: */*
{
"status": "registered",
"sld": "example",
"tld": "com",
"registeredAt": "2024-05-15T00:00:00.000Z",
"expirationDate": "2025-05-15T00:00:00.000Z",
"owner": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
"tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
"contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
"chainId": "1",
"txHash": "2sXoUFPpgFXRKiAXYUWkwtAEQd46azUEFwoebcYQbN6s",
"imageURL": "https://cdn.d3.app/tokens/1234567890abcdf123467890.png"
}Returns metadata of a name token by token ID.
Chain ID of the blockchain network.
1NFT Smart Contract address.
0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8Minted Token ID.
20719405654568256184282804044567699961418926341258048728655171573148113774124Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing SEARCH permission.
Not Found. Name token does not exist for this contract on this chain or contract not found.
GET /v1/partner/token/{chainId}/{contractAddress}/{tokenId} HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Accept: */*
{
"status": "registered",
"sld": "example",
"tld": "com",
"registeredAt": "2024-05-15T00:00:00.000Z",
"expirationDate": "2025-05-15T00:00:00.000Z",
"owner": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
"tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
"contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
"chainId": "1",
"txHash": "2sXoUFPpgFXRKiAXYUWkwtAEQd46azUEFwoebcYQbN6s",
"imageURL": "https://cdn.d3.app/tokens/1234567890abcdf123467890.png"
}Returns metadata of multiple name tokens by their token IDs.
Chain ID of the blockchain network.
1NFT Smart Contract address.
0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8List of token ids to lookup for
Bad Request. Wrong address or address type format.
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing SEARCH permission.
Not Found. Chain or Contract not found.
POST /v1/partner/tokens/{chainId}/{contractAddress} HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 21
{
"tokenIds": [
"text"
]
}[
{
"status": "registered",
"sld": "example",
"tld": "com",
"registeredAt": "2024-05-15T00:00:00.000Z",
"expirationDate": "2025-05-15T00:00:00.000Z",
"owner": "0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532",
"tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
"contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
"chainId": "1",
"txHash": "2sXoUFPpgFXRKiAXYUWkwtAEQd46azUEFwoebcYQbN6s",
"imageURL": "https://cdn.d3.app/tokens/1234567890abcdf123467890.png"
}
]Returns registered name tokens for a wallet address
Wallet address.
0x2E7cC63800e77BB8c662c45Ef33D1cCc23861532Wallet address type.
Number of records to return for pagination.
25Number of records to skip for pagination.
0Bad Request. Wrong address or address type format.
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing SEARCH permission.
GET /v1/partner/tokens/{addressType}/{address} HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Accept: */*
{
"total": 42,
"pageItems": [
{
"sld": "example",
"tld": "com",
"registeredAt": "2024-05-15T00:00:00.000Z",
"expirationDate": "2025-05-15T00:00:00.000Z",
"tokenId": "20719405654568256184282804044567699961418926341258048728655171573148113774124",
"contractAddress": "0x4F3775dfd49db0BBcd47eB6f45CEb6E6E9e15CD8",
"chainId": "1"
}
]
}The domain name to set the web3 record for
example.orgThe symbol representing the asset or record, typically used as a short identifier (e.g., "BTC" for Bitcoin).
BTCThe address to associate with the domain and symbol. This is typically a blockchain address.
0x1234567890abcdef1234567890abcdef12345678The signature generated by the registrant's wallet, authorizing this operation.
0xabcdef...The UNIX timestamp (in milliseconds) when the signature expires.
1712345678901Bad Request. Signature has expired or invalid.
No content
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing WALLET_MAPPING permission.
Not Found. Domain does not exist.
POST /v1/domain/{domainName}/records/web3 HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 132
{
"symbol": "BTC",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"signature": "0xabcdef...",
"signatureExpiresAt": 1712345678901
}No content
The domain name to delete the web3 record from
example.orgThe symbol representing the asset or record, typically used as a short identifier (e.g., "BTC" for Bitcoin).
BTCThe signature generated by the registrant's wallet, authorizing this operation.
0xabcdef...The UNIX timestamp (in milliseconds) when the signature expires.
1712345678901Bad Request. Signature has expired or invalid.
No content
Unauthorized. API Key is missing or invalid.
Forbidden. API Key is missing WALLET_MAPPING permission.
Not Found. Domain does not exist.
DELETE /v1/domain/{domainName}/records/web3 HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 77
{
"symbol": "BTC",
"signature": "0xabcdef...",
"signatureExpiresAt": 1712345678901
}No content
The name to set as the primary name for the wallet
example.ethThe signature to verify the request
0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdefThe timestamp when the signature expires
1735689600000No content
POST /v1/reverse-registry/{wallet} HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 138
{
"name": "example.eth",
"signature": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"signatureExpiresAt": 1735689600000
}No content
The signature to verify the request
0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdefThe timestamp when the signature expires
1735689600000No content
DELETE /v1/reverse-registry/{wallet} HTTP/1.1
Host:
Api-Key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 117
{
"signature": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"signatureExpiresAt": 1735689600000
}No content
Last updated