# ShopLeads > E-commerce store data: every online store, the people who run it, the apps it runs and dated signals. REST API and MCP server. Search is free. search_stores, search_people, count_stores, get_store, search_products and preview_unlock never reveal a contact and never spend credits. Only unlock_contacts spends credits, once per person and kind, and only when that contact exists. - API base: https://api.shopleads.io/api/v1 - MCP (streamable HTTP, JSON): https://api.shopleads.io/mcp - Auth: Authorization: Bearer sd_live_… (create keys in the app under API & MCP) - Docs: https://api.shopleads.io/docs/api - OpenAPI: https://api.shopleads.io/openapi.json ## Operations - search_stores: Free: never reveals a contact and never spends credits. Search AI-confirmed DTC stores in the live database. Returns one page and a next_cursor. sells= keeps stores with a product matching every word. - count_stores: Free: never reveals a contact and never spends credits. Count the stores that match, without returning rows: the live database's exact count when it finishes within about 25 seconds (exact: true), else its estimate (exact: false). Filters the live database cannot answer count the sample index instead (source: sample). - count_people: Free: never reveals a contact and never spends credits. Count the people that match, without returning rows: the live database's exact count when it finishes within about 25 seconds (exact: true). Broad searches may not finish; narrow them for an exact number. - get_store: Free: never reveals a contact and never spends credits. One store: details, socials, tools, personalization variables, people with contacts masked, and signals (Pro and Scale). Pass company_id from search_stores or search_people for the live record (REST: GET /api/v1/stores/), or a domain. - search_people: Free: never reveals a contact and never spends credits. Search people at AI-confirmed DTC stores in the live database: store filters plus seniority, department, titles (any of several, or leave some out), location, contact and role-start filters. Emails, phones and LinkedIn stay masked; each row says what can be unlocked. - search_products: Free: never reveals a contact and never spends credits. Search the products stores sell: title, type, tags and description, every word must match. Public catalog data, open on every plan. - preview_unlock: Free: never reveals a contact and never spends credits. Before you spend: for each person id, which of email, phone and LinkedIn exist, which you already own, and the exact credit cost to unlock each kind. - unlock_contacts: The only call that spends credits. Unlock each id: email (2 credits) reveals the work email and LinkedIn together; phone (5) reveals the mobile or direct dial with the email and LinkedIn, less anything already paid for that person; name (1) shows the full name of someone with no contact on file; full (10) is for signal-based leads (their store has recorded signals) and reveals every contact plus the store's dated signals, less anything already paid for that person. Every unlock shows the full name. Charged once per person, only when it applies; anything you already unlocked is free. kind=email skips people with a LinkedIn profile but no email, unless include_linkedin_only is true. Run preview_unlock first to see the cost. - list_signals: Signals that fit your company. Pro and Scale get every dated signal with its store; other plans get counts per kind. - get_fit: Your company, the buyer type we read from your site, and how many stores and decision-makers fit. - export_unlocked: Every person this account has unlocked. Follow next_cursor when the answer says partial. - account: Plan, credits and whether signals are open.