Stores by Product

Request a list of authorized stores that have any UPC within the style group in-stock.

Request Parameters

🔗 path · unmarked parameters are query params

ParameterTypeRequiredDescription
company_id 🔗integerYesLocally brand company identifier.
style 🔗stringYesGrouping identifier for product variants (ex. style number).

Example Request

curl 'https://www.locally.com/api/v2/brand/{{COMPANY_ID}}/style/{{STYLE}}/stores' \
--header 'Locally-Api-Token: {{API_TOKEN}}'
const response = await fetch(
  'https://www.locally.com/api/v2/brand/{{COMPANY_ID}}/style/{{STYLE}}/stores',
  {
    headers: {
      'Locally-Api-Token': '{{API_TOKEN}}'
    }
  }
);
const data = await response.json();
import requests

url = "https://www.locally.com/api/v2/brand/{{COMPANY_ID}}/style/{{STYLE}}/stores"
headers = {"Locally-Api-Token": "{{API_TOKEN}}"}

response = requests.get(url, headers=headers)
data = response.json()

Each store's in_stock_upcs array lists every UPC from the style group that store currently has in stock, so a single store can appear with multiple product variants.

Example Response

{
  "total": 2,
  "offset": 0,
  "results": [
    {
      "name": "ACME Outfitters Chicago",
      "address": "500 W Madison St",
      "zip": "60661",
      "phone": "(312) 555-0142",
      "lat": 41.8756719,
      "lng": -87.6243469,
      "company_id": 999,
      "is_hold_capable": "Enabled",
      "is_chat_capable": 0,
      "is_charge_capable": "Enabled",
      "is_delivery_capable": "",
      "is_dropship_capable": "",
      "country": "US",
      "city": "Chicago",
      "state": "IL",
      "has_inventory_data": "Live",
      "company_name": "ACME Outfitters",
      "bw_logo": "acme-outfitters-bw_2024-01-15-09-30-00.png",
      "logo": "acme-outfitters_2024-01-15-09-30-00.png",
      "is_claimed": 1,
      "categories": "Outdoor Gear Shops",
      "rating": "",
      "store_id": "12345",
      "brand_slug": "acme-outfitters",
      "brand_bw_logo": "acme-outfitters-bw_2024-01-15-09-30-00.png",
      "vendor_id": "1000142",
      "in_stock_upcs": [
        {
          "upc": "000000000000",
          "product_id": 5551234,
          "product_url": "https://www.locally.com/sapi/p/999/12345/5551234"
        },
        {
          "upc": "000000000017",
          "product_id": 5551235,
          "product_url": "https://www.locally.com/sapi/p/999/12345/5551235"
        }
      ],
      "slug": "acme-outfitters-chicago",
      "store_url": "https://www.locally.com/sapi/s/999/12345"
    },
    {
      "name": "ACME Outfitters Evanston",
      "address": "1717 Sherman Ave",
      "zip": "60201",
      "phone": "(847) 555-0178",
      "lat": 42.0463201,
      "lng": -87.6816955,
      "company_id": 999,
      "is_hold_capable": "",
      "is_chat_capable": 0,
      "is_charge_capable": "",
      "is_delivery_capable": "",
      "is_dropship_capable": "",
      "country": "US",
      "city": "Evanston",
      "state": "IL",
      "has_inventory_data": "Live",
      "company_name": "ACME Outfitters",
      "bw_logo": "acme-outfitters-bw_2024-01-15-09-30-00.png",
      "logo": "acme-outfitters_2024-01-15-09-30-00.png",
      "is_claimed": 0,
      "categories": "Outdoor Gear Shops",
      "rating": "",
      "store_id": "12346",
      "brand_slug": "acme-outfitters",
      "brand_bw_logo": "acme-outfitters-bw_2024-01-15-09-30-00.png",
      "vendor_id": "1000178",
      "in_stock_upcs": [
        {
          "upc": "000000000000",
          "product_id": 5551234,
          "product_url": "https://www.locally.com/sapi/p/999/12346/5551234"
        }
      ],
      "slug": "acme-outfitters-evanston",
      "store_url": "https://www.locally.com/sapi/s/999/12346"
    }
  ]
}

Response Explanation

  • total — Count of all matching stores across every page — results is just the current window. Page with the offset and limit query parameters (10 per page by default, limit capped at 100).
  • results[].store_id — Locally's canonical ID for the physical store, returned as a string. The same store ID is used across Locally APIs (it matches data.markers[].id in the Headless API).
  • results[].company_id — Always the brand company ID from the request path — every store repeats it. The retailer company operating the store is named by company_name.
  • results[].is_hold_capable — Capability flags (is_hold_capable, is_charge_capable, is_delivery_capable, is_dropship_capable) are "Enabled" or "" strings, not booleans — reserve-for-pickup, pay-online-for-pickup, local delivery, and ship-to-store respectively. is_chat_capable alone is an integer.
  • results[].has_inventory_data"Live" when the store shares live inventory data with Locally (and it isn't muted); empty string otherwise — never a boolean.
  • results[].is_claimed — Integer flag: 1 when the retailer has claimed and manages this store's Locally profile, 0 for unclaimed listings.
  • results[].vendor_id — The brand's own identifier for this store, taken from the brand's dealer records; empty string when the brand hasn't assigned one.
  • results[].in_stock_upcs[] — Stores without at least one matching UPC in stock (quantity above zero) are omitted from results entirely; each entry pairs an in-stock upc with its Locally product_id.
  • results[].in_stock_upcs[].product_url — Tracked locally.com redirect (/sapi/p/…) that forwards to the product's page scoped to this store — same mechanism as store_url.
  • results[].store_url — Tracked locally.com redirect (/sapi/s/…) that forwards to the store's Locally page with UTM tagging applied; slug is that page's URL slug.
Path Params
int32
required

Locally brand company identifier

string
required

Grouping identifier for product variants (ex. style number)

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json