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:

LanderintakeStyle
Buy it NowBUYNOW
Request PricePRICE_FORM
Custom LanderCUSTOM_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 statusNext step
ACTIVEFast Transfer is active.
AWAITING_OPT_INComplete your registrar's opt-in process.
INACTIVE_BUYNOW_MISSINGSet a Buy Now price.
INACTIVE_BUYNOW_HIGHCheck your price against current Fast Transfer criteria.
INELIGIBLE_REGISTRAR or INELIGIBLE_TLDCheck whether the registrar or extension meets current eligibility criteria.
PENDING_REVIEWCheck 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.

On this page