Full life cycle in one API

Search and availability

Query single names or entire lists of second‑level domains and get instant availability with alternative suggestions.

Register and renew

Create new domains or extend existing ones with transparent pricing.

Transfer

Move domains individually or in bulk and track each stage.

Manage nameservers and DNS

Update delegation and edit A, AAAA, MX, TXT, CNAME, and other records.

Check status

Bring live info on long-running tasks like transfers or large renewals.

Built for scale

Bulk actions

Search, register, or renew dozens of domains in one call. Ideal for portfolios with hundreds of names.

High throughput

Endpoints accept large payloads and return structured JSON responses with predictable codes.

Structured errors

Error messages arrive as JSON objects with clear codes and fields rather than generic HTML pages, making it easy to handle failures.

Smart suggestions

Bulk search returns close alternatives and trending choices to help with brand protection.

Keep users in your flow and stay in control

Sandbox integration

Test your domain operations in a safe environment at no cost.

Reminders and status

Receive expiry reminders and query endpoints for registration or transfer status.

Portfolio consolidation

Transfer domains from multiple registrars and manage them in one account.

Audit-ready logs

Detailed records of who did what and when, ready for your SIEM.

Security audits

The API and infrastructure are externally pentested and audited.

Auto-renew rules

Set renewal logic to ensure domains never lapse.

Secure and dependable

Competitive pricing, strong security, and transparent policies underpin the API. It offers:

Strong authentication

Keys tied to whitelisted IPs with signed requests; supports two-factor authentication and locks.

Redundant infrastructure

Built on the same platform that powers the SpaceLama domain portal, with DNSSEC and automatic renewal options.

24/7 support

Direct access to technical staff who understand API integrations.

No hidden fees

Clear cost per operation and the same transparency found in SpaceLama's pricing.

cURL
import requests

# DNS zone details; requires logged-in WHMCS client cookie
url = "https://spacelama.com/spacelama/api/domains/dns/index.php"
params = {"domain": "example.net", "zone_id": 42}
headers = {"Cookie": "PHPSESSID=YOUR_SESSION"}  # WHMCS client session cookie

response = requests.get(url, params=params, headers=headers)
response.raise_for_status()
zone_payload = response.json()
// DNS zone GET; sends WHMCS client session cookies on same origin
const params = new URLSearchParams({
  domain: "example.net",
  zone_id: "42",
});
const baseUrl = "https://spacelama.com/";
const url =
  baseUrl + "spacelama/api/domains/dns/index.php?" + params.toString();
const res = await fetch(url, { credentials: "same-origin" });
const zonePayload = await res.json();
using System;
using System.Net.Http;

// DNS zone GET; paste Cookie copied from logged-in WHMCS client browser
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Cookie", "PHPSESSID=YOUR_SESSION");
var url =
    "https://spacelama.com/spacelama/api/domains/dns/index.php?domain="
    + Uri.EscapeDataString("example.net")
    + "&zone_id=42";
var response = await client.GetAsync(url);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

// DNS zone GET
HttpClient http = HttpClient.newHttpClient();
URI uri =
    URI.create(
        "https://spacelama.com/spacelama/api/domains/dns/index.php?domain=example.net&zone_id=42");
HttpRequest req =
    HttpRequest.newBuilder(uri)
        .header("Cookie", "PHPSESSID=YOUR_SESSION")
        .GET()
        .build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
<?php
// DNS zone GET; only works with an authenticated WHMCS client session
$url = 'https://spacelama.com/spacelama/api/domains/dns/index.php';
$query = http_build_query([
    'domain' => 'example.net',
    'zone_id' => 42,
]);
$context =
    stream_context_create([
        'http' => [
            'header' => 'Cookie: PHPSESSID=YOUR_SESSION',
        ],
    ]);
$response =
    file_get_contents($url . '?' . $query, false, $context);
$data = json_decode($response, true);
require "net/http"
require "uri"
require "json"

# DNS zone GET; Cookie from logged-in WHMCS client session
uri = URI("https://spacelama.com/spacelama/api/domains/dns/index.php")
uri.query =
  URI.encode_www_form([["domain", "example.net"],
                       ["zone_id", "42"]])
req = Net::HTTP::Get.new(uri)
req["Cookie"] = "PHPSESSID=YOUR_SESSION"

res =
  Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
    http.request(req)
  end
data = JSON.parse(res.body)
# DNS zone GET — replace Cookie values from authenticated WHMCS client session
curl -G "https://spacelama.com/spacelama/api/domains/dns/index.php" \
  --cookie "PHPSESSID=YOUR_SESSION" \
  --data-urlencode "domain=example.net" \
  --data-urlencode "zone_id=42"

Get access fast

Send a request:

Use the form below to outline your use case and expected domain volume; no login is required to view docs.

Receive credentials:

Our team reviews your request, sets up API keys, and configures IP whitelists.

Start testing:

Call the staging environment immediately, then switch to production when ready.

Ready to automate?

Request an API key, and we’ll send it to your email within 48 hours.

API key request submitted

We’ll send your API key to your email within 48 hours. If you don’t receive it by then or experience any issues using it, please contact support.

Sign up to get an API key

To get an API key, please sign in to your account or create a new one.