Correspondances appliquées à toutes les fiches, sauf mention contraire dans la page du type. Les chemins Apidae sont ceux de l’API v002.
Identité
| schema.org | Source Apidae | Règle |
|---|---|---|
@type | selon le type d’objet | voir article dédié ; un type parent redondant est retiré (Store + Bakery → Bakery) |
name | nom | langue produite, à défaut français |
description | presentation.descriptifCourt, à défaut descriptifDetaille | texte brut : balises HTML et commentaires retirés, entités décodées (é, é, &…) ; un « < » qui ne forme pas une balise (< 5 km) est conservé |
identifier | id | identifiant Apidae de la fiche |
inLanguage | — | langue du JSON-LD (fr, en…) |
Localisation
| schema.org | Source Apidae | Règle |
|---|---|---|
address (PostalAddress) | localisation.adresse | streetAddress = lignes d’adresse jointes par « , » ; name = nom du lieu s’il diffère du nom de la fiche ; postalCode ; addressLocality = commune ; addressCountry = code ISO 3166-1 du pays de la commune |
geo (GeoCoordinates) | localisation.geolocalisation | seulement si la géolocalisation est validée ; latitude, longitude, elevation (altitude en mètres) |
containedInPlace (City) | commune | name, identifier = code INSEE |
hasMap | multimédia de type plan | URL du plan (lieux uniquement) |
Contact
| schema.org | Source Apidae (type de moyen de communication) | Règle |
|---|---|---|
telephone | Téléphone | le premier ; format international (+33…) pour les numéros français |
email | Mél | le premier |
url | Site web | la première URL http(s) — site de l’établissement, pas la page de votre site |
sameAs | Facebook, Instagram, X, LinkedIn, TikTok, YouTube, Google My Business, Tripadvisor, Yelp…, et multimédias « réseaux sociaux » | toutes les URL http(s), sans doublon |
Ouverture
| schema.org | Source Apidae | Règle |
|---|---|---|
openingHoursSpecification | ouverture.periodesOuvertures[] avec leurs horaires | une spécification par créneau : dayOfWeek (URL schema.org des jours), opens, closes, validFrom/validThrough = dates de la période ; pour une période « tous les ans », voir ci-dessous |
specialOpeningHoursSpecification | fermetures exceptionnelles (dates et jours fériés) | une entrée par date des douze prochains mois, opens = closes = 00:00 (fermé) |
Périodes « tous les ans » : une période qui ne couvre pas l’année entière (une saison du 1ᵉʳ juin au 30 septembre, par exemple) reçoit validFrom/validThrough, bornés sur l’occurrence en cours ou à venir : les mois et jours de la période sont projetés sur l’année courante, la fin est reportée à l’année suivante si elle précède le début (du 1ᵉʳ novembre au 31 mars) ; vue en janvier, une période à cheval sur deux années reste rattachée à l’occurrence commencée l’année précédente tant qu’elle est en cours (du 1ᵉʳ décembre de l’année précédente au 31 mars de l’année courante) ; une occurrence déjà terminée donne celle de l’année suivante. Une période couvrant du 1ᵉʳ janvier au 31 décembre reste sans bornes (ouverture permanente). Le balisage étant calculé à chaque appel, les bornes suivent l’année en cours ; si vous mettez la réponse en cache, ne publiez pas de bornes dépassées.
Fermetures impossibles ignorées : une date de fermeture absente ou impossible (29 février d’une année non bissextile) est ignorée, sans effet sur le reste de la fiche.
Ne sont pas produits : périodes terminées, motifs « n-ième jour du mois », jours fériés dans les créneaux, créneaux fermés, horaires de « dernière entrée », créneaux sans heure d’ouverture et de fermeture. Les fêtes et manifestations n’ont pas de spécification d’ouverture : leurs périodes deviennent des dates d’événement.
Tarifs
| schema.org | Source Apidae | Règle |
|---|---|---|
isAccessibleForFree | descriptionTarif.indicationTarif | true : gratuit, accès libre, entrée libre (y compris stationnement ou transport payant) ; false : payant ; absent sinon (ex. participation libre) |
offers (Offer) | descriptionTarif.periodes[].tarifs[] | une offre par tarif des périodes en cours ou à venir : name = type de tarif, price = minimum (à défaut maximum), priceSpecification min/max si fourchette, priceCurrency (EUR par défaut), validFrom/validThrough ; types exclus : caution, taxe de séjour, remise… (voir annexe TarifType) |
priceRange | offres émises | « 35 € – 75 € » ; établissements uniquement (LocalBusiness) |
currenciesAccepted | devise | établissements uniquement |
paymentAccepted | descriptionTarif.modesPaiement[] | libellés joints ; établissements uniquement |
Prestations, accessibilité, clientèles
| schema.org | Source Apidae | Règle |
|---|---|---|
petsAllowed | prestations.animauxAcceptes | true / false / « Avec supplément » ; hébergements uniquement |
amenityFeature (LocationFeatureSpecification) | équipements, conforts, services, activités, tourisme adapté, environnement | sélection d’éléments discriminants (piscine, parking, wifi, spa, borne de recharge, vue remarquable, accessibilité fauteuil…) ; value = false pour les critères négatifs (ex. « non accessible en fauteuil ») ; lieux uniquement |
availableLanguage | prestations.languesParlees[] | codes BCP 47 ; hébergements et attractions uniquement |
audience / typicalAgeRange | prestations.typesClientele[] | clientèles de portée générale (familles, groupes…) ; tranches d’âge |
additionalProperty « Difficulté », « Cotation… » | niveaux de difficulté et cotations des clientèles | valeur du niveau |
award | prestations.labelsTourismeHandicap[] | « Marque Tourisme et Handicap – déficience … » |
Images et médias
| schema.org | Source Apidae | Règle |
|---|---|---|
image (ImageObject) | illustrations[] (images) | fichier de la langue produite (à défaut le premier) : contentUrl, url, caption (légende), copyrightNotice et creditText (copyright), width, height |
video (VideoObject) | multimédias vidéo | name, description, contentUrl (fichier) ou embedUrl (lien) |
logo | multimédia logo | URL |
subjectOf (CreativeWork) | brochure virtuelle | name, url |
Labels, classements, chaînes
Source : distinctions[] (distinctions en cours de validité uniquement), routées selon la correspondance de chaque nom de distinction :
| Cible | Exemples | Règle |
|---|---|---|
award | labels notoires, guides, AOP, patrimoine mondial… | libellé, complété de la qualification (« Gîtes de France — 3 épis ») |
brand | chaînes hôtelières | Organization |
memberOf | associations et réseaux (restauration…) | Organization |
starRating | classements officiels en étoiles | Rating (ratingValue, author = Atout France pour le classement national) ; hébergements et restaurants uniquement ; le classement du type (voir page hébergements) est prioritaire |
additionalProperty | agréments, chartes, marques locales | PropertyValue |
Les libellés identiques issus de plusieurs sources ne sont émis qu’une fois.
Attribution et fraîcheur
| schema.org | Source Apidae | Règle |
|---|---|---|
dateModified | gestion.dateModification | ISO 8601 avec fuseau |
creator | gestion.membreProprietaire | Organization : nom et site web du membre propriétaire de la donnée |
sdPublisher | — | Apidae Tourisme |
sdDatePublished | — | date de génération du balisage |
Fuseau horaire
Les dates-heures portent le décalage du fuseau de la fiche, calculé à la date (heure d’été / d’hiver) : fuseau des collectivités d’outre-mer d’après le code INSEE (Guadeloupe, Martinique, Guyane, La Réunion, Mayotte…), sinon celui du pays, sinon Europe/Paris.
Propriétés réservées à certains types
Pour rester conforme au vocabulaire, certaines propriétés ne sont émises que sur les types qui les admettent (et leurs sous-types) :
| Propriété | Types |
|---|---|
priceRange, paymentAccepted, currenciesAccepted | LocalBusiness |
starRating | LodgingBusiness, FoodEstablishment |
servesCuisine, acceptsReservations | FoodEstablishment |
availableLanguage | LodgingBusiness, TouristAttraction |
petsAllowed, numberOfRooms | LodgingBusiness, Accommodation |
touristType | TouristAttraction, TouristDestination, TouristTrip |
amenityFeature, hasMap, publicAccess | Place |
brand | Organization, Product, Service |
memberOf | Organization |
maximumAttendeeCapacity | Event, Place |
Un @type qui n’appartient pas au vocabulaire schema.org n’est jamais émis : il est écarté de la correspondance.
Dérogations
Par choix, quelques propriétés sont émises hors de leur domaine schema.org strict, parce que l’information est utile aux consommateurs du balisage et tolérée par Google :
| Propriété | Émise aussi sur | Raison |
|---|---|---|
telephone, email | Event, TouristTrip | contact de l’organisateur ou du prestataire |
geo, containedInPlace, openingHoursSpecification | Organization (structures sans type LocalBusiness) | localisation et horaires de la structure |
isAccessibleForFree | Product | gratuité d’un séjour ou d’un forfait |
additionalProperty, audience | tous les types | caractéristiques et publics sans propriété dédiée |
award, creator, dateModified | toutes les fiches | distinctions, producteur de la donnée, fraîcheur |
Le validateur schema.org (validator.schema.org) peut signaler des avertissements sur ces propriétés ; ils sont attendus et sans effet sur les résultats enrichis de Google. publicAccess, lui, reste réservé à Place. audience n’est émise que si son audienceType est connu.
