{
  "object": "doc",
  "title": "How do I make my first Cartroute API call?",
  "description": "Create an account, get a key, and search Amazon, Best Buy and eBay in under a minute.",
  "section": "Getting started",
  "url": "https://cart-route.com/docs/quickstart",
  "updated": "2026-09-23",
  "prev": "https://cart-route.com/docs",
  "next": "https://cart-route.com/docs/authentication",
  "text": "Create a free account, create an API key in the dashboard, and call `GET https://cart-route.com/api/v1/search` with the key in the `Authorization` header. The whole path takes about a minute and the first 200 searches are free.\n\r\n\r\n\n## Step 1: How do I get an account and credits?\n\r\n[Sign up](https://cart-route.com/signup) with your name, email and a password. 100 credits are added immediately. Click the link in the confirmation email and 100 more are added, once. An agent can also register on a person's behalf with [`POST /api/v1/accounts`](https://cart-route.com/docs/api/accounts).\n\r\n\r\n\n## Step 2: How do I create an API key?\n\r\nOpen the [dashboard](https://cart-route.com/dashboard), name the key (for example \"production agent\") and press Create key. The key starts with `cr_live_` and is shown exactly once, because Cartroute stores only its hash. Put it in an environment variable:\n\r\n\n```\nexport CARTROUTE_API_KEY=\"cr_live_...\"\n```\n\r\n\r\n\n## Step 3: How do I run the first search?\n\r\n\r\n  curl\r\n  Python\r\n  TypeScript\r\n\n\r\n\n```\ncurl \"https://cart-route.com/api/v1/search?q=noise+cancelling+headphones+under+%24400&condition=new\" \\\r\n  -H \"Authorization: Bearer $CARTROUTE_API_KEY\"\n```\n\r\n\n```\nimport os\r\nimport requests\r\n\r\nresp = requests.get(\r\n    \"https://cart-route.com/api/v1/search\",\r\n    params={\"q\": \"noise cancelling headphones under $400\", \"condition\": \"new\"},\r\n    headers={\"Authorization\": f\"Bearer {os.environ['CARTROUTE_API_KEY']}\"},\r\n    timeout=15,\r\n)\r\nresp.raise_for_status()\r\nfor product in resp.json()[\"results\"]:\r\n    s = product[\"price_summary\"]\r\n    print(product[\"title\"], \"-\", s[\"best_retailer\"], s[\"best_effective_price_usd\"])\n```\n\r\n\n```\nconst url = new URL(\"https://cart-route.com/api/v1/search\");\r\nurl.searchParams.set(\"q\", \"noise cancelling headphones under $400\");\r\nurl.searchParams.set(\"condition\", \"new\");\r\n\r\nconst res = await fetch(url, {\r\n  headers: { Authorization: `Bearer ${process.env.CARTROUTE_API_KEY}` },\r\n});\r\nif (!res.ok) throw new Error((await res.json()).detail);\r\nconst body = await res.json();\r\nfor (const p of body.results) {\r\n  console.log(p.title, p.price_summary.best_retailer, p.price_summary.best_effective_price_usd);\r\n}\n```\n\r\n\r\n\n## What comes back?\n\r\nA `search_result` with the products that matched, each carrying `price_summary`, `price_insight` and an `offers` array. This is a trimmed real response from the catalog:\n\r\n\r\n\n```\n{\n  \"object\": \"search_result\",\n  \"data_source\": \"live\",\n  \"query\": \"sony wh-1000xm6\",\n  \"total_results\": 1,\n  \"results\": [\n    {\n      \"id\": \"prd_0dophw3\",\n      \"title\": \"Sony WH-1000XM6 Wireless Noise Cancelling Headphones\",\n      \"price_summary\": {\n        \"best_offer_id\": \"off_0f10sq01vb\",\n        \"best_retailer\": \"eBay\",\n        \"best_effective_price_usd\": 291.26,\n        \"lowest_price_usd\": 199.99,\n        \"highest_price_usd\": 378,\n        \"spread_usd\": 178.01,\n        \"offers_count\": 31,\n        \"in_stock_count\": 31,\n        \"best_condition\": \"new\",\n        \"offers_by_condition\": {\n          \"new\": 20,\n          \"used\": 8,\n          \"renewed\": 3\n        },\n        \"coupons_count\": 0\n      },\n      \"price_insight\": {\n        \"verdict\": \"typical_price\",\n        \"reason\": \"Current lowest price is within the normal 90-day range ($180.00–$259.99).\"\n      },\n      \"offers\": [\n        {\n          \"retailer\": \"eBay\",\n          \"price_usd\": 280,\n          \"shipping_usd\": 11.26,\n          \"effective_price_usd\": 291.26,\n          \"availability\": {\n            \"in_stock\": true\n          }\n        }\n      ]\n    }\n  ],\n  \"credits\": {\n    \"charged\": 1,\n    \"remaining\": 199\n  }\n}\n```\n\r\n\r\nCompare offers on `effective_price_usd`. Every field is described in [response objects](https://cart-route.com/docs/objects).\n\r\n\r\n\n## What should I read next?\n\r\n\r\n\n- [Search reference](https://cart-route.com/docs/api/search): filters, sorting, budgets and pagination.\r\n\n- [MCP server](https://cart-route.com/docs/mcp): skip the HTTP code and give an agent the tools directly.\r\n\n- [Errors](https://cart-route.com/docs/errors) and [retries](https://cart-route.com/docs/idempotency): what to do when a call fails."
}