# How to value a domain (https://developer.godaddy.com/en/docs/api-users/domains/valuation/value-a-domain)

---
title: How to value a domain
description: >-
  Get a domain's GoValue valuation and suggested resale pricing using the Domain
  valuation API.
keywords: >-
  get domain value, appraise a domain, GoValue API call, GET
  /v1/domains/govalues, how much is my domain worth, value a domain
  programmatically, Afternic list price, wholesale domain value
agentNotes:
  permissions:
    - >-
      Requires an active GoValue subscription on the GoDaddy account whose
      credentials you use.
  scopes:
    - 'domains.domain:read'
  rateLimit: >-
    Each subscription plan sets a daily request limit. Exceeding it returns 429
    SLOW_DOWN until the limit resets at 00:00 UTC.
  idempotent: true
  destructive: false
  failureRecovery: >-
    404 VALUATION_NOT_FOUND (no valuation for a supported domain) and 422
    UNSUPPORTED_TLD are not retryable. Retry a 429 after the UTC daily reset.
    GoValue is static per domain, so responses are safe to cache.
related:
  apis:
    - title: Domain Valuation API reference
      href: /docs/references/rest/domain-valuation/get-go-value
  concepts:
    - title: About Domain valuation
      href: /docs/api-users/domains/valuation
    - title: Authentication
      href: /docs/api-users/auth
---

## Overview

This guide covers retrieving a domain's GoValue valuation (GoDaddy's machine-learned estimate of what the domain is worth) programmatically with the Domain valuation API. A single call to `GET /v1/domains/govalues` returns the estimated value, a suggested Afternic list price, a wholesale value, a price range, and predicted yearly sales probabilities.

Access is subscription-based. Go to [About Domain valuation](https://developer.godaddy.com/docs/api-users/domains/valuation) for what each field means and how the valuation model behaves.

## Prerequisites

The following prerequisites are required before you can use the Domain Valuation API:

* an active GoValue subscription on your GoDaddy account

  Subscribe on the [GoDaddy domain value appraisal page](https://www.godaddy.com/domain-value-appraisal). Plans differ by daily request limit.
* a [PAT](https://developer.godaddy.com/docs/api-users/auth) with the `domains.domain:read` scope

## Get a valuation

`GET /v1/domains/govalues?domainName={domain}` returns the GoValue valuation for a single domain.

* Request the valuation:

```bash tab="curl"
curl -s "https://api.godaddy.com/v1/domains/govalues?domainName=testdomain.com" \
  -H "Authorization: Bearer $GODADDY_PAT"
```

```js tab="Node"
const pat = process.env.GODADDY_PAT;
const url = new URL("https://api.godaddy.com/v1/domains/govalues");
url.searchParams.set("domainName", "testdomain.com");

const res = await fetch(url, {
  headers: { Authorization: `Bearer ${pat}` },
});
const valuation = await res.json();
console.log(valuation.goValue, valuation.listPrice);
```

```python tab="Python"
import os, requests

pat = os.environ["GODADDY_PAT"]
res = requests.get(
    "https://api.godaddy.com/v1/domains/govalues",
    params={"domainName": "testdomain.com"},
    headers={"Authorization": f"Bearer {pat}"},
)
data = res.json()
print(data["goValue"], data["listPrice"])
```

```go tab="Go"
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "os"
)

func main() {
    pat := os.Getenv("GODADDY_PAT")
    req, _ := http.NewRequest("GET",
        "https://api.godaddy.com/v1/domains/govalues?domainName=testdomain.com", nil)
    req.Header.Set("Authorization", "Bearer "+pat)

    res, err := http.DefaultClient.Do(req)
    if err != nil { panic(err) }
    defer res.Body.Close()

    var data struct {
        GoValue   map[string]any `json:"goValue"`
        ListPrice map[string]any `json:"listPrice"`
    }
    json.NewDecoder(res.Body).Decode(&data)
    fmt.Println(data.GoValue, data.ListPrice)
}
```

| Parameter    | Required | Description               | Note                                                                        |
| ------------ | -------- | ------------------------- | --------------------------------------------------------------------------- |
| `domainName` | Yes      | The domain name to value. | For example, `testdomain.com`. IDN values must be in punycode A-label form. |

The following example shows a successful response with the valuation and your current usage allowance:

```json
{
  "status": "OK",
  "domainName": "testdomain.com",
  "goValue": { "currencyCode": "USD", "value": 1234 },
  "goValueWholesale": { "currencyCode": "USD", "value": 900 },
  "minPrice": { "currencyCode": "USD", "value": 1000 },
  "maxPrice": { "currencyCode": "USD", "value": 1600 },
  "listPrice": { "currencyCode": "USD", "value": 1500 },
  "salesProbability": 0.000581,
  "salesProbability500": 0.000581,
  "salesProbabilityWholesale": 0.000581,
  "maxDailyUsage": 1000,
  "dailyUsage": 500
}
```

Go to [About Domain valuation](https://developer.godaddy.com/docs/api-users/domains/valuation) for a description of each response field and how to interpret the daily-request-limit fields.

## Common errors

The following table lists common errors and recommended actions. Go to [Errors](https://developer.godaddy.com/docs/api-users/errors) for the full error envelope.

| Status                    | Most likely cause                                                                         | Recommended action                                |
| ------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------- |
| `400 INVALID_DOMAIN_NAME` | The domain name is not syntactically valid.                                               | Correct the `domainName` value.                   |
| `401 UNAUTHENTICATED`     | Authentication credentials are missing or invalid.                                        | Check the `Authorization` header and token.       |
| `403 RESTRICTED`          | The account has no active GoValue subscription, or the token lacks `domains.domain:read`. | Confirm the subscription and token scope.         |
| `404 VALUATION_NOT_FOUND` | No valuation exists for this domain, even though its TLD is supported.                    | Treat as "no valuation available." Not retryable. |
| `422 UNSUPPORTED_TLD`     | The domain is syntactically valid, but its TLD is not supported for valuation.            | Treat as "no valuation available." Not retryable. |
| `429 SLOW_DOWN`           | Daily request limit exceeded.                                                             | Retry after the limit resets at 00:00 UTC.        |
