Back to SiteLauncher v1.0
Developer Documentation

SiteLauncher API

Programmatic access to SiteLauncher. Register domains, deploy sites, and manage your web presence through a simple REST API. Pay with USDC on Base.

Quick Start

Check domain availability
GET /api/check-domain?name=pepecoin
Send USDC payment on Base
Transfer USDC to 0x13c1416cA450413E5579e5Bef312B09a680c1Dfd on Base chain. Amount depends on service type.
Submit your order
POST /api/order with your tx hash, service type, and site details.
Poll for completion
GET /api/order-status?tx=0x... every 3-5 seconds until completed: true. Instant services return the live URL immediately in step 3.

Endpoints

GET /api/health
Service health check. Returns status, configuration, and available service types.
Response
{
  "status": "ok",
  "parent_domain": "sitelauncher.xyz",
  "dry_run": false,
  "services": ["instant-agent", "instant-degen", "create-agent", "create-degen", "update-agent", "update-degen", "update-custom", "renew", "renew-custom"]
}
GET /api/check-domain?name={name}
Check if a .xyz domain is available for registration.
Parameters
name required Domain name without TLD. Example: pepecoin (checks pepecoin.xyz)
Response
{
  "available": true,
  "premium": false
}
Rate limited to ~1 check per 10 seconds (Porkbun API constraint).
GET /api/parent-domains
List available parent domains for instant subdomains.
Response
{
  "domains": [
    "sitelauncher.xyz",
    "lobstersite.xyz",
    "lobsteragent.xyz",
    "blobster.xyz",
    "clawbster.xyz"
  ]
}
GET /api/domain-capacity
Check remaining custom domain registration capacity in the current 24-hour window.
Response
{
  "available": true,
  "remaining": 8,
  "limit": 10,
  "resets_in": 43200
}
Maximum 10 custom domain registrations per 24-hour rolling window.
POST /api/order
Submit a new order. Verifies USDC payment on-chain before processing. Each tx hash can only be used once.
Common Fields (all services)
service required Service type. See Services table.
txHash required Transaction hash of USDC payment on Base chain.
sender required Wallet address that sent the payment. Used for ownership verification.
Instant Subdomain (instant-agent, instant-degen)
subdomain required Subdomain name (e.g. "pepecoin" for pepecoin.sitelauncher.xyz)
parent_domain optional Parent domain from /api/parent-domains. Default: sitelauncher.xyz
token_name required Display name. Also accepts agent_name.
ticker required* Ticker symbol (required for degen style)
description required Project description
logo_url optional URL to logo image (http/https)
twitter_url optional Twitter/X profile URL
telegram_url optional Telegram group URL
discord_url optional Discord invite URL
contract_address optional Token contract address
chain optional Blockchain name: Base, ETH, Solana, BSC, AVAX
primary_color optional Hex color (e.g. "#ff00ff")
secondary_color optional Hex accent color
Custom Domain (create-agent, create-degen)
custom_domain required Full domain with .xyz (e.g. "pepecoin.xyz")
+ site content fields Same fields as instant (token_name, description, etc.)
Update (update-agent, update-degen, update-custom)
domain required The domain to update (e.g. "pepecoin.sitelauncher.xyz" or "pepecoin.xyz")
+ changed fields only Only include fields you want to change
Renew (renew, renew-custom)
domain required Domain to renew for 1 year
Response
// Instant services - URL returned immediately
{
  "success": true,
  "url": "https://pepecoin.sitelauncher.xyz",
  "domain": "pepecoin.sitelauncher.xyz"
}

// Custom domain services - poll /api/order-status with tx_hash
{
  "success": true,
  "tx_hash": "0xabc123...",
  "message": "Order created. Deploying pepecoin.xyz..."
}
GET /api/order-status?tx={txHash}
Poll the status of a custom domain order. Stages progress in order.
Parameters
tx required Transaction hash from the /api/order response.
Response
{
  "stage": "dns",
  "completed": false,
  "url": null,
  "error": null
}
Stages (in order)
StageDescription
paymentPayment verified
domain-checkChecking domain availability
registerRegistering domain with registrar
dnsConfiguring DNS records
waitingWaiting for DNS propagation + SSL certificate
buildGenerating site files
deployDeploying to web server
liveSite is live. completed: true, url contains the live URL.
Poll every 3-5 seconds. The waiting stage (DNS + SSL) can take 5-30 minutes for new domains.
GET /api/my-sites?wallet={address}
List all sites owned by a wallet address.
Parameters
wallet required Wallet address (the sender address used when creating the site)
Response
{
  "sites": [
    {
      "domain": "pepecoin.sitelauncher.xyz",
      "url": "https://pepecoin.sitelauncher.xyz",
      "type": "subdomain",
      "style": "degen",
      "created_at": "2026-03-01T12:00:00+00:00"
    }
  ],
  "count": 1
}

Service Types

ServiceDescriptionPrice
instant-agentInstant subdomain, agent style1 USDC
instant-degenInstant subdomain, degen style1 USDC
create-agentCustom .xyz domain, agent style10 USDC
create-degenCustom .xyz domain, degen style10 USDC
update-agentUpdate existing agent site1 USDC
update-degenUpdate existing degen site1 USDC
update-customUpdate custom domain site1 USDC
renewRenew subdomain registration (1 year)16 USDC
renew-customRenew custom domain (1 year)16 USDC

Instant services deploy immediately. Custom domain services run asynchronously (domain registration, DNS, SSL provisioning).

Payment

All payments are USDC transfers on the Base network. The transaction hash from your transfer serves as the order identifier.

ParameterValue
NetworkBase (Chain ID 8453)
TokenUSDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Recipient0x13c1416cA450413E5579e5Bef312B09a680c1Dfd
Decimals6 (1 USDC = 1000000 raw units)
Each transaction hash can only be used for one order. The payment must be >= the service price and sent to the correct recipient.

Field Normalization

The API normalizes some field names for backward compatibility. You can use either form.

You SendStored As
agent_nametoken_name
secondary_coloraccent_color
twitter_urltwitter
telegram_urltelegram
discord_urldiscord

Example: Deploy an Instant Degen Site

# 1. Check subdomain availability (optional for subdomains)
curl https://sitelauncher.xyz/api/check-domain?name=pepecoin

# 2. Send 1 USDC to the receive wallet on Base chain
#    (use ethers.js, web3.py, or any wallet SDK)
#    Save the transaction hash from the transfer

# 3. Submit the order
curl -X POST https://sitelauncher.xyz/api/order \
  -H "Content-Type: application/json" \
  -d '{
    "service": "instant-degen",
    "txHash": "0xYOUR_TX_HASH_HERE",
    "sender": "0xYOUR_WALLET_ADDRESS",
    "subdomain": "pepecoin",
    "token_name": "PepeCoin",
    "ticker": "PEPE",
    "description": "The most legendary frog on the blockchain",
    "twitter_url": "https://x.com/pepecoin",
    "contract_address": "0x6982508145454Ce325dDbE47a25d4ec3d2311933",
    "chain": "Base"
  }'

# Response (instant - URL returned immediately):
# {
#   "success": true,
#   "url": "https://pepecoin.sitelauncher.xyz",
#   "domain": "pepecoin.sitelauncher.xyz"
# }

Custom Domain Example (Async)

# 1. Check domain availability
curl https://sitelauncher.xyz/api/check-domain?name=pepecoin
# {"available": true, "premium": false}

# 2. Send 10 USDC, then submit order
curl -X POST https://sitelauncher.xyz/api/order \
  -H "Content-Type: application/json" \
  -d '{
    "service": "create-degen",
    "txHash": "0xYOUR_TX_HASH",
    "sender": "0xYOUR_WALLET",
    "custom_domain": "pepecoin.xyz",
    "token_name": "PepeCoin",
    "ticker": "PEPE",
    "description": "The most legendary frog on the blockchain"
  }'

# Response includes tx_hash for polling:
# {"success": true, "tx_hash": "0xYOUR_TX_HASH", "message": "..."}

# 3. Poll for status
curl https://sitelauncher.xyz/api/order-status?tx=0xYOUR_TX_HASH
# {"stage": "register", "completed": false, "url": null, "error": null}

# ... keep polling every 5 seconds ...

# {"stage": "live", "completed": true, "url": "https://pepecoin.xyz", "error": null}