# Porkbun API v3 — Pricing

> Domain pricing across all supported TLDs — no authentication required

Part of the Porkbun API v3.48. Topic index: https://porkbun.com/llms · Full reference: https://porkbun.com/llms-full.txt · Overview: https://porkbun.com/llms.txt · OpenAPI spec: https://porkbun.com/api/json/v3/spec

**Auth:** send `X-API-Key` / `X-Secret-API-Key` headers (preferred) or `apikey` / `secretapikey` in the JSON body. Create keys at https://porkbun.com/account/api

---

# Endpoints

## POST /api/json/v3/pricing/get

**Retrieve domain pricing (public)**

Retrieve default domain pricing information for all supported TLDs, or only the ones you ask for. Does not require authentication. Prices are in US dollars.

Filter with `tld` (one TLD) and/or `tlds` (several). Names are case-insensitive, a leading dot is ignored, and IDN TLDs may be sent in Unicode or punycode (`みんな` or `xn--q9jyb4c`). A TLD Porkbun does not sell is left out of `pricing` and listed in `unsupported`; if none of the requested TLDs is sold the response is `INVALID_TLD` (HTTP 400). No filter returns every TLD.

Request body fields:

| Field | Type | Required | Description |
|---|---|---|---|
| `tld` | string | no | Optional single TLD to price, e.g. `io`. Combines with `tlds`. |
| `tlds` |  | no | Optional TLDs to price: an array, or a comma-separated string. If neither `tld` nor `tlds` is given (or both are empty), all supported TLDs are returned. |

```bash
curl -X POST https://api.porkbun.com/api/json/v3/pricing/get \
  -H 'Content-Type: application/json' \
  -d '{"tlds":["com","io"]}'
```

Response fields:

| Field | Type | Description |
|---|---|---|
| `status` | string |  |
| `unsupported` | string[] | Present only when a filter named TLDs Porkbun does not sell: those names, as sent. They are not in `pricing`. |
| `pricing` | object | Object keyed by TLD string |

## GET /api/json/v3/pricing/get

**Retrieve domain pricing (public)**

Retrieve default domain pricing information for all supported TLDs, or only the ones you ask for. Does not require authentication. Prices are in US dollars.

Filter with `tld` (one TLD) and/or `tlds` (several). Names are case-insensitive, a leading dot is ignored, and IDN TLDs may be sent in Unicode or punycode (`みんな` or `xn--q9jyb4c`). A TLD Porkbun does not sell is left out of `pricing` and listed in `unsupported`; if none of the requested TLDs is sold the response is `INVALID_TLD` (HTTP 400). No filter returns every TLD. On GET, `tlds` is comma-separated: `?tlds=com,io,dev`.

| Parameter | In | Required | Description |
|---|---|---|---|
| `tld` | query | no | One TLD to price, e.g. `io`. |
| `tlds` | query | no | Comma-separated TLDs to price, e.g. `com,io,dev`. Omit (with `tld`) for every TLD. |

```bash
curl 'https://api.porkbun.com/api/json/v3/pricing/get'
```

Response fields:

| Field | Type | Description |
|---|---|---|
| `status` | string |  |
| `unsupported` | string[] | Present only when a filter named TLDs Porkbun does not sell: those names, as sent. They are not in `pricing`. |
| `pricing` | object | Object keyed by TLD string |

---

## More

- Guides (how-tos): https://porkbun.com/llms/guides
- Topic index: https://porkbun.com/llms
- Full reference (one file): https://porkbun.com/llms-full.txt
- OpenAPI spec (full schemas): https://porkbun.com/api/json/v3/spec
- Short overview: https://porkbun.com/llms.txt
- Official MCP server: https://porkbun.com/mcp (`npx -y @porkbunllc/mcp-server`)
- Create API keys: https://porkbun.com/account/api
