Skip to content

Guide · November 2026

Product search API for AI agents, with attribution

A product search API for AI agents takes a shopping question and returns products a person can buy, with the disclosure text to show beside them and a token that credits the sale. Clickless's Agent API and MCP server do that for direct brands: search by what the person wants, show at most three results, and send the person to the brand's own checkout.

Last updated

AI Product Experts that sell. You pay only when they do.

Clickless is brand-expert agents that help sell a brand's products and offers 24/7. Clickless: AI Product Experts that sell. You pay only when they do. The commerce layer for AI agents. A Product Expert answers for one brand. The API is the same commerce layer for an agent a developer builds. Brands pay only when it sells, with no setup fee and no monthly fee. Developers are paid from the commission Clickless receives.

1

What does the search return?

The call is POST /v1/offers/search on https://api.getclickless.ai. The API reference is the field list. Two fields are required: intent, the product need in the person's words, and ship_to.country. Leave names, emails, phone numbers and street addresses out of intent. Region and postal code on ship_to are optional. limit runs from 1 to 10 and defaults to 3.

The path says "offers" because that is the resource name. The discount the person sees is the deal, in deal.summary, and you show that summary as it arrived.

Each result you might show carries:

  • Product title, price in integer cents after the deal, currency, and availability. price_cents is the price after the deal, before tax and shipping.

  • Brand name and domain.

  • disclosure_text, shown beside the product, word for word, every time you present it.

  • sponsored. When it is true, label the result sponsored.

  • A fresh attribution_token, and checkout.url, the link the person taps. Approved keys receive both on every result.

Show three products at most, even when you asked for more so you could filter. Those showing rules are part of the creator and developer terms. Quote the price, the deal and the availability as returned. Do not invent a discount, a price or a stock status. To re-check a price later, call GET /v1/offers/{offer_id}. That read has no token. Search again before you show the product to a person, so the sale can be credited.

The API reference, read November 5, 2026, lists 120 requests a minute per key. Past that, the response is 429 with Retry-After set. The OpenAPI description sets a daily search quota of 1,000 searches a day by default.

2

How do you search, approve and hand off?

Keys come after an invite and review. Join the waitlist. The button on For developers opens that list. Self-serve trial keys are coming soon. Production accepts a live key for one agent, sent as Authorization: Bearer plus the key.

The quickstart has the same calls in TypeScript, Python and curl. This is the shape:

const api = "https://api.getclickless.ai";
const headers = {
  Authorization: `Bearer ${process.env.CLICKLESS_API_KEY}`,
  "Content-Type": "application/json",
};

const search = await fetch(`${api}/v1/offers/search`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    intent: "daypack for weekend hikes, with a laptop sleeve",
    ship_to: { country: "US", region: "AZ" },
    limit: 3,
  }),
});
const { offers } = await search.json();
if (offers.length === 0) throw new Error("No products for that intent");

// After the person says yes to this product.
const token = offers[0].attribution_token;
await fetch(`${api}/v1/attribution/approve`, {
  method: "POST",
  headers,
  body: JSON.stringify({ token }),
});
const handoff = await fetch(`${api}/v1/checkout/handoff`, {
  method: "POST",
  headers,
  body: JSON.stringify({ token }),
}).then((response) => response.json());
// Send the person to handoff.url. Pass handoff.discount_code along when it is set.

A shortened example of one result. Example data, fictional brand. The live disclosure_text is whatever the response contains, and that is the line you show.

{
  "offers": [
    {
      "product": {
        "title": "Weekend daypack",
        "price_cents": 17010,
        "currency": "USD",
        "availability": "in_stock"
      },
      "brand": { "name": "Summit Trail Co.", "domain": "summittrail.example" },
      "deal": { "summary": "Deal already reflected in the price" },
      "sponsored": false,
      "disclosure_text": "Heads up: I earn from links I share.",
      "attribution_token": "4fK2pQ9xLm3TzR8vB1nW7c",
      "checkout": {
        "method": "link",
        "url": "https://go.getclickless.ai/t/4fK2pQ9xLm3TzR8vB1nW7c"
      }
    }
  ]
}
Two backpack recommendations from the Product Expert, each showing the discounted price and a button to view it on the brand's own store.
Example brand (fictional). Example data.

Summit Trail Co. is a fictional outdoor brand. The numbers on the screen are example data, not a reported result. The person pays the brand, and the brand ships. Clickless never takes the payment and never holds the goods.

3

How is the sale credited?

The token is how the sale is traced from the result you showed to the order in the brand's store.

  1. Search returns a new attribution token on every result you might show.

  2. Show disclosure_text with that product before any link.

  3. The person says yes to that specific product. Then call POST /v1/attribution/approve with the token. Do not approve for them, and do not buy on their behalf.

  4. Call POST /v1/checkout/handoff with the same token. Give the person url, and discount_code when the response includes one. Do not open, fetch or preview that URL. The brand's checkout charges the card. For a direct brand, the link is the brand's page with the token attached.

  5. The store reports the order. Shopify stores report it on their own. Stores not on Shopify send their order export each week to be matched.

  6. Without that store report, POST /v1/conversions/report records a claim, not a sale. A claim earns nothing unless the brand's records match it. The earnings page shows the balance while you wait.

One order is credited to one agent. It is not billed twice. A token more than 60 days old has expired, and the API reference says to search again. An order that did not start from an ad is credited within 60 days of the product being shown.

Developers are paid from the commission Clickless receives. Payouts are rolling out. Until they switch on, earnings wait in the balance.

5

Should you call REST or MCP?

The Model Context Protocol (revision 2025-11-25, published November 25, 2025) is an open protocol for connecting tools to an LLM application. A server exposes tools a client can call.

Clickless's MCP server is the same service as the REST API, at https://mcp.getclickless.ai/mcp, with the same live key in the Authorization header. search_offers maps to the search call and returns three results at most. approve and checkout_handoff map to the two calls above. get_offer re-checks price, deal and availability and returns no token.

Use REST when you want to filter in your own code, then show three. Use MCP when the agent already speaks the protocol and you want each tool's description to carry the showing rules: disclosure text on every result, three at most, no invented prices, and approval after the person says yes.

6

How do other product search APIs credit a sale?

IntentLink and Channel3 also publish product search APIs. The lines below are from their own pages, read November 5, 2026. Re-check a page before you depend on a field name. Clickless is not affiliated with either company, or with Amazon or Walmart.

  • What you search

    Clickless
    Direct brands, by what the person wants. Network catalogs follow as each network approves sharing them.
    IntentLink
    Shopping, travel and live events. Their docs name connected platforms such as Amazon and Walmart.
    Channel3
    They say 100 million products from over 25,000 brands, by words or by a picture.
  • What comes back for credit

    Clickless
    Disclosure text, a deal summary, an attribution token, and the brand's checkout link.
    IntentLink
    A trackable purchase link on each result (buy_url or affiliate_url). Your agent_id credits the click or the purchase.
    Channel3
    They say many product offers include a monetizable purchase link, with tracking built in.
  • Who charges the card

    Clickless
    The brand, on the brand's own checkout.
    IntentLink
    Their docs describe the trackable link. They do not describe a handoff into the brand's checkout.
    Channel3
    Their developers page marks checkout "Coming soon".
  • How you get access

    Clickless
    Waitlist, then an invite and review.
    IntentLink
    An agent_id from their signup. Their docs, updated July 24, 2026, call the API beta.
    Channel3
    A developer account on their site.

When to choose IntentLink. Their documentation, last updated July 24, 2026, covers shopping plus hotels, flights and tickets, labels the API beta, and says a typical search is under one second at the 90th percentile. Choose them when the agent needs travel or events as well as products, after you read the current parameters.

When to choose Channel3. Their developers page, accessed November 5, 2026, says the catalog is 100 million products across 25,000 retailers, with picture search, monetizable links and a median search latency of 800 milliseconds, and marks programmatic checkout as coming soon. Choose them when you want that wider catalog, after you read the commission terms on their site.

When to choose Clickless. Choose Clickless when the person should finish on the brand's own checkout, see a disclosure line, and have the sale credited to one agent. Developers are paid from the commission Clickless receives. Payouts are rolling out. Clickless does not control which products another company's model names. For the earning side of recommendations, see the affiliate program for AI agents.

7

What do you check before the agent ships?

Walk one real question through search, approval and handoff. Confirm the disclosure text is visible, three products at most are shown, approval waits for a yes, the agent does not fetch the handoff link, intent has no personal data, and a saved product is searched again so the token is new.

The API reference lists the errors: a missing field, a bad key, a token that was never approved, an expired token, or a checkout that cannot take the order. Join the waitlist at getclickless.ai/agent-developers. Put the showing-offers rules in the agent's instructions.

Sources

  1. Model Context Protocol, Specification revision 2025-11-25, published November 25, 2025: modelcontextprotocol.io/specification/2025-11-25
  2. IntentLink, Integrate into Your Agent, last updated July 24, 2026, accessed November 5, 2026: intentlink.io/docs
  3. Channel3, Build any agentic shopping experience, accessed November 5, 2026: trychannel3.com/developers
  4. Clickless API reference, accessed November 5, 2026: getclickless.ai/docs/api
  5. Clickless showing-offers guide, accessed November 5, 2026: getclickless.ai/docs/showing-offers
  6. Clickless MCP server guide, accessed November 5, 2026: getclickless.ai/docs/mcp
  7. Clickless OpenAPI description, accessed November 5, 2026: getclickless.ai/docs/openapi.yaml

Questions developers ask

What is a product search API for AI agents?

A product search API takes a shopping question and returns products a person can buy, with a price, a link and a way to credit the sale. Clickless's search is for direct brands: show at most three results, each with disclosure text and an attribution token, then send the person to the brand's own checkout.

How does Clickless credit a sale to an agent?

Search issues an attribution token. After the person agrees to that product, record the approval and request the checkout link. The brand charges the card and the store reports the order. One order is credited to one agent. Developers are paid from the commission Clickless receives. Payouts are rolling out, so earnings wait in the balance until payouts switch on.

How many products should the agent show?

Show three at most. The REST search can return up to ten so you can filter, and the person still sees three. The MCP tool search_offers returns three at most.

How do I get an API key?

Join the waitlist at getclickless.ai/agent-developers. Keys come after an invite and review. Self-serve trial keys are coming soon.

Who charges the shopper?

The shopper pays on the brand's own checkout, and the brand ships. Clickless never takes payment or holds goods. Brands pay only when it sells, with no setup fee and no monthly fee.

Join the waitlist for a key.

Once you’re invited: get approved, create a live key, then search, approve, hand off, and see the conversion land.