---
title: "Search a name: availability and price of it under the usual TLDs (mybrand → mybrand.com, mybrand.se, …)"
method: GET
path: "/domain-registrations/search"
tags: ["Domains"]
---

# Search a name: availability and price of it under the usual TLDs (mybrand → mybrand.com, mybrand.se, …)

`GET /domain-registrations/search`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/domain-registrations/search`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

## Query parameters

- `orgId` string: Organization id (required when you belong to several)
- `query` string, required

## Response `200`

Results

- object
  - `query` string, required
  - `items` object[], required
    - `domain` string, required
    - `tld` string, required
    - `available` boolean, nullable, required: null: not checked live (a TLD registered by hand without the registrar key; the team checks it when it registers the name and refunds the order in full if it is taken)
    - `buyable` boolean, required
    - `reason` 'taken' | 'premium' | 'not_sold' | 'not_priced' | 'registrar_off' | 'pending_order' | 'owned' | 'null', nullable, required: why a name cannot be bought here: taken, premium (priced above the list price; not sold here), not_sold (the TLD is not offered), not_priced (no price for it right now), registrar_off (automatic registration is not set up yet), pending_order (someone already ordered it), owned (it is on your My domains)
    - `price` object, nullable, required: the first year and each renewal year
      - `amount` integer, required: integer minor units of `currency` (cents, öre)
      - `renewAmount` integer, required: integer minor units of `currency` (cents, öre)
      - `currency` string, required: lowercase ISO 4217 code, e.g. usd or sek
    - `fulfillment` 'auto' | 'manual', required: auto: registered within minutes once paid; manual: registered by our team, usually within 24 h
    - `whoisPrivacy` boolean, required: WHOIS privacy can be switched on for this name
  - `paymentMode` 'stripe' | 'manual', required: stripe: paid with the team's card or a payment link; manual: no online payment on this server: our team is told about every order, contacts the team with the payment details and confirms the payment

## Other responses

- `400`: Invalid request (code invalid_request); details.reason says what to fix
- `401`: Missing or invalid session/token (code unauthorized)
- `403`: Authenticated but not permitted (code forbidden); operator writes may need a fresh session (details.reauthenticate)
- `404`: Not found or not visible to the caller (code not_found)
- `409`: Conflicting state (code conflict): details.reason taken, premium, owned, pending_order, price_changed, dns_changed (reload the records), dns_busy, dns_not_here, conflicting_records (details.records), …
- `429`: Too many searches or DNS requests (code rate_limited); see Retry-After
- `501`: Not set up on this server (code not_configured), e.g. no registrar key yet
- `503`: The registrar did not answer (code provider_unavailable)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
