Common Workflows
Add domains, keep listings up to date, and review how your portfolio is doing.
Use these workflows to add domains, keep listings up to date, and see how your portfolio is doing.
Examples show the full request. Replace the sample domains and prices with your own. For the optional
X-Request-Id header, use a new UUID you generate for each request.
Add a domain to your portfolio
Add a single domain
Endpoint: Create domain
Start with your domain's name, prices, and lander settings. Use lowercase for name, and the IDNA2008 ASCII
form for internationalized domains, such as xn--exmple-cua.de.
Prices are whole-dollar USD amounts in microunits: multiply each dollar amount by 1,000,000. Here's a domain with a $5,000 Buy Now price, a $100 minimum offer, and a sales lander:
curl -X POST 'https://api.afternic.com/v3/aftermarket/customers/my/domains' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET' \
-H 'Content-Type: application/json' \
-d '{
"name": "example.com",
"buynowPrice": 5000000000,
"minbidPrice": 100000000,
"landingPage": "SALES_TYPE",
"intakeStyle": "BUYNOW"
}'A successful request returns 201 Created. Next, retrieve the domain to check its settings and listStatus:
curl -X GET 'https://api.afternic.com/v3/aftermarket/customers/my/domains/example.com' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET'Your listing may still need ownership verification or another action before it's active. Check its progress with the status workflow below.
Add or update multiple domains
Endpoint: Upsert multiple domains
For several domains, send a batch of up to 500. An upsert adds new domains and can update existing listings, so check the names and settings before sending it.
curl -X POST 'https://api.afternic.com/v3/aftermarket/customers/my/domains/$each/upsert' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET' \
-H 'Content-Type: application/json' \
-d '{
"domains": [
{
"name": "example.com",
"buynowPrice": 5000000000, "minbidPrice": 100000000,
"landingPage": "SALES_TYPE", "intakeStyle": "BUYNOW"
},
{
"name": "example.net",
"buynowPrice": 2500000000, "minbidPrice": 100000000,
"landingPage": "SALES_TYPE", "intakeStyle": "BUYNOW"
}
]
}'You'll get a result for each domain, keyed by name. Check each code and any error details, even if the
overall response is 200 OK. Correct failed entries and resubmit only those that still need changes.
Split larger inventories into batches of 500 or fewer. To change existing listings while keeping other
settings, use PATCH as shown below.
For CSV files, use the Jobs API. Create a job, upload the file, and monitor jobState.
Once it's complete, check totalFailures and download the results. Uploading a file doesn't mean every
domain has been processed successfully.
Change your settings
Change prices
Endpoint: Update domain
Check the domain's current settings first. Use PATCH to update the fields you want to change and keep the
rest as they are. Here, we're setting the Buy Now price to $7,500:
curl -X PATCH 'https://api.afternic.com/v3/aftermarket/customers/my/domains/example.com' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET' \
-H 'Content-Type: application/json' \
-d '{"buynowPrice": 7500000000}'A successful 200 OK includes the updated domain; check that the values match your changes. A
204 No Content response has no JSON body, so retrieve the domain again to check its current values.
You can also change settings such as floorPrice, minbidPrice, or hidden. See the
Domains reference for each field's details.
For a group selected by price or status, collect all matching names before making changes. Otherwise, your updates can shift the results on later pages. Afterward, retrieve the domains again to check their saved values.
Change your lander settings
Choose how buyers see your domain and get in touch. For a sales lander, set landingPage to SALES_TYPE,
then choose an intakeStyle:
| Lander | intakeStyle |
|---|---|
| Buy it Now | BUYNOW |
| Request Price | PRICE_FORM |
| Custom Lander | CUSTOM_LANDER |
For a parking page, set landingPage to PARKING_TYPE.
Update one domain
Endpoint: Update domain
Check the domain's current settings first. This example switches it to a Custom Lander showing Buy it Now and Make Offer:
curl -X PATCH 'https://api.afternic.com/v3/aftermarket/customers/my/domains/example.com' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET' \
-H 'Content-Type: application/json' \
-d '{
"landingPage": "SALES_TYPE",
"intakeStyle": "CUSTOM_LANDER",
"showLanderBuynowOption": true,
"showLanderMakeOfferOption": true,
"showLanderLeaseToOwnOption": false
}'Make sure your prices and lease settings support the options you show. Check the returned lander fields and
prices. PATCH keeps omitted settings unchanged.
Apply the change to a group
Endpoints: Get multiple domains by name, Update domain, Upsert multiple domains
For lander-only changes, use the same PATCH for each domain in your reviewed list. First, retrieve and save
their current settings, up to 500 names at a time:
curl -X POST 'https://api.afternic.com/v3/aftermarket/customers/my/domains/$each/get' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET' \
-H 'Content-Type: application/json' \
-d '{"names": ["example.com", "example.net"]}'Send a PATCH for each returned domain, choosing the same lander or different settings per name. Stay within
150 requests per minute, including reads.
Check that each successful response shows your chosen lander and unchanged prices. Record failures. For a
204 or uncertain result, retrieve the domain before retrying.
If you maintain complete listing data, use the upsert endpoint for up to 500 domains, as shown above. Include each domain's other writable settings and prices alongside the lander fields. Check each result; upserts can create missing listings.
To set defaults for future additions, use the AccountSettings API. Existing listings need the updates above.
For landers to appear, domains need Afternic nameservers set up.
Check listing and Fast Transfer status
Endpoint: Get domain
After adding a domain, or whenever a listing needs attention, request its listing and Fast Transfer details together:
curl -X GET 'https://api.afternic.com/v3/aftermarket/customers/my/domains/example.com?includes=fastTransferStatus' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET'Check listStatus and fastTransferStatus separately. A listing can be ACTIVE while Fast Transfer still
needs attention. For pending or inactive listings, check Afternic for the next step. Before changing an
ON_HOLD or SOLD domain, review its sale.
Here's what some Fast Transfer statuses mean for your next step:
| Fast Transfer status | Next step |
|---|---|
ACTIVE | Fast Transfer is active. |
AWAITING_OPT_IN | Complete your registrar's opt-in process. |
INACTIVE_BUYNOW_MISSING | Set a Buy Now price. |
INACTIVE_BUYNOW_HIGH | Check your price against current Fast Transfer criteria. |
INELIGIBLE_REGISTRAR or INELIGIBLE_TLD | Check whether the registrar or extension meets current eligibility criteria. |
PENDING_REVIEW | Check Afternic for review details or contact Support. |
Complete any required registrar authorization, then retrieve the domain again to check its status. If you're unsure what to do next, contact the Afternic Support Team.
To check up to 500 domains together, use Get multiple domains by name
with includes=fastTransferStatus and a body such as {"names": ["example.com", "example.net"]}. Compare the
returned names with your list and check any missing entries.
Keep an external inventory in sync
Endpoint: Get domains
If you keep an inventory outside Afternic, start by retrieving your portfolio in a consistent order:
curl -X GET 'https://api.afternic.com/v3/aftermarket/customers/my/domains?limit=50&offset=0&order=NAME_ASC' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET'Save each page's domains array and follow pagination.next when available. You can also increase offset
by the number of domains returned, keeping the same page size and order. Keep going until you have the full
portfolio.
Compare the export with your inventory. Add domains you own and want to list, and update only the settings your inventory controls. Check removals against current ownership, sales, and transfers. If the portfolio changed during the export, refresh it before deciding what to remove.
Once you've confirmed a removal, delete the listing:
Endpoint: Delete domain
curl -X DELETE 'https://api.afternic.com/v3/aftermarket/customers/my/domains/example.net' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET'Success returns 204 No Content. This removes the Afternic listing; you'll still manage registration through
your registrar.
Apply additions and updates using the workflows above. Then retrieve the affected domains and run a fresh export to check that your portfolio matches your inventory.
Review portfolio activity
Endpoints: Get account stats, Get domain stats
Use the Stats endpoints to see daily views and leads for your portfolio or a single domain. These examples cover 30 days starting September 1, 2026:
curl -X GET 'https://api.afternic.com/v3/aftermarket/customers/my/stats?startDate=2026-09-01T00:00:00Z&days=30' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET'
curl -X GET 'https://api.afternic.com/v3/aftermarket/customers/my/stats/example.com?startDate=2026-09-01T00:00:00Z&days=30' \
-H 'Authorization: sso-key YOUR_API_KEY:YOUR_API_SECRET'Set startDate to your reporting period's start in UTC, and choose days from 1 through 366. The stats
array contains daily date, views, and leads values. Use matching date ranges when comparing results.