Let’s PickMy Car
Prices · Bengaluru

Appearance

Developer platform

API and MCP documentation

One account, one balance, and consistent results across both interfaces.

Start with REST

  1. Activate developer access using an account with a verified primary email.
  2. Create an API key. Keep it in your server’s environment as PMC_API_KEY.
  3. Send it in Authorization: Bearer …. Never put credentials in a URL.
curl 'https://letspickmycar.com/api/v1/cars?q=brezza&price=onroad&loc=KA' \
  -H "Authorization: Bearer $PMC_API_KEY" \
  -H 'Idempotency-Key: my-first-car-search'
// Run on your server. Never embed API keys in browser code.
const response = await fetch(
  'https://letspickmycar.com/api/v1/recommendations',
  { method: 'POST', headers: {
      Authorization: `Bearer ${process.env.PMC_API_KEY}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': 'family-shortlist-1'
    }, body: JSON.stringify({ budget: 1500000, gearbox: 'auto',
      loc: 'KA', price: 'onroad', seats: 5, charging: 'no' }) }
);
const result = await response.json();
if (!response.ok) throw new Error(result.error.message);
console.log(result.data, result.usage);
import json, os, urllib.request
request = urllib.request.Request(
    'https://letspickmycar.com/api/v1/balance',
    headers={'Authorization': 'Bearer ' + os.environ['PMC_API_KEY']}
)
with urllib.request.urlopen(request) as response:
    print(json.load(response))  # Balance checks cost 0 credits.

Connect through MCP

Activate the Free plan first. Add https://letspickmycar.com/mcp as a remote Streamable HTTP server in your client. Complete browser sign-in with the same account. API keys also work in clients that support an Authorization header.

The server supports stateless calls and a legacy stateless compatibility path. It does not provide SSE sessions, background tasks or push notifications. Client support varies; no specific client is certified until its live authentication flow has passed verification.

Try: “Find five automatic family cars under ₹15 lakh on-road in Karnataka. Explain the tradeoffs and link your sources.” The assistant can discover the tools, read pmc://reference for valid inputs and call get_credit_balance for free.

Each successful tool call costs one credit. MCP discovery and reference resources cost zero. For a retry, reuse the optional requestKey with identical arguments within 24 hours; a new question needs a new key.

API reference

OpenAPI 3.1 specification · Brands, locations, features and filter values

All paths below start with /api/v1. Lists default to 10 results, maximum 20 per page. Recommendations return up to five matches; sales requests return up to 12 months.

GET /cars

Search car models by text, brand, fuel and budget.

MCP: search_cars · 1 credit

GET /cars/{carId}

Get a sourced car overview, recommended picks and safety scope.

MCP: get_car · 1 credit

GET /cars/{carId}/variants

List exact variants of a model, with prices and powertrains.

MCP: list_variants · 1 credit

GET /cars/{carId}/variants/{variantId}

Get exact equipment, scoped safety and estimated pricing for one variant.

MCP: get_variant · 1 credit

POST /recommendations

Shortlist up to five cars using budget, needs and charging access.

MCP: recommend_cars · 1 credit

POST /variant-recommendations

Recommend up to five variants within one model, with reasons and unmet preferences.

MCP: recommend_variants · 1 credit

POST /comparisons

Compare two or three exact variants side by side.

MCP: compare_cars · 1 credit

POST /variant-upgrades

Compare the cost and equipment gained or lost between two variants of one model.

MCP: compare_variant_upgrade · 1 credit

POST /pricing/on-road

Estimate a catalogue variant's on-road cash outlay in a registration jurisdiction.

MCP: estimate_on_road_price · 1 credit

POST /pricing/states

Rank initial on-road cash outlay for one exact variant across all 36 jurisdictions; preserve tax periods and unsupported estimates.

MCP: compare_state_prices · 1 credit

POST /calculators/running-cost

Calculate energy costs and optional break-even between two fuel or charging scenarios.

MCP: calculate_running_cost · 1 credit

POST /calculators/emi

Calculate EMI, total interest and the effective rate of a flat or reducing-balance car loan.

MCP: calculate_emi · 1 credit

GET /rankings

Read methodology-based budget rankings; scores are not road-test results.

MCP: get_rankings · 1 credit

GET /sales/{familyId}

Get up to 12 dated monthly sales observations for a model family, including grouping and source scope.

MCP: get_sales_history · 1 credit

Authenticated GET /balance and GET /usage cost zero credits. Usage returns the latest 100 records within 90 days. Public reference metadata and OpenAPI require no key.

A three-call buying workflow

  1. Call recommend_cars with budget, location and preferences. Save the returned exact car and variant IDs.
  2. Pass two or three of those references to compare_cars.
  3. Call estimate_on_road_price for the selected variant and registration location.

This costs three credits. Include our attribution and the returned guide/source links when showing results.

Credits, retries and errors

  • 50 credits on activation, renewed monthly on the same UTC anniversary. Short months use their last day; unused credits expire.
  • Every successful bounded result costs one credit, including a valid search with no matches. Comparing three variants or all states still costs one credit.
  • Validation failures, missing resources and server errors do not charge credits. Rate limits still apply.
  • Use Idempotency-Key for REST retries within 24 hours. Reusing it with different inputs returns 409 IDEMPOTENCY_CONFLICT. Without a retry key, a repeated request is a new billable call.
  • All authenticated REST and MCP requests share a 120-request per-minute account limit, including invalid requests. Metered calls allow 10 requests per minute per account. Authenticated control/MCP transport requests allow 60 per minute; the response supplies retry guidance when limited.
  • 429 CREDITS_EXHAUSTED includes your renewal time. 429 RATE_LIMITED means retry after the indicated delay.

Successful responses contain data, assumptions, datasetRevision, attribution, requestId and usage. Money is in INR rupees. Credit metadata is private and must not be shared through a public response cache.

Interpret the data correctly

Default pricing is estimated Karnataka on-road. Pass price=ex for ex-showroom prices and loc for a registration jurisdiction. Estimates are for new privately owned cars; registration eligibility and local charges need confirmation. State rankings compare initial cash outlay, including the reported tax period, rather than lifetime cost.

Keep unknown values as null. Preserve source check dates, crash-rating applicability and EV charging assumptions. Sales figures can cover several related models and always identify the reporting month and family.

Lakshadweep estimates require local confirmation and return no verified on-road total. Use ex-showroom mode for catalogue search or recommendations there.

Calculation methodology · Developer terms