Namecheap Market
API
Automation

Namecheap Auctions API: What It Does and What to Build

Namecheap ships an official Auctions API with signed webhooks. Here is what the four endpoints expose, what a monitor-and-bid loop looks like, and build vs. buy.

Mark FultonMark FultonOct 16, 12:00 AM UTC8 min read
Namecheap Auctions API

Namecheap has an official Auctions API, and it is small: four endpoints to list auctions, fetch one auction, list your own bids and place a bid, plus five signed webhook events that tell you when you are outbid, when you win, when you are the runner-up, and when an auction ends or closes early. You generate a key in the Market dashboard, save a webhook URL next to it, and you can build a monitor-and-bid loop in a weekend. What the API will not do for you is decide which names are worth bidding on, and that is where most home-built bots fall over. I have bought domains at auction for twenty years and I run my own monitoring against this API, so here is what it exposes, how I would structure a loop, and an honest build-versus-buy answer.

What is the Namecheap Auctions API?

It is a customer API for the Auctions side of Namecheap Market. Namecheap’s beginner’s guide to the Auctions API describes it as a way to connect your own website or application to the platform so you can automate bidding and track auctions. Two details from that page trip people up.

  • It is not the Namecheap API. The Auctions API works only for domains listed on Auctions. Managing or reselling regular domains is the other, older API, and the two use different keys.
  • You must be a Market user first. The key is generated in the Market dashboard, so the onboarding steps in how Namecheap Market auctions work come before any code. Resetting the key kills anything running on the old one immediately.

Namecheap’s own API reference is the source for the endpoint details below. It also states that the account needs a verified phone number, and that without one every endpoint returns a 403. If your first call fails with a 403 and your code looks fine, check the phone verification before you debug anything else.

What do the four endpoints give you?

CallWhat it doesWhat to use it for
GET /salesLists auctions with cursor pagination and filters (name, price range, TLD, start and end dates, ordering)The pull side of a monitor
GET /sales/{saleId}Returns one auction by its IDRe-checking a name just before you act
GET /user/bidsLists the bids on your accountReconciling what you think you hold
POST /sales/{saleId}/bidsPlaces a bid with a maximum amountThe only call that spends money

The bid call takes a maximum, not a price. Per the reference, the system automatically bids the minimum needed to win up to that maximum, which is ordinary proxy bidding, the same mechanism I describe in Namecheap proxy bidding explained. The list call is the part that rewards some thought: filtering at the source by TLD and price range keeps your loop from pulling the whole board every time.

Why do the webhooks matter more than polling?

You can poll the list endpoint on a timer, but the webhooks tell you the events that are time-sensitive without you asking. There are five.

  • AUCTION_OUTBID: another bidder exceeded your maximum. The payload carries the new leading bid and your previous bid, so you can decide whether to raise.
  • AUCTION_WINNER: you won, and the payload carries the final bid amount. The payment clock starts here.
  • AUCTION_WINNER_RUNNERUP: you were second. If the winner does not complete payment, you may be offered the name at your bid.
  • AUCTION_ENDED: the scheduled end arrived. It fires whether or not anyone bid, so check the bid count before you treat it as a sale.
  • AUCTION_CLOSED: the auction closed early, typically because the registrant renewed or transferred the name.

Notice what is missing: there is no “bid placed” event. The API tells you when you lose position, not when you take it, so your own code has to record every bid it submits. Bids you place by hand in the Namecheap interface are invisible to you until you read /user/bids.

Every webhook body is shaped as an event object plus a signature field. To trust a request, compute an HMAC SHA-256 of the event using your webhook secret key and compare it with the signature. Skip that check and your webhook URL is just an open endpoint that anyone can post a fake “you won” message to. Keep the key and the secret in environment variables, never in a repository.

What does a minimal monitor-and-bid loop look like?

Here is the architecture I would sketch for a first version, with the failure mode of each stage marked.

StageWhat it doesWhere it breaks
1. PullPage through the list endpoint with your TLD and price filters on a scheduleHammering the endpoint. Keep to a modest request rate and roll spare work to the next tick
2. Filter and scoreDrop what fails your rules, rank what survivesRules that are too loose bury you; too tight and you never bid
3. NotifySend yourself the survivorsA noisy alert gets muted, and then it does nothing
4. BidPlace one proxy maximum, early, on a name you approvedRetrying a failed call without reading your bids back first
5. ReactVerify and handle outbid, winner and runner-up webhooksUnverified signatures, or a handler that times out and loses events

On rate limits: the spec I read does not publish a number, so I build against a conservative figure of roughly twenty requests a minute per key and let anything over that wait for the next pass. Treat that as a working assumption, not a Namecheap guarantee, and watch your own responses.

Stage 4 deserves the most paranoia, because it is the only one that can cost you money. Never put a bid call in a blind retry loop. If a request times out you do not know whether the bid landed, so read /user/bids first and act on what the account actually shows. Start with the bid step switched off and let the loop only notify you. Prove stages 1 to 3 on real data for a week before any code you wrote is allowed to spend anything.

Build or buy: what a weekend script will not cover

If you can write the loop, I would encourage it. You will learn the platform quickly, and a person who builds their own monitor still ends up a better bidder. But the API is the easy 20% of the job. Here is the rest, and it all comes from the rules in Namecheap’s Auctions Bidding Guide.

  • Account gates. Bidding needs a verified phone number, a Market subscription and a minimum account balance of $100, and new users must hold $1,000 in account funds to place a bid of $10,000 or more. A script that does not check these learns about them from an error.
  • The increment ladder. Increments run from $1 at the low end to $500 above $25,000. Your ceiling and the real price interact with those steps in ways a flat “add $1” model gets wrong.
  • The five-minute extension. A bid in the last five minutes extends the remaining time to five minutes. A bot built to fire at the last second is fighting the platform’s own design, which is why the better move is an early proxy maximum, as I argue in how to win domain auctions.
  • Judgment. Nothing in the API tells you whether a name is any good. Scoring, comps, backlink checks and renewal costs are your problem.

That last item is the reason PounceDomains exists. It reads the same official feed around the clock, scores and enriches each ending-soon name against the configs you set, and alerts you so you can bid in one click. Auto-bid is there as an optional extra for people who want it, and it stays off until you turn it on. I wrote about the scoring side in AI domain scoring, and the full picture of how these tools fit together is in the domain sniping tool guide.

What should you build first?

  1. Generate the key, save a webhook URL and confirm one successful list call.
  2. Verify the webhook signature before doing anything with the payload.
  3. Build the filter and the notification. No bidding yet.
  4. Log every bid your code submits, since the API will not announce it.
  5. Add the bid call last, with one proxy maximum per name and a hard spend cap.

If you would rather skip the plumbing and start from the finished discovery layer, you can try PounceDomains. And if you build it yourself, you are working with the same official feed, which is exactly the safe way to automate.

Frequently asked questions

Does Namecheap have an auctions API?

Yes. Namecheap Market has an official Auctions API with four endpoints (list auctions, get one auction, list your bids, place a bid) and five webhook events. It is separate from the regular Namecheap API, uses its own key, and the key and webhook URL are set in the Market dashboard.

Can I automate Namecheap bidding?

Yes, through the official API. You place a proxy bid with a maximum amount and Namecheap bids the minimum needed up to it. The normal account rules still apply, including the verified phone number, the Market subscription and the minimum balance, and a bid placed in the last five minutes extends the auction by five minutes.

Is the Namecheap Auctions API the same as the Namecheap API?

No. The Auctions API only covers domains listed on Namecheap Auctions and needs its own API key. Managing or reselling regular domains uses the separate Namecheap API with different credentials.

Mark Fulton

Mark Fulton

Developer & Founder of PounceDomains · 20+ year domain investor

Mark Fulton is a 20+ year domain investor and the developer and founder of PounceDomains. He has spent two decades buying, building, and flipping domain names, and built PounceDomains himself to automate the hunt for undervalued domains on the Namecheap aftermarket.

Keep reading

Snipe these domains automatically

PounceDomains watches Namecheap Market 24/7, scores every ending-soon domain with AI, and bids on the winners. Free to start.

Start sniping free