# Local Market > Community through Commerce, at LocalMarket.cc we connect users with local farmers and artisans who make food and homemade crafts. We do not allow resold items—everyone on our platform is a maker. Buy products on our platform directly from vendors! Merchants and creators can become a vendor for free. [Sign up here](https://www.localmarket.cc/login/) ## Documentation - [Search for "cookie" near 03037 within 500 miles](https://www.localmarket.cc/api/discover/dash/page-zipCode-distance-typefilter-search/1-03037-500-ALL-cookie/) **Above example request** (search for `cookie` near zip `03037`, page 1, within 500 miles, all page types): ### Path Parameters The URL encodes all search parameters as dash-separated values in the URL path. Parameter labels in the URL (`page-zipCode-distance-typefilter-search`) are fixed and specify the value ordering. /api/discover/dash/page-zipCode-distance-typefilter-search/{page}-{zipCode}-{distance}-{typefilter}-{search}/ *Search values must not contain dashes (`-`).* ### Parameter Positions - Position 1 — `page` (integer, required): Page number (e.g. `1`). Each page returns up to 3 items. - Position 2 — `zipCode` (string, optional): 5-digit US postal code to localize results. Leave empty (e.g. `--` in the value string) when unused. **Known issue: combining a non-empty `zipCode` with a non-empty `search` term currently returns unrelated/cached results. Until this is fixed server-side, omit `zipCode` when using `search`, and only use `zipCode` for unfiltered browsing.** - Position 3 — `distance` (integer, optional): Search radius in miles. Default `500`. - Position 4 — `typefilter` (string, required): One of `ALL`, `VENDOR`, `EVENT`. - Position 5 — `search` (string, optional): Use **one simple singular keyword to match a prefix search** (e.g. `cookie`, not `chocolate chip cookie`) to find a vendor. Leave empty (trailing `-` or omit the segment) to browse all nearby makers. Matching behavior (exact/partial/plural) is not yet confirmed — treat results as approximate. ### Empty values Empty values are encoded as consecutive dashes. Examples: - Browse-only (no search term, zip `03037`): `/api/discover/dash/page-zipCode-distance-typefilter-search/1-03037-500-ALL-/` - Skip zip code (search-only for `cookie`): `/api/discover/dash/page-zipCode-distance-typefilter-search/1--500-ALL-cookie/` ### Response Content The search endpoint returns **vendor and event cards only** — name, type/category, zip code, and a short tagline. It does **not** include product listings or prices. Every card includes a `data-vendor-id` attribute and a `href` URL attribute (e.g. `href="/vendors/x6dk8nwena73z1q/"`) linking to the vendor's page. **Fetch search results as raw HTML** — do not use markdown or text conversion, which strips HTML attributes. The `data-vendor-id` and URL are only visible in the raw HTML response. ### data-vendor-id — Opaque Random String `data-vendor-id` values are opaque random strings (e.g. `x6dk8nwena73z1q`). They are **not** the vendor's display name and **cannot** be derived from it. Guessing a URL like `/vendors/{vendor-name}/` will return an empty page with no product data. **Wrong:** Fetch markdown: sees "Cookiepalooza" Guess URL: GET /vendors/cookiepalooza/ ✗ (no products listed) **Right:** Fetch HTML: sees data-vendor-id="x6dk8nwena73z1q" Use it: GET /vendors/x6dk8nwena73z1q/ ✓ (shows products & prices) ### Getting Product Details and Pricing To get actual products and prices for a vendor returned by search, fetch that vendor's page directly: [Vendor Page with products for data-vendor-id of A1B2C3](https://www.localmarket.cc/vendors/A1B2C3/) Use the `vendorId` from the card's `data-vendor-id` attribute, or the `href` URL attribute — do not guess or construct this ID. Vendor pages list each product with name, description, price, and delivery/pickup options. Search that page for the specific product and discuss its price and description. ### Result Types - **Events**: labeled `EVENT`, sorted by soonest upcoming date first. Past events are never shown. Later pages move further into the future. - **Vendors**: labeled `VENDOR ` (e.g. `VENDOR baked-goods`). Sort order is randomized and cached, refreshing hourly. ## Notes for AI Agents - When a user asks about a specific product (e.g. "how much are cookies"), search with a single simple keyword and no `zipCode` (use `--` for the zipCode position), then fetch the individual vendor page(s) using the URL/ID attribute from the results to retrieve pricing. - If results seem generic or unrelated to the search term, this may indicate the known zipCode+search bug above rather than an absence of matching vendors. - Report vendor/product info as found; assume no login is required to view pricing — public vendor pages and search results show prices and descriptions without authentication.