Spaceship SellerHub API
The SellerHub API from Spaceship — 7 operation(s) for sellerhub.
The SellerHub API from Spaceship — 7 operation(s) for sellerhub.
openapi: 3.0.0
info:
title: Spaceship.com Async Operations SellerHub API
contact:
email: support@spaceship.com
url: https://www.spaceship.com/about/contact-us/
description: "# Spaceship API\n\n## Authentication\n\nSpaceship API uses a combination of API key and API secret for authentication.\n\n### API key setup\nYou can generate your API key and secret in [API Manager](https://www.spaceship.com/application/api-manager/). Use the \"New API key\" button to set up a new API key and follow the guide to get started.\nAfter the key setup has been successful, it should appear on the API Manager application page.\n\n### API key usage\nAs shown in the example below, API consumers shall pass a valid API key and a corresponding API secret in the X-API-Secret headers.\nYou do not need to encode the API key and the API secret.\n```bash\ncurl -X GET '/api/resource' \\\n-H 'X-Api-Secret: F3brvQluT4s8aDB7PeFBH6qKHfH2xTKTneCjZbq3z2w7rj2vV6n_zhSvvJoQ' \\\n-H 'X-Api-Key: JdIS8QYFMZpVKupJtdc3'\n```\n\n## Asynchronous Operations\n\nSome API operations may take an extended period to complete. For these long-running operations, the API returns an HTTP 202 Accepted response with a `spaceship-async-operationid` header containing a unique operation identifier.\n\n### How Async Operations Work\n\n1. **Initiate Operation**: When you make a request that requires asynchronous processing (e.g., domain registration, transfer operations), the API immediately returns a 202 response.\n\n2. **Receive Operation ID**: The response includes the `spaceship-async-operationid` header with a unique identifier for tracking the operation.\n\n3. **Poll for Status**: Use the operation ID to poll the `/v1/async-operations/{operationId}` endpoint to check the current status of your operation.\n\n4. **Operation States**: Async operations can have the following statuses:\n - `pending` - The operation is still in progress\n - `success` - The operation completed successfully\n - `failed` - The operation encountered an error and could not complete\n\n### Example Workflow\n\n```bash\n# Step 1: Initiate an async operation (e.g., domain registration)\ncurl -X POST '/api/v1/domains/example.com' \\\n-H 'X-Api-Secret: YOUR_SECRET' \\\n-H 'X-Api-Key: YOUR_KEY' \\\n-H 'Content-Type: application/json' \\\n-d '{\n \"autoRenew\": false,\n \"years\": 1,\n \"privacyProtection\": {\n \"level\": \"high\",\n \"userConsent\": true\n },\n \"contacts\": {\n \"registrant\": \"CONTACT_ID\",\n \"admin\": \"CONTACT_ID\",\n \"tech\": \"CONTACT_ID\",\n \"billing\": \"CONTACT_ID\"\n }\n}'\n\n# Response: 202 Accepted\n# Headers: spaceship-async-operationid: abc123xyz\n\n# Step 2: Check operation status\ncurl -X GET '/api/v1/async-operations/abc123xyz' \\\n-H 'X-Api-Secret: YOUR_SECRET' \\\n-H 'X-Api-Key: YOUR_KEY'\n\n# Response includes:\n# - status: \"pending\" | \"success\" | \"failed\"\n# - type: Operation type (e.g., \"domains_Create\")\n# - details: Additional information about the operation\n# - createdAt: Timestamp when operation was created\n# - modifiedAt: Timestamp of last status update\n```\n\n### Permissions \n\n - <b id=\"scopes/domains:read\">domains:read</b> - Read domain information and check configuration\n- <b id=\"scopes/domains:write\">domains:write</b> - Manage domains and domain settings\n- <b id=\"scopes/domains:transfer\">domains:transfer</b> - Transfer domains in and out\n- <b id=\"scopes/domains:billing\">domains:billing</b> - Manage domains billing operations\n- <b id=\"scopes/contacts:write\">contacts:write</b> - Save contact details\n- <b id=\"scopes/contacts:read\">contacts:read</b> - Read contact details\n- <b id=\"scopes/dnsrecords:write\">dnsrecords:write</b> - Write DNS resource records\n- <b id=\"scopes/dnsrecords:read\">dnsrecords:read</b> - Read DNS resource records\n- <b id=\"scopes/asyncoperations:read\">asyncoperations:read</b> - Read async operations details\n- <b id=\"scopes/sellerhub:read\">sellerhub:read</b> - Read SellerHub Domains\n- <b id=\"scopes/sellerhub:write\">sellerhub:write</b> - Write SellerHub Domains"
version: 1.0.0
x-logo:
url: https://spaceship-cdn.com/spaceship-api-doc-assets/logo.svg
servers:
- url: https://spaceship.dev/api
description: The main server for the Spaceship External API
variables: {}
security:
- apiKey: []
apiSecret: []
tags:
- name: SellerHub
paths:
/v1/sellerhub/checkout-links:
post:
operationId: createCheckoutLink
summary: Create a checkout link
description: "Creates a new checkout link for a domain listed in SellerHub.\n\nCheckout links provide a direct URL that can be shared with potential buyers, allowing them to purchase a domain at a specified price without requiring them to browse the marketplace.\n\n### Use Cases\n- Share a personalized purchase link with an interested buyer\n- Create campaign-specific links for marketing purposes\n- Generate time-limited offers for domain sales\n\n### Notes\n- The domain must already be listed in SellerHub before creating a checkout link\n- The base price in the checkout link can differ from the listing price\n\n### Required Permissions \n\n - <a href=\"#scopes/sellerhub:write\">sellerhub:write</a>\n\n### Rate Limits \n\n * The limit for creating a checkout link is 300 requests per user, within 300 seconds."
parameters: []
responses:
'200':
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCheckoutLinkResponse'
'400':
description: The request is invalid.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'401':
description: The user's request was not authorized properly.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: The user's request not allowed to perform this action with the current scopes.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: The requested object was not found.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ObjectNotFoundError'
'422':
description: The entity is unprocessable.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationError'
'429':
description: The response indicates that the rate limit for the API has been exceeded. It includes details about the rate limit, like the number of requests left and the time the rate limit window resets.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
X-RateLimit-Limit:
required: true
description: Request limit per the allotted time window
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
X-RateLimit-Remaining:
required: true
description: The number of requests left for the time window
schema:
type: integer
format: int32
minimum: 0
maximum: 2147483647
X-RateLimit-Reset:
required: true
description: The UTC date/time when the current rate limit window resets
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
Retry-After:
required: true
description: The number of seconds inndicating how long the client ought to wait before making a follow-up request
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RateLimitError'
'500':
description: The infrastructure encountered an error.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnexpectedError'
tags:
- SellerHub
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCheckoutLinkRequest'
description: Create checkout link request payload
x-scopes:
- sellerhub:write
x-codeSamples:
- lang: javascript
source: "const url = 'https://spaceship.dev/api/v1/sellerhub/checkout-links';\nconst options = {\n method: 'POST',\n headers: {\n 'X-API-Key': 'REPLACE_KEY_VALUE',\n 'X-API-Secret': 'REPLACE_KEY_VALUE',\n 'content-type': 'application/json'\n },\n body: JSON.stringify({\n type: 'buyNow',\n basePrice: {amount: '10.99', currency: 'USD'},\n domainName: 'example.com',\n feePercentageShare: {seller: 0, buyer: 100}\n })\n};\n\nfetch(url, options)\n .then(res => res.json())\n .then(json => console.log(json))\n .catch(err => console.error(err));"
- lang: php
source: "<?php\nrequire_once('vendor/autoload.php');\n\n$client = new \\GuzzleHttp\\Client();\n\n$response = $client->request('POST', 'https://spaceship.dev/api/v1/sellerhub/checkout-links', [\n 'body' => '{\"type\":\"buyNow\",\"basePrice\":{\"amount\":\"10.99\",\"currency\":\"USD\"},\"domainName\":\"example.com\",\"feePercentageShare\":{\"seller\":0,\"buyer\":100}}',\n 'headers' => [\n 'X-API-Key' => 'REPLACE_KEY_VALUE',\n 'X-API-Secret' => 'REPLACE_KEY_VALUE',\n 'content-type' => 'application/json',\n ],\n]);\n\necho $response->getBody();"
- lang: python
source: "import requests\n\nurl = \"https://spaceship.dev/api/v1/sellerhub/checkout-links\"\n\npayload = {\n \"type\": \"buyNow\",\n \"basePrice\": {\n \"amount\": \"10.99\",\n \"currency\": \"USD\"\n },\n \"domainName\": \"example.com\",\n \"feePercentageShare\": {\n \"seller\": 0,\n \"buyer\": 100\n }\n}\nheaders = {\n \"X-API-Key\": \"REPLACE_KEY_VALUE\",\n \"X-API-Secret\": \"REPLACE_KEY_VALUE\",\n \"content-type\": \"application/json\"\n}\n\nresponse = requests.post(url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: shell
source: "curl --request POST \\\n --url https://spaceship.dev/api/v1/sellerhub/checkout-links \\\n --header 'X-API-Key: REPLACE_KEY_VALUE' \\\n --header 'X-API-Secret: REPLACE_KEY_VALUE' \\\n --header 'content-type: application/json' \\\n --data '\n{\n \"type\": \"buyNow\",\n \"basePrice\": {\n \"amount\": \"10.99\",\n \"currency\": \"USD\"\n },\n \"domainName\": \"example.com\",\n \"feePercentageShare\": {\n \"seller\": 0,\n \"buyer\": 100\n }\n}\n'"
/v1/sellerhub/domains:
get:
operationId: getSellerHubDomainList
summary: Get SellerHub domains list
description: "Returns a list of domains in SellerHub.\n\n### Required Permissions \n\n - <a href=\"#scopes/sellerhub:read\">sellerhub:read</a>\n\n### Rate Limits \n\n * The limit for fetching a SellerHub domain list is 300 requests per user, within 300 seconds."
parameters:
- name: take
in: query
required: true
description: Number of response items per page
schema:
type: integer
format: int32
minimum: 1
maximum: 100
explode: false
- name: skip
in: query
required: true
description: Number of response items to skip
schema:
type: integer
format: int32
minimum: 0
maximum: 2147483647
explode: false
responses:
'200':
description: Seller Hub Domains List
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/SellerHubDomainResponse'
maxItems: 100
total:
type: integer
format: int32
example: 100
minimum: 0
maximum: 2147483647
required:
- items
- total
'400':
description: The request is invalid.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'401':
description: The user's request was not authorized properly.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: The user's request not allowed to perform this action with the current scopes.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: The requested object was not found.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ObjectNotFoundError'
'422':
description: The entity is unprocessable.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationError'
'429':
description: The response indicates that the rate limit for the API has been exceeded. It includes details about the rate limit, like the number of requests left and the time the rate limit window resets.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
X-RateLimit-Limit:
required: true
description: Request limit per the allotted time window
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
X-RateLimit-Remaining:
required: true
description: The number of requests left for the time window
schema:
type: integer
format: int32
minimum: 0
maximum: 2147483647
X-RateLimit-Reset:
required: true
description: The UTC date/time when the current rate limit window resets
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
Retry-After:
required: true
description: The number of seconds inndicating how long the client ought to wait before making a follow-up request
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RateLimitError'
'500':
description: The infrastructure encountered an error.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnexpectedError'
tags:
- SellerHub
x-scopes:
- sellerhub:read
x-codeSamples:
- lang: javascript
source: "const url = 'https://spaceship.dev/api/v1/sellerhub/domains?take=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE';\nconst options = {\n method: 'GET',\n headers: {'X-API-Key': 'REPLACE_KEY_VALUE', 'X-API-Secret': 'REPLACE_KEY_VALUE'}\n};\n\nfetch(url, options)\n .then(res => res.json())\n .then(json => console.log(json))\n .catch(err => console.error(err));"
- lang: php
source: "<?php\nrequire_once('vendor/autoload.php');\n\n$client = new \\GuzzleHttp\\Client();\n\n$response = $client->request('GET', 'https://spaceship.dev/api/v1/sellerhub/domains?take=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE', [\n 'headers' => [\n 'X-API-Key' => 'REPLACE_KEY_VALUE',\n 'X-API-Secret' => 'REPLACE_KEY_VALUE',\n ],\n]);\n\necho $response->getBody();"
- lang: python
source: "import requests\n\nurl = \"https://spaceship.dev/api/v1/sellerhub/domains?take=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE\"\n\nheaders = {\n \"X-API-Key\": \"REPLACE_KEY_VALUE\",\n \"X-API-Secret\": \"REPLACE_KEY_VALUE\"\n}\n\nresponse = requests.get(url, headers=headers)\n\nprint(response.text)"
- lang: shell
source: "curl --request GET \\\n --url 'https://spaceship.dev/api/v1/sellerhub/domains?take=SOME_INTEGER_VALUE&skip=SOME_INTEGER_VALUE' \\\n --header 'X-API-Key: REPLACE_KEY_VALUE' \\\n --header 'X-API-Secret: REPLACE_KEY_VALUE'"
post:
operationId: createSellerHubDomain
summary: Create a SellerHub domain
description: "Creates a new domain listing in SellerHub.\n\n### Required Permissions \n\n - <a href=\"#scopes/sellerhub:write\">sellerhub:write</a>\n\n### Rate Limits \n\n * The limit for creating a SellerHub domain is 300 requests per user, within 300 seconds."
parameters: []
responses:
'201':
description: The request has succeeded and a new resource has been created as a result.
content:
application/json:
schema:
$ref: '#/components/schemas/SellerHubDomainResponse'
'400':
description: The request is invalid.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'401':
description: The user's request was not authorized properly.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: The user's request not allowed to perform this action with the current scopes.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: The requested object was not found.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ObjectNotFoundError'
'422':
description: The entity is unprocessable.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ValidationError'
'429':
description: The response indicates that the rate limit for the API has been exceeded. It includes details about the rate limit, like the number of requests left and the time the rate limit window resets.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
X-RateLimit-Limit:
required: true
description: Request limit per the allotted time window
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
X-RateLimit-Remaining:
required: true
description: The number of requests left for the time window
schema:
type: integer
format: int32
minimum: 0
maximum: 2147483647
X-RateLimit-Reset:
required: true
description: The UTC date/time when the current rate limit window resets
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
Retry-After:
required: true
description: The number of seconds inndicating how long the client ought to wait before making a follow-up request
schema:
type: integer
format: int32
minimum: 1
maximum: 2147483647
content:
application/problem+json:
schema:
$ref: '#/components/schemas/RateLimitError'
'500':
description: The infrastructure encountered an error.
headers:
spaceship-error-code:
required: true
schema:
$ref: '#/components/schemas/errorCode'
spaceship-operation-id:
required: true
schema:
$ref: '#/components/schemas/operationId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnexpectedError'
tags:
- SellerHub
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSellerHubDomainRequest'
description: Create request payload
x-scopes:
- sellerhub:write
x-codeSamples:
- lang: javascript
source: "const url = 'https://spaceship.dev/api/v1/sellerhub/domains';\nconst options = {\n method: 'POST',\n headers: {\n 'X-API-Key': 'REPLACE_KEY_VALUE',\n 'X-API-Secret': 'REPLACE_KEY_VALUE',\n 'content-type': 'application/json'\n },\n body: JSON.stringify({\n description: 'Premium domain for sale',\n displayName: 'SpaceShip.com',\n binPriceEnabled: true,\n binPrice: {amount: '10.99', currency: 'USD'},\n minPriceEnabled: true,\n minPrice: {amount: '10.99', currency: 'USD'},\n name: 'spaceship.com'\n })\n};\n\nfetch(url, options)\n .then(res => res.json())\n .then(json => console.log(json))\n .catch(err => console.error(err));"
- lang: php
source: "<?php\nrequire_once('vendor/autoload.php');\n\n$client = new \\GuzzleHttp\\Client();\n\n$response = $client->request('POST', 'https://spaceship.dev/api/v1/sellerhub/domains', [\n 'body' => '{\"description\":\"Premium domain for sale\",\"displayName\":\"SpaceShip.com\",\"binPriceEnabled\":true,\"binPrice\":{\"amount\":\"10.99\",\"currency\":\"USD\"},\"minPriceEnabled\":true,\"minPrice\":{\"amount\":\"10.99\",\"currency\":\"USD\"},\"name\":\"spaceship.com\"}',\n 'headers' => [\n 'X-API-Key' => 'REPLACE_KEY_VALUE',\n 'X-API-Secret' => 'REPLACE_KEY_VALUE',\n 'content-type' => 'application/json',\n ],\n]);\n\necho $response->getBody();"
- lang: python
source: "import requests\n\nurl = \"https://spaceship.dev/api/v1/sellerhub/domains\"\n\npayload = {\n \"description\": \"Premium domain for sale\",\n \"displayName\": \"SpaceShip.com\",\n \"binPriceEnabled\": True,\n \"binPrice\": {\n \"amount\": \"10.99\",\n \"currency\": \"USD\"\n },\n \"minPriceEnabled\": True,\n \"minPrice\": {\n \"amount\": \"10.99\",\n \"currency\": \"USD\"\n },\n \"name\": \"spaceship.com\"\n}\nheaders = {\n \"X-API-Key\": \"REPLACE_KEY_VALUE\",\n \"X-API-Secret\": \"REPLACE_KEY_VALUE\",\n \"content-type\": \"application/json\"\n}\n\nresponse = requests.post(url, json=payload, headers=headers)\n\nprint(response.text)"
- lang: shell
source: "curl --request POST \\\n --url https://spaceship.dev/api/v1/sellerhub/domains \\\n --header 'X-API-Key: REPLACE_KEY_VALUE' \\\n --header 'X-API-Secret: REPLACE_KEY_VALUE' \\\n --header 'content-type: application/json' \\\n --data '\n{\n \"description\": \"Premium domain for sale\",\n \"displayName\": \"SpaceShip.com\",\n \"binPriceEnabled\": true,\n \"binPrice\": {\n \"amount\": \"10.99\",\n \"currency\": \"USD\"\n },\n \"minPriceEnabled\": true,\n \"minPrice\": {\n \"amount\": \"10.99\",\n \"currency\": \"USD\"\n },\n \"name\": \"spaceship.com\"\n}\n'"
/v1/sellerhub/domains/reports/sold:
get:
operationId: getSoldDomains
summary: Get sold domains
description: "Returns a cursor-paginated list of domains that have been sold through SellerHub.\n\nThis endpoint uses cursor-based pagination. To retrieve the first page, omit the `cursor` query parameter.\nFor subsequent pages, pass the `cursor` value from the previous response.\n\n### Pagination\n- Set `take` to control the page size (1-100).\n- If the response includes a `cursor`, more results are available.\n- If `cursor` is absent, you have reached the last page.\n\n### Filtering\n- Filter by sale time range using `saleDateTimeFrom` (inclusive) and `saleDateTimeTo` (exclusive).\n- Both bounds accept a full ISO-8601 UTC datetime. When both are specified, `saleDateTimeFrom` must be strictly earlier than `saleDateTimeTo`.\n- Each bound can be provided independently. Providing only `saleDateTimeFrom` returns all sales from that time onwards; providing only `saleDateTimeTo` returns all sales before that time.\n\n### Required Permissions \n\n - <a href=\"#scopes/sellerhub:read\">sellerhub:read</a>\n\n### Rate Limits \n\n * The limit for fetching sold domains is 300 requests per user, within 300 seconds."
parameters:
- name: take
in: query
required: true
description: Number of response items per page. Required; integer between 1 and the operation-specific upper bound.
schema:
type: integer
format: int32
minimum: 1
maximum: 100
explode: false
- name: cursor
in: query
required: false
description: Opaque pagination cursor for fetching the next page of results. Obtained from the `cursor` field in a previous response. Omit on the first request.
schema:
type: string
pattern: ^[A-Za-z0-9+/=_-]+$
maxLength: 2048
explode: false
- $ref: '#/components/parameters/GetSoldDomainsQueryParams.saleDateTimeFrom'
- $ref: '#/components/parameters/GetSoldDomainsQueryParams.saleDateTimeTo'
responses:
'200':
description: Cursor-paginated response carrying a page of sold-domain rows
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/SoldDomainResponse'
maxItems: 100
cursor:
type: string
maxLength: 2048
pattern: ^[A-Za-z0-9+/=_-]+$
description: Opaque paginati
# --- truncated at 32 KB (131 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spaceship/refs/heads/main/openapi/spaceship-sellerhub-api-openapi.yml