---
title: "Report stores discovered at geolocations"
method: POST
path: "/v1/market-intel/discovered-stores"
tags: ["marketintel_endpoints"]
---

# Report stores discovered at geolocations

`POST /v1/market-intel/discovered-stores`

## Request

- Base URL: `https://partners.tryotter.com`
- URL: `https://partners.tryotter.com/v1/market-intel/discovered-stores`
- Auth: OAuth 2
  - Authorization code: `/v1/auth/oauth2/authorize`
  - Client credentials
  - Token URL: `/v1/auth/token` scopes: `marketintel`
- TypeScript: <https://skmtc.dev/cloudkitchens/apis/otter-api/docs/v1/market-intel/discovered-stores/post.ts> (a function with typed inputs; its response is checked against the schema)

Send marketplace store listings discovered for the requested geolocations.

## Headers

- `X-Event-Id` string: Optional unique identifier of the event that this callback refers to.

## Request body

- DiscoverStoresEventResult: The result of an event that request to find stores at the provided geolocations.
  - `storesDiscovered` DiscoveredStore[]: Represents a list of discovered stores.
    - `storeDetails` MarketintelStoreDetails: The Store delivery information.
      - `regionId` string, nullable: The region that store belongs to.
      - `provider` string: The store information provider
      - `id` string: The external store id
      - `storeUrl` string, nullable: The store url
      - `location` MarketintelGeoLocationInformation: The geographical location information used to discover stores. This information will need be pass back with the result.
        - `regionId` string: The region id of the geographical location.
        - `superRegion` string: The super region of the geographical location.
        - `h3Index` string: The H3Index value of the geographic location.
        - `searchText` string, nullable: The text used to search for stores.
        - `address` Address, nullable: Order delivery address.
          - `fullAddress` string, nullable: Full, human comprehensible address. It is usually formatted in the order appropriate for your locale.
          - `postalCode` string: Postal code of the address.
          - `city` string: The city/town portion of the address.
          - `state` string: Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, or a prefecture.
          - `countryCode` string: CLDR country code. See http://cldr.unicode.org/
          - `addressLines` string[], nullable: Address lines (e.g. street, PO Box, or company name) or the full single line address (e.g. street, city, state, country, zip).
          - `linesOfAddress` string[], nullable: Deprecated: use addressLines. Address lines (e.g. street, PO Box, or company name) or the full single line address (e.g. street, city, state, country, zip).
          - `location` Location, nullable: Latitude and longitude of the address.
            - `latitude` number, double, required: The latitude of the location.
            - `longitude` number, double, required: The longitude of the location.
      - `address` Address, nullable: Order delivery address.
        - `fullAddress` string, nullable: Full, human comprehensible address. It is usually formatted in the order appropriate for your locale.
        - `postalCode` string: Postal code of the address.
        - `city` string: The city/town portion of the address.
        - `state` string: Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, or a prefecture.
        - `countryCode` string: CLDR country code. See http://cldr.unicode.org/
        - `addressLines` string[], nullable: Address lines (e.g. street, PO Box, or company name) or the full single line address (e.g. street, city, state, country, zip).
        - `linesOfAddress` string[], nullable: Deprecated: use addressLines. Address lines (e.g. street, PO Box, or company name) or the full single line address (e.g. street, city, state, country, zip).
        - `location` Location, nullable: Latitude and longitude of the address.
          - `latitude` number, double, required: The latitude of the location.
          - `longitude` number, double, required: The longitude of the location.
      - `phoneNumbers` string[]: The store phone numbers.
      - `storeName` string, nullable: The name of the store.
      - `menu` MarketintelStoreMenu: The Store listing in ranking order based on category.
        - `category` string, nullable: The grouping category name.
        - `ids` string[]: The list of external store ids in the list in rank order.
        - `location` object: The geographic location of the stores that was searched from.
      - `storeHours` MarketintelHoursData: Represents hours configuration with regular hours and special hours.
        - `timeZone` string, timezone-id, required: TimeZone of all times under it. (https://www.joda.org/joda-time/timezones.html)
        - `regularHours` MarketintelRegularHours[], required: List of regular hours configuration.
          - `days` string[], required: The day of the week this configuration applies.
          - `timeRanges` MarketintelTimeRange[], required: Hours range applied to the provided day of the week
            - `start` string, required: Start time of the range in 24 hour format.
            - `end` string, required: End time of the range in 24 hour format.
        - `specialHours` MarketintelSpecialHours[], required: List of special hours configuration, for occasions like Christmas, Thanksgiving, or any other holidays.
          - `date` string, date, required: Date the special hour configuration applies.
          - `timeRanges` MarketintelTimeRange[], required: Hours range applied to configured date.
            - `start` string, required: Start time of the range in 24 hour format.
            - `end` string, required: End time of the range in 24 hour format.
          - `type` 'OPEN' | 'CLOSED', required: Store state that should be applied during the configured special hour.
      - `tags` string[]: The store tags
      - `storeBannerPhotoUrl` string, nullable: The store bannel photo url.
      - `storeRating` MarketintelStoreRating: The Store rating information. At least one of the ratingScore, estimatedRatingCount or displayRatingCount need to be present.
        - `ratingScore` number, nullable: The normalized rating score of the store.
        - `estimatedRatingCount` integer, nullable: The estimated number of scores in the rating.
        - `displayRatingCount` string, nullable: The display text of the number of scores in the rating.
      - `coordinates` MarketintelCoordinates: The geographical coordinates of a location.
        - `coordinatesType` 'WGS84' | 'GCJ02': Coordinates type
        - `location` Location, nullable: Latitude and longitude of the address.
          - `latitude` number, double, required: The latitude of the location.
          - `longitude` number, double, required: The longitude of the location.
      - `storeSales` MarketintelStoreSales: The Store Sales information. At least one of the periodType, numberOfSales or displayNumberOfSales need to be present.
        - `periodType` string, nullable: The period type of the sales data
        - `numberOfSales` integer, nullable: The number of sales.
        - `displayNumberOfSales` string, nullable: The display text of the number of sales.
      - `avgBasketAmount` Money: Money amount.
        - `currencyCode` string, required: The 3-letter currency code (ISO 4217) to use for all monetary values.
        - `amount` number, required: Amount value.
      - `storePromotions` MarketintelStorePromotion[]: The store promotions.
        - `displayName` string, nullable: The name of the promotion.
        - `promotionType` string, nullable: The type of promotion.
        - `campaignType` string, nullable: The type of promotion campaign.
        - `promotionId` string, nullable: The external promotion id.
      - `storeChain` MarketintelStoreChain: The Store Chain information.
        - `chainId` string, nullable: The external chain id.
        - `chainName` string, nullable: The name of the chain.
      - `storeDeliveryInformation` MarketintelStoreDeliveryInformation: The Store delivery information.
        - `minDeliveryBasketSize` Money: Money amount.
          - `currencyCode` string, required: The 3-letter currency code (ISO 4217) to use for all monetary values.
          - `amount` number, required: Amount value.
        - `deliveryFee` Money: Money amount.
          - `currencyCode` string, required: The 3-letter currency code (ISO 4217) to use for all monetary values.
          - `amount` number, required: Amount value.
        - `deliveryType` string, nullable: The delivery type for the order
        - `deliveryTimeMinutes` integer, nullable: The estimated delivery time in minutes
      - `logoPhotoUrl` string, nullable: The store photo url.
      - `priceLevel` MarketintelStorePriceLevel: The Store Price Level information. At least one of the price level or price level name need to be present.
        - `priceLevel` number, nullable: The price level of the store in numeric rating.
        - `priceLevelName` string, nullable: The price level of the store in text.
    - `locationBasedInformation` MarketintelLocationBasedInformation: The estimated delivery time of the store and delivery distance from the store. At least one of the attributes need to be set.
      - `estimatedDeliveryTimeInSeconds` integer, nullable: The estimated delivery time in seconds
      - `distanceInMeters` integer, nullable: The distance in meters
  - `storeRankings` MarketintelStoreListing[]: Represents the store rankings.
    - `category` string, nullable: The grouping category name.
    - `ids` string[]: The list of external store ids in the list in rank order.
    - `location` object: The geographic location of the stores that was searched from.

## Response `204`

Discovered-store updates were processed successfully.

## Other responses

- `400`: The request is malformed.
- `401`: Invalid authorization.
- `403`: Authorization not valid for the requested resource.
- `404`: Resource not found.
- `422`: The request body is not valid.

---

[API](https://skmtc.dev/cloudkitchens/apis/otter-api.md) - [All operations](https://skmtc.dev/cloudkitchens/apis/otter-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudkitchens/apis/otter-api/revisions/4c868194a467?raw)
