Already listed? Migrate to the Gateway
Listings are now self-serve. Instead of us adding or editing your service by hand, you manage it yourself in the Gateway. The old admin-managed listing is being retired. Your current listing keeps serving agents in the meantime, so nothing breaks the moment you read this - but make new changes in the Gateway.
The one thing to get right
How your API gets charged:
- If the URL we listed for you already returns HTTP 402 (you run your own x402), do NOT point the Gateway at that same URL - it would try to charge twice. Point the Gateway at your underlying API (the normal, non-402 one) and let the Gateway add the payment layer. You can then stop maintaining your own x402.
- If your API is a normal HTTP API (no 402 of its own), point the Gateway straight at it.
- Prefer not to move the payment layer? You can keep self-hosting your x402 endpoint; it still works. The Gateway is the recommended path because you stop maintaining 402 logic and get a dashboard.
Migrate in 5 steps (dashboard, no code)
- Sign in at xdcai.tech/gateway with your email.
- In Settings, set your payTo (the XDC address where you receive USDC). The same address you use today is fine.
- New service: name, your underlying API base URL, description, tags, and how we authenticate to your API. Create it.
- Add endpoint for each route you charge for: method, path (for example
/v1/summary/:id), and price in USDC. Use0for a free route. Set the same prices you have today. - Toggle Make public to list it in the marketplace.
Your endpoints are then callable at https://api.xdcai.tech/x402/connect/<serviceId>/<your-path>.
Or migrate from the CLI
npx xdcai@latest login
npx xdcai@latest gateway add --json '{
"name": "Your Service",
"upstreamBaseUrl": "https://api.yourservice.com",
"description": "What it does.",
"tags": ["your", "tags"],
"isPublic": true,
"payTo": "0xYourReceivingAddress",
"auth": { "method": "bearer", "secret": "sk_live_your_upstream_token" },
"routes": [
{ "method": "GET", "path": "/v1/summary/:id", "priceUSDC": "0.01", "capability": "summary" }
]
}'
npx xdcai@latest gateway list # your services + callable URLs
npx xdcai@latest gateway publish <slug> # list / unlist with --off
See Service JSON for the full shape and the auth methods. For pricing, payTo, and networks see Overview.
What happens to my old listing
It stays live and callable until the old marketplace is fully retired. Once you recreate the service in the Gateway and make it public, point people at the new one. Ask us if you want the old entry removed.