Claim a free Dynamic DNS hostname
API Docs with browser clientClaim a free hostname under a Namefi-owned parent domain and receive Dynamic DNS credentials for it. No domain ownership, purchase, or wallet is required, and the hostname is NOT minted as a domain. The key is scoped to this one hostname. The secret is returned ONCE in this response and is never recoverable afterwards — store it immediately.
In: header
Header Parameters
Optional delegated account address to authenticate as when the signer is an approved signer. Preferred header name.
Legacy alias for x-namefi-erc1271-account. When multiple delegated account headers are present, x-namefi-eip7702-account takes precedence, then x-namefi-erc1271-account.
Optional delegated account address to authenticate as when the signer is an approved signer. Preferred ERC-1271 header name.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.namefi.dev/v-next/dns/ddns/free-hostnames/claim" \ -H "Content-Type: application/json" \ -d '{ "label": "string", "parentDomain": "string", "name": "string" }'{
"defined": true,
"code": "BAD_REQUEST",
"status": 400,
"message": "Bad Request",
"data": null
}{
"defined": true,
"code": "UNAUTHORIZED",
"status": 401,
"message": "Unauthorized",
"data": null
}{
"defined": true,
"code": "PAYMENT_REQUIRED",
"status": 402,
"message": "Payment Required",
"data": null
}{
"defined": true,
"code": "FORBIDDEN",
"status": 403,
"message": "Forbidden",
"data": null
}{
"defined": true,
"code": "NOT_FOUND",
"status": 404,
"message": "Not Found",
"data": null
}{
"defined": true,
"code": "NOT_ACCEPTABLE",
"status": 406,
"message": "Not Acceptable",
"data": null
}{
"defined": true,
"code": "TIMEOUT",
"status": 408,
"message": "Request Timeout",
"data": null
}{
"defined": true,
"code": "CONFLICT",
"status": 409,
"message": "Conflict",
"data": null
}{
"defined": true,
"code": "PRECONDITION_FAILED",
"status": 412,
"message": "Precondition Failed",
"data": null
}{
"defined": true,
"code": "TOO_MANY_REQUESTS",
"status": 429,
"message": "Too Many Requests",
"data": null
}{
"defined": true,
"code": "INTERNAL_SERVER_ERROR",
"status": 500,
"message": "Internal Server Error",
"data": null
}Check whether a free Dynamic DNS hostname is available GET
Check whether a label is available under a free Dynamic DNS parent domain, and if not, why. The answer is ADVISORY: another user may claim the name first, so claimFreeDdnsHostname re-checks and can still fail with "taken".
Create a Dynamic DNS key POST
Create a Dynamic DNS key for a domain. Requires domain ownership. The secret is returned ONCE in this response and is never recoverable afterwards — store it immediately. Scope the key to one hostname, or set zoneWide to allow any hostname in the domain.