---
title: "Purchase new domain"
method: POST
path: "/api/domains/v1/portfolio"
tags: ["Domains: Portfolio"]
---

# Purchase new domain

`POST /api/domains/v1/portfolio`

Purchase and register a new domain name.

If registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.

If no payment method is provided, your default payment method will be used automatically.

If no WHOIS information is provided, default contact information for that TLD will be used.
Before making request, ensure WHOIS information for desired TLD exists in your account.

Some TLDs require `additional_details` to be provided and these will be validated before completing purchase.

Use this endpoint to register new domains for users.

## Request body

- DomainsV1PortfolioPurchaseRequest
  - `domain` string, required — Domain name
  - `item_id` string, required — Catalog price item ID
  - `payment_method_id` integer — Payment method ID, default will be used if not provided
  - `domain_contacts` object — Domain contact information
    - `owner_id` integer — Owner contact WHOIS record ID
    - `admin_id` integer — Administrative contact WHOIS record ID
    - `billing_id` integer — Billing contact WHOIS record ID
    - `tech_id` integer — Technical contact WHOIS record ID
  - `additional_details` object — Additional registration data, possible values depends on TLD
  - `coupons` unknown[] — Discount coupon codes
    - unknown

## Response `200`

Success response

- BillingV1OrderOrderResource
  - `id` integer — Order ID
  - `subscription_id` string — Subscription ID
  - `status` 'completed' | 'pending' | 'processing' | 'failed' | 'refunded' | 'cancelled' | 'awaiting_payment' | 'payment_initiated' | 'fraud_refund'
  - `currency` string — Currency code
  - `subtotal` integer — Subtotal price (exc. VAT) in cents
  - `total` integer — Total price (inc. VAT) in cents
  - `billing_address` BillingV1OrderOrderBillingAddressResource
    - `first_name` string
    - `last_name` string
    - `company` string, nullable
    - `address_1` string, nullable
    - `address_2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `zip` string, nullable
    - `country` string, nullable
    - `phone` string, nullable
    - `email` string
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401` — Unauthenticated response
- `422` — Validation error response
- `500` — Error response

---

[API](https://skmtc.net/hostinger/apis/hostinger-api.md) · [All operations](https://skmtc.net/hostinger/apis/hostinger-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hostinger/hostinger-api/revisions/74abfea76e36/schema)
