# Spaceship Integration via LowCodeAPI
## Overview
Spaceship is an ICANN-accredited domain registrar providing domain registration and management services. The Spaceship API offers:
- **Domain Management** - Register, renew, and transfer domains
- **DNS Management** - Configure DNS records and settings
- **Domain Lists** - Browse and search available domains
- **Whois** - Retrieve domain ownership information
## Base Endpoint
```
https://api.lowcodeapi.com/spaceship/
```
## Authentication
LowCodeAPI handles authentication automatically using API Key and Secret headers. You only need to:
1. **Sign up** at [Spaceship](https://www.spaceship.com) to get your API Key and Secret
2. **Connect your account** in the LowCodeAPI dashboard
3. **Use your `api_token`** in all requests
The `api_token` is your LowCodeAPI authentication token. LowCodeAPI will automatically:
- Fetch your Spaceship API key and secret
- Apply them to each request via X-Api-Key and X-Api-Secret headers
**Auth Type**: API Key (Header - dual authentication)
## API Categories
- **Domain & Hosting** - Domain registration and management
## Common Endpoints
### Category: Domains
#### Get Domain List
**Method**: `GET` | **LowCodeAPI Path**: `/v1/domains`
**Full URL**:
```
https://api.lowcodeapi.com/spaceship/v1/domains?api_token={api_token}
```
**Description**: Retrieve a paginated list of domains in your account.
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `skip` | string | No | Number of response items to skip |
| `take` | integer | No | Number of response items per page |
| `orderBy` | array | No | Specifies fields and order to sort response items |
**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains?take=50&api_token=YOUR_API_TOKEN"
```
**Official Documentation**: [Get Domains](https://docs.spaceship.dev/#tag/Domains)
---
#### Get Domain Details
**Method**: `GET` | **LowCodeAPI Path**: `/v1/domains/domain_id`
**Full URL**:
```
https://api.lowcodeapi.com/spaceship/v1/domains/domain_id?id={domain_id}&api_token={api_token}
```
**Description**: Retrieve detailed information about a specific domain.
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Domain identifier or domain name |
**Example Request**:
```bash
# Replace DOMAIN_ID with actual domain ID or domain name
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/domain_id?id=example.com&api_token=YOUR_API_TOKEN"
```
**Official Documentation**: [Get Domain](https://docs.spaceship.dev/#tag/Domains)
---
#### Check Domain Availability
**Method**: `GET` | **LowCodeAPI Path**: `/v1/domains/check`
**Full URL**:
```
https://api.lowcodeapi.com/spaceship/v1/domains/check?domain={domain}&api_token={api_token}
```
**Description**: Check if a domain is available for registration.
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `domain` | string | Yes | Domain name to check |
**Example Request**:
```bash
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/check?domain=mynewdomain.com&api_token=YOUR_API_TOKEN"
```
**Official Documentation**: [Check Domain](https://docs.spaceship.dev/#tag/Domains)
---
### Category: DNS
#### Get DNS Records
**Method**: `GET` | **LowCodeAPI Path**: `/v1/domains/domain_id/dns`
**Full URL**:
```
https://api.lowcodeapi.com/spaceship/v1/domains/domain_id/dns?id={domain_id}&api_token={api_token}
```
**Description**: Retrieve DNS records for a domain.
**Query Parameters**:
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Domain identifier or domain name |
**Example Request**:
```bash
# Replace DOMAIN_ID with actual domain ID or domain name
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/domain_id/dns?id=example.com&api_token=YOUR_API_TOKEN"
```
**Official Documentation**: [Get DNS](https://docs.spaceship.dev/#tag/DNS)
---
## Usage Examples
### Example 1: List Domains
Browse all domains in your account:
```bash
# Get first page of domains
# No ID needed - lists all domains
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains?take=50&skip=0&api_token=YOUR_API_TOKEN"
# Get next page
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains?take=50&skip=50&api_token=YOUR_API_TOKEN"
```
### Example 2: Check Domain Availability
Check if domains are available:
```bash
# Check single domain
# No ID needed - checks availability
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/check?domain=mybusiness.com&api_token=YOUR_API_TOKEN"
# Check multiple domains
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/check?domain=mybusiness.net&api_token=YOUR_API_TOKEN"
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/check?domain=mybusiness.org&api_token=YOUR_API_TOKEN"
```
### Example 3: Get Domain Details
View detailed domain information:
```bash
# Get domain details
# Replace DOMAIN_ID with actual domain name or ID
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/domain_id?id=example.com&api_token=YOUR_API_TOKEN"
# Get DNS records for domain
# Replace DOMAIN_ID with actual domain name or ID
curl -X GET "https://api.lowcodeapi.com/spaceship/v1/domains/domain_id/dns?id=example.com&api_token=YOUR_API_TOKEN"
```
## Complete Endpoint Reference
For a complete list of all 22 endpoints and their parameters, refer to:
- **OpenAPI Definition**: https://backend.lowcodeapi.com/spaceship/definition
- **Official Spaceship Documentation**: https://docs.spaceship.dev
## Rate Limits & Best Practices
- **Rate Limit**: Refer to your Spaceship plan for rate limits
- **Best Practices**:
- Use pagination for large domain lists
- Cache domain availability results
- Store domain IDs for efficient updates
- Implement proper error handling for registration conflicts
- Use appropriate DNS record types for your needs
## Error Handling
All responses are wrapped in a `data` key:
```json
{
"data": {
// Actual response from Spaceship
}
}
```
Common errors:
- **400**: Invalid request parameters
- **401**: Invalid API credentials
- **404**: Domain not found
- **409**: Domain unavailable or conflict
- **429**: Rate limit exceeded