Home · API and AI agents
Agent Ready

Buy backlinks from an AI agent, or via API

The Nautilinks catalog is also reachable by API and by MCP server. An agent (Claude, ChatGPT, Cursor…) can look up a site, build an order and hand you the payment link. You are the one who pays, always.

Create my account See the API reference
✓ API key auth✓ Remote MCP server✓ Payment always human

Nautilinks sells backlinks directly, with no marketplace and no commission, on a network of sites we publish ourselves. This page describes machine access to that same catalog: a REST API and an MCP server, designed so an LLM agent can look up a relevant site, place an order and track its progress, without a human filling in a form.

The principle stays the same as on the rest of the site: the catalog queried by API is public in its logic, prices are the same ones shown to humans, and nothing is charged unless a human clicks a Stripe payment link. The agent prepares, the human approves.

Getting started

Three steps to connect an agent

  1. Create a Nautilinks account. Free sign-up, no card requested at this stage. This is the account that receives invoices and, ultimately, pays via Stripe.
  2. Generate an API key. In the member area, under "My account" then "API keys". The key (format sn_live_...) is shown once, copy it immediately. Up to 5 active keys per account, revocable at any time.
  3. Connect the MCP server or call the API. Two equivalent paths: an MCP client (Claude Code, claude.ai, Cursor…) talking to the mcp.nautilinks.co server, or direct HTTP calls to /api/v1/agent/*. The JSON contract is identical on both sides.
No package to install

Connect the MCP server

Remote server on Cloudflare (streamable HTTP transport), no session or state kept on the Nautilinks side. Every call carries your own API key.

Claude Code
claude mcp add --transport http nautilinks https://mcp.nautilinks.co/mcp \
  --header "Authorization: Bearer sn_live_your_key"
claude.ai — Settings → Connectors → Add custom connector
URL: https://mcp.nautilinks.co/mcp
Header: Authorization: Bearer sn_live_your_key
If the client does not support a custom header
https://mcp.nautilinks.co/mcp?key=sn_live_your_key

Seven tools exposed: introduce the network (about), search for a site (search_sites), read its profile (get_site), create an order (create_order), track a quote (get_quote_status), list orders (list_orders) and get the detail of one (get_order_status). Same data contract as the REST API below, one MCP tool per resource.

/api/v1/agent/*

API reference for agents

Method
Endpoint
Returns
Scope
GET
/api/v1/agent/catalog
Lists network sites on the Foundation shelf, filterable and paginated.
read
GET
/api/v1/agent/catalog/:id
Full profile of a site (metrics, price, niche).
read
POST
/api/v1/agent/orders
Creates an order for 1 to 20 links, returns a Stripe payment link.
order
GET
/api/v1/agent/orders
Lists orders placed with this key.
read
GET
/api/v1/agent/orders/:id
Detailed per-link status (to assign, published…) and the published URL once live.
read
GET
/api/v1/agent/quotes/:id
Checks a quote to see whether payment has been made and under which order number.
read

Authentication

Every call carries the header Authorization: Bearer sn_live_.... The key belongs to a human account: any order created via API is attached to that account, invoiced to its address, and visible in its member area just like an order placed from the web cart. A freshly created key carries both scopes (read and order) by default.

Order idempotency

The optional Idempotency-Key header avoids duplicates in case of a network replay (timeout, automatic retry on the agent side). A second call with the same value does not create a new order: it returns the same quote and, if a Stripe payment is already in progress, the same payment_url rather than opening a second one.

Daily cap

An anti-abuse cap applies per API key, of the order of twenty orders per day. Once reached, the API replies with 429 and the code daily_order_cap_reached. An identical replay (same Idempotency-Key) never counts twice.

Payment stays human

Creating an order charges no one. The response contains a payment_url field, a standard Stripe Checkout link, to be opened by the human who owns the account. Once paid, an existing webhook turns the quote into an order and triggers publication of the link, with no extra step on the agent's side.

End to end

Full example, catalog then order

1. Search for a site in the Foundation catalogue
curl -s "https://nautilinks.co/api/v1/agent/catalog?niche=voyage&max_price=5&limit=5" \
  -H "Authorization: Bearer sn_live_your_key"
Response (abridged)
{
  "ok": true,
  "count": 1,
  "total": 1,
  "sites": [
    {
      "id": 214,
      "domain": "exemple-voyage.fr",
      "niche_label": "Voyage",
      "language": "fr",
      "tf": 14,
      "traffic_monthly": 2100,
      "price_eur": 5
    }
  ]
}
2. Create the order
curl -s -X POST "https://nautilinks.co/api/v1/agent/orders" \
  -H "Authorization: Bearer sn_live_your_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: cmd-2026-07-24-01" \
  -d '{
    "items": [
      {
        "site_id": 214,
        "target_url": "https://votre-site.fr/page-cible/",
        "anchor_text": "assurance voyage longue duree",
        "anchor_type": "partial"
      }
    ]
  }'
Response
{
  "ok": true,
  "quote_id": "qt_8f2c...",
  "total_eur": 5,
  "payment_url": "https://checkout.stripe.com/c/pay/...",
  "items_count": 1
}

The agent hands payment_url to the human. Once payment goes through, GET /api/v1/agent/quotes/qt_8f2c... returns the resulting order_id, then GET /api/v1/agent/orders/:id tracks the link through to publication.

Frequently asked questions

Can an AI agent pay on its own, without human involvement?

No, and this is deliberately not supported in V1. Creating an order returns a Stripe payment link (payment_url): a human has to open it and pay. The API builds the order, it never charges a card by itself.

Which links can be bought via API today?

Only the Foundation links shelf: links priced at 5 euros each, on an automatable fulfilment path. Higher-traffic sites (Traffic shelf, variable pricing) remain reserved to the member area for now, while this channel is being validated.

What happens after payment?

The existing Stripe webhook turns the quote into an order, exactly like a purchase made from the web cart. Foundation links are then auto-assigned (unless the internal kill switch has reverted to manual mode), then follow the usual path through to publication.

Is there a daily order limit?

Yes, an anti-abuse cap applies per API key (around twenty orders per day by default). Beyond that, the API replies 429 with the code daily_order_cap_reached. A replay with the same Idempotency-Key never consumes this quota twice.

Does the MCP server require a local install?

No, it is a remote server (Cloudflare Worker) over streamable HTTP, no npm package to install. It only relays your API key to the Nautilinks API, without storing anything on its side.

Can I test it without commitment?

The read scope (reading the catalog, orders, quotes) is included by default in every key, alongside the order scope. You can browse the catalog via API before placing your first order.

One API key, and your agent buys links

Create an account, generate your key in the member area, connect the MCP server or call the API. The Foundation links catalogue is available today.

Create my account See the full catalog