local-pois

À UTILISER pour obtenir les détails d'un commerce local/POI. Nécessite des IDs de POI obtenus via une recherche web (avec `result_filter=locations`). Retourne les informations complètes du commerce, notamment les notes, horaires et coordonnées. Maximum 20 IDs.

npx skills add https://github.com/brave/brave-search-skills --skill local-pois

POIs locaux (Search API)

Nécessite une clé API : Obtenez-en une à https://api.search.brave.com

Plan : Inclus dans le plan Search. Voir https://api-dashboard.search.brave.com/app/subscriptions/subscribe

Flux en deux étapes : Cet endpoint nécessite des IDs POI d'une recherche web préalable.

  1. Appelez web-search avec result_filter=locations pour obtenir les IDs POI depuis locations.results[].id
  2. Passez ces IDs à cet endpoint pour obtenir les détails commerciaux complets

Démarrage rapide (cURL)

Obtenir les détails d'un POI

curl -s "https://api.search.brave.com/res/v1/local/pois" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="

Plusieurs POIs avec en-têtes de localisation

curl -s "https://api.search.brave.com/res/v1/local/pois" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194" \
  -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=" \
  --data-urlencode "ids=loc4HTAVTJKP4RBEBZCEMBI3NG26YD4II4PATIHPDYI=" \
  --data-urlencode "units=imperial"

Remarque : Les IDs POI sont des chaînes opaques retournées dans locations.results[].id des résultats de recherche web. Les IDs sont éphémères et expirent après ~8 heures. Les IDs d'exemple ci-dessus sont à titre d'illustration — récupérez des IDs frais via web-search avec result_filter=locations. Utilisez --data-urlencode car les IDs peuvent contenir =.

Endpoint

GET https://api.search.brave.com/res/v1/local/pois

Authentification : En-tête X-Subscription-Token: <API_KEY>

Paramètres

Paramètre Type Requis Défaut Description
ids string[] Oui IDs POI des résultats de recherche web (1-20)
search_lang string Non en Préférence de langue (code de langue 2+ caractères)
ui_lang string Non en-US Langue de l'interface (code de locale, ex. « en-US »)
units string Non null metric (km) ou imperial (miles)

En-têtes de localisation (Optionnel)

Pour le calcul de distance à partir de la localisation utilisateur :

En-tête Type Plage Description
X-Loc-Lat float -90,0 à 90,0 Latitude utilisateur
X-Loc-Long float -180,0 à 180,0 Longitude utilisateur

Champs de la réponse

La réponse a type: "local_pois" et un tableau results d'objets LocationResult :

Champ Type Description
title string Nom du commerce/POI
url string URL canonique pour la localisation
provider_url string URL de la page du fournisseur
type string Toujours "location_result"
id string Identifiant POI (chaîne opaque, valide ~8 heures)
description string? Brève description
postal_address.type string Toujours "PostalAddress"
postal_address.displayAddress string Adresse formatée pour l'affichage
postal_address.streetAddress string? Adresse postale
postal_address.addressLocality string? Ville
postal_address.addressRegion string? État/région
postal_address.postalCode string? Code postal/ZIP
postal_address.country string? Code pays
contact.telephone string? Numéro de téléphone
contact.email string? Adresse email
rating.ratingValue float? Note moyenne (≥0)
rating.bestRating float? Note maximale possible
rating.reviewCount int? Nombre d'avis
rating.profile.name string? Nom du fournisseur de note
rating.profile.url string? URL du fournisseur de note
opening_hours.current_day object[]? Horaires d'aujourd'hui (abbr_name, full_name, opens, closes)
opening_hours.days object[][]? Horaires pour chaque jour de la semaine (même structure)
coordinates [float, float]? Tuple [latitude, longitude]
distance.value float? Distance à partir de la localisation utilisateur
distance.units string? Unité de distance (km ou miles)
categories string[] Catégories commerciales (défaut [])
price_range string? Indicateur de prix ($, $$, $$$, $$$$)
serves_cuisine string[]? Types de cuisines (restaurants)
thumbnail.src string? URL de l'image miniature
thumbnail.original string? URL de l'image originale
profiles object[]? Profils externes (name, url, long_name, img)
reviews.reviews_in_foreign_language bool Si des avis en langue étrangère sont disponibles
pictures.results object[]? Miniatures de photos
action object? Action à effectuer — possède type (string) et url (string)
results object[]? Résultats web connexes (LocationWebResult avec meta_url)
timezone string? Fuseau horaire IANA (ex. America/Los_Angeles)
timezone_offset int? Décalage de fuseau horaire UTC

Exemple de réponse

{
  "type": "local_pois",
  "results": [
    {
      "type": "location_result",
      "title": "Park Mediterranean Grill",
      "url": "https://yelp.com/biz/park-mediterranean-grill-sf",
      "provider_url": "https://yelp.com/biz/park-mediterranean-grill-sf",
      "id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
      "postal_address": {
        "type": "PostalAddress",
        "displayAddress": "123 Main St, San Francisco, CA 94102",
        "streetAddress": "123 Main St",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94102",
        "country": "US"
      },
      "contact": { "telephone": "+1 415-555-0123" },
      "thumbnail": {
        "src": "https://example.com/thumb.jpg",
        "original": "https://example.com/original.jpg"
      },
      "rating": {
        "ratingValue": 4.5,
        "bestRating": 5.0,
        "reviewCount": 234,
      },
      "opening_hours": {
        "current_day": [
          { "abbr_name": "Mon", "full_name": "Monday", "opens": "07:00", "closes": "21:00" }
        ]
      },
      "coordinates": [37.7749, -122.4194],
      "distance": { "value": 0.3, "units": "miles" },
      "categories": ["Mediterranean", "Greek"],
      "price_range": "$$",
      "serves_cuisine": ["Mediterranean", "Greek"],
      "timezone": "America/Los_Angeles"
    }
  ]
}

Obtenir les IDs POI

Les IDs POI proviennent de l'API Web Search (web-search) avec result_filter=locations :

# 1. Rechercher des commerces locaux
curl -s "https://api.search.brave.com/res/v1/web/search?q=coffee+shops+near+me&result_filter=locations" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194"

# 2. Extraire les IDs POI depuis locations.results[].id
# 3. Utiliser ces IDs avec cet endpoint

Cas d'usage

  • Recherche de commerces locaux : Récupérer les détails complets (horaires, contact, adresse) pour les POIs surfacés dans la recherche web
  • Pipeline de découverte de restaurants : Chercher des restaurants, récupérer les détails POI, filtrer par cuisine/note/gamme de prix
  • Vérificateur d'horaires commerciaux : Obtenir opening_hours pour un commerce afin de déterminer s'il est actuellement ouvert
  • Application sensible à la localisation : Combiner avec les en-têtes de localisation pour obtenir les calculs de distance pour les POIs à proximité

Remarques

  • Format ID : Chaînes opaques (utilisez --data-urlencode pour cURL)
  • Unités : metric ou imperial pour la préférence d'unité de distance
  • IDs max : Jusqu'à 20 IDs par requête

Skills similaires