← White Lands Pricing
v1REST · JSONBearer auth

White Lands API

Generate white pages programmatically — create an order, poll its status, download the ZIP. Same engine, same prices as the website. Billed from your prepaid balance.

1. Get an API key

Keys are created from your account. You must top up your balance to at least $10 to create a key. Each generation is then charged from that balance (1 credit = $1) — no balance, nothing is generated.

2. Authentication

Send your key as a Bearer token on every /api/v1 request:

Authorization: Bearer wl_live_xxxxxxxxxxxxxxxxxxxx

3. Generate

POST/api/v1/generate
FieldTypeDefaultNotes
page_typestringlandinglanding · corporate · blog
pagesint31–50 pages, landing only. corporate is 7+ pages, blog is always the standard (12+ content pages, 8+ of them articles) — both plus Privacy, Terms and Cookies
countint55–100 white pages (minimum 5, as on the website): $4 each, $3.50 each from 100; $3.50 at any count once your account has had a $400+ top-up
nichestringrandome.g. "solar panels". Empty = auto
target_langstringenISO code, e.g. es, de
geostringrequiredISO-2 country of the offer, e.g. US, MX, DE — addresses, phones and currency follow it. Missing or unknown → 400 before anything is charged. The full list: GET /api/v1/geos (no key needed)
reactboolfalseignored — the React add-on is off sale since 2026-09-27
curl -X POST https://white-lands.com/api/v1/generate \
 -H "Authorization: Bearer $WL_KEY" \
 -H "Content-Type: application/json" \
 -d '{"page_type":"landing","pages":3,"count":5,"niche":"solar","geo":"US","target_lang":"en"}'

Response:

{
 "ok": true,
 "order_id": 412,
 "cost_usd": 23,
 "balance_after_usd": 77,
 "count": 5,
 "status": "queued",
 "poll": "/api/v1/orders/412"
}

4. Check status & download

GET/api/v1/orders/{id}

Poll every ~20–30s. When status is done, downloads holds signed ZIP links (valid 30 days) for all expected_lands. partial means some are ready (ready_lands of expected_lands) and the rest is being finished — download what is there and keep polling. cancelled and failed are final.

curl https://white-lands.com/api/v1/orders/412 \
 -H "Authorization: Bearer $WL_KEY"

{
 "order_id": 412,
 "status": "done", // queued | generating | partial | done | failed | cancelled
 "expected_lands": 1,
 "ready_lands": 1,
 "downloads": [
 {"slug":"solar-grid-x9", "url":"https://white-lands.com/api/delivery/solar-grid-x9?t=..."}
 ]
}

5. Balance

GET/api/v1/balance
curl https://white-lands.com/api/v1/balance -H "Authorization: Bearer $WL_KEY"
{ "balance_usd": 77 }

Full example (Python)

import requests, time
H = {"Authorization": "Bearer " + WL_KEY}
B = "https://white-lands.com"

r = requests.post(f"{B}/api/v1/generate",
 headers=H, json={"page_type":"landing","pages":3,"count":5,"geo":"US"}).json()
oid = r["order_id"]
print("order", oid, "cost $", r["cost_usd"])

while True:
 s = requests.get(f"{B}/api/v1/orders/{oid}", headers=H).json()
 print(s["status"])
 if s["status"] in ("done","failed","cancelled"): break
 time.sleep(30)

for d in s.get("downloads", []):
 print("download:", d["url"])
Pricing is identical to the website (volume discounts apply by count). Every type costs the same: $4 per white page, $3.50 from 100 or once your account has had a $400+ top-up. Check the live cost in the cost_usd field — it's deducted at order time, before generation.
Top-up. Add balance yourself at /topup (USDT (TRC20/BEP20), with volume bonuses), then create a key here.

Errors

CodeMeaning
401Missing / invalid / revoked key
402Insufficient balance for this order
400Bad parameters (type/size/count/geo)
404Order not found (or not yours)
429Rate limit (60 generations / hour / key)