Import, export & Smart Template (multi-aftermarket CSV)
How globNIC ingests Afternic, Sedo, GoDaddy, Dynadot, Spaceship, and generic CSV; export formats; and limits from the import API.
What “Smart Template Import” means in code
- The upload handler
POST /api/member/domains/importonly accepts.csvfiles viamultipart/form-datafieldfile. - The server reads the file as text and runs
parseCSVfromsrc/lib/csv-parser.ts, with optional manual platform override from form fieldplatform: one ofafternic|sedo|godaddy|dynadot|spaceship|generic(omitting it triggers header-based auto-detect). - Auto-detect inspects the header row for known signatures (e.g. Afternic, Sedo
fixed_price, GoDaddy markers, etc.). If nothing matches, imports fall back to the Generic column map.
In practice: you can import an export that came from another aftermarket or registrar without hand-editing, as long as the CSV has a recognizable domain column and a price column the mapper knows — the parser maps alternate header names to internal fields, maps prices to integer cents (parsePrice), and assigns a tier from the buy-now value.
Supported column detection (import)
From PLATFORM_MAPPINGS (non-exhaustive list of header aliases the parser looks for):
- Domain column: e.g.
domain,Domain Name,domainname, etc. (per platform map). - Buy now / list price column: e.g.
Buy Now Price,fixed_price,Buy Now,price— normalized to cents after stripping$, commas, and symbols. - Optional floor / min offer / category where defined for that platform (see the mapping table in the source file for exact strings).
If both parser errors and zero parsed rows: the API returns 400 with a joined error string and the detected/forced platform name.
Member UI — import
Limits and plan rules (enforced in the API)
- Max rows per file:
MAX_DOMAINS_PER_IMPORT= 500 accepted parsed domains per upload (larger files error before insert). - Free / Navigator (50-domain portfolio cap): The route counts your active assets (
deletedAt: null). If the CSV would push you over 50 slots, the API returns 403 with upgradeUrl/pricingand a remainingSlots number when applicable. - Strategist+: Unlimited domain count in code (
isFreePlanfalse skips the 50 check). - Soft-deleted duplicates: If a name exists only as trash for you, the import can restore and merge CSV pricing. If a soft-deleted name belonged to another member, the route hard-deletes the stale row so a new owner can claim the domain.
- Active duplicates are skipped and returned in the
duplicatesarray. - Invalid rows may appear in
skippedwith a human reason (e.g. bad domain or price).
Strategist (capitalization in some messages) is the paid plan referenced in copy when upgrading from free limits.
Export (simple globNIC CSV)
- Button: “Export My Domains” on the import page →
GET /api/member/domains/export - Rows: Non-hidden, non-deleted member domains. Columns:
domain,price,category,status,views,description,createdAt(price in dollars with decimals in the file — note this differs from cent integer storage in other APIs). - Empty portfolio:
404“No domains to export. Add some domains first!”
Transfer export (other marketplaces)
-
From Bulk Operations or direct API,
POST /api/member/domains/transfer-exportsupports:csv(wide globNIC-style),json(structured, prices in dollars as numbers),godaddy,sedo,afternic-shaped CSV exports,- Request body: optional
domainsarray (max 500 entries) and/orincludeAllboolean (export entire owned portfolio if valid per handler).
-
Use the Transfer Export tile on
/member/domains/bulk-operations; choose a format in the panel before downloading.
RAG / LLM quick facts
- Import:
multipartfieldfile; optionalplatform. Only CSV. Smart detection + manual override. Cents internally. - Export (simple):
GET— CSV download with marketing-friendly columns. - Transfer export:
POST— JSON/CSV, marketplace-specific.