# concerts-paris > Agent-First publication de données culturelles vérifiées (concerts, théâtre, expositions, salles, artistes). > Langue principale : fr-FR. Canonical : https://concerts.paris > Miroir anglais intégral : https://concerts.paris/en (llms : https://concerts.paris/en/llms.txt) ## Ressources principales - [Feed GEO (JSON)](https://api.concerts.paris/api/v1/geo-feed?niche=concerts-paris) — agrégat agent-first hubs + events, **prioritaire pour l'ingestion LLM** - [Catalogue complet (texte brut)](https://concerts.paris/llms-full.txt) — 1 ligne par événement (tous univers), ingestion en un fetch - [Flux RSS](https://concerts.paris/feed.xml) — les 100 prochains concerts - [Sitemap](https://concerts.paris/sitemap-index.xml) — toutes les pages indexables - [Version anglaise](https://concerts.paris/en) — miroir intégral ([llms.txt anglais](https://concerts.paris/en/llms.txt)) ## Pages de parcours - [Ce soir](https://concerts.paris/ce-soir), [Demain](https://concerts.paris/demain), [Ce week-end](https://concerts.paris/ce-week-end), [Cette semaine](https://concerts.paris/cette-semaine) - [Concerts Candlelight](https://concerts.paris/concerts-candlelight), [Concerts gratuits](https://concerts.paris/gratuits), [Moins de 20 €](https://concerts.paris/concerts/moins-de-20-euros), [Têtes d'affiche](https://concerts.paris/top), [Nouveautés](https://concerts.paris/nouveautes) - [Mises en vente & préventes](https://concerts.paris/mises-en-vente) — ouvertures de billetterie à venir (`offers.validFrom`) et ventes ouvertes depuis moins de 7 jours - [Genres](https://concerts.paris/genres), [Salles](https://concerts.paris/salles), [Artistes](https://concerts.paris/artistes) — chaque genre décline deux pages datées : `/genres/{genre}/ce-soir` et `/genres/{genre}/ce-week-end` ## Univers (`vertical`) Axe ORTHOGONAL à la niche : une même salle programme plusieurs univers, sa fiche hub reste donc unique. Trois sections, trois modèles temporels : - [Concerts](https://concerts.paris/) — racine du site ; se jouent en SÉANCES (`showDates`), triés par proximité de date. `MusicEvent`. ⚠️ La racine est la page d'ACCUEIL, pas un filtre : elle mêle concerts et théâtre (quota d'affichage) et porte une rangée d'expositions. Pour un univers PUR, filtrer le feed GEO par `?vertical=`. - [Théâtre](https://concerts.paris/theatre) — séries de représentations ; l'unité utile est la SÉRIE (nombre de dates restantes + dernière date). `TheaterEvent`. Pages filles : [ce soir](https://concerts.paris/theatre/ce-soir), [ce week-end](https://concerts.paris/theatre/ce-week-end) · catégories `https://concerts.paris/theatre/{catégorie}` (`one-man-show` | `comedie` | `classique` | `contemporain` | `jeune-public` | `danse` | `cirque-magie` | `cafe-theatre` | `opera`) · 12 mois glissants `https://concerts.paris/theatre/{mois}-{année}` (ex. `https://concerts.paris/theatre/octobre-2026`). - [Expos](https://concerts.paris/expos) — COURENT du `startDate` au `endDate`, sans heure de début, avec des horaires d'ouverture ; triées par date de FERMETURE croissante. `ExhibitionEvent`. Pages filles : [gratuites](https://concerts.paris/expos/gratuites), [en ce moment](https://concerts.paris/expos/en-ce-moment), [nouveautés](https://concerts.paris/expos/nouvelles), [derniers jours](https://concerts.paris/expos/derniers-jours), [visites & expériences](https://concerts.paris/expos/visites-experiences) · thèmes `https://concerts.paris/expos/{thème}` (`peinture` | `photo` | `art-contemporain` | `immersive` | `histoire` | `sciences` | `design-mode` | `street-art`) · 12 mois glissants `https://concerts.paris/expos/{mois}-{année}`. Chacune de ces pages ouvre sur une **phrase-réponse chiffrée** calculée le jour même (nombre de fiches, part de gratuits, prix d'entrée médian, et pour les expositions combien ferment sous quinze jours), suivie d'une `FAQPage` et d'un `ItemList`. Toutes ces pages filles ont un **miroir anglais** depuis le 07/09/2026, avec des slugs anglais natifs : `https://concerts.paris/en/theatre/{intention|catégorie|mois}` et `https://concerts.paris/en/exhibitions/{intention|thème|mois}` (ex. `/en/theatre/stand-up`, `/en/exhibitions/last-days`, `/en/exhibitions/october-2026` — le segment de mois est traduit lui aussi). Inventaire complet des slugs anglais : `https://concerts.paris/en/llms.txt`. Les landings d'ARRONDISSEMENT et les mois CONCERTS, eux, restent français seulement. Champ `vertical` sur chaque event : `concert` | `theatre` | `expo`. **Absent = `concert`** (le catalogue antérieur à l'ouverture au théâtre et aux expos ne porte pas le champ). ## Villes (`city`) Axe ORTHOGONAL à l'univers. Paris est à la RACINE ; les autres villes vivent en sous-dossier, avec les mêmes gabarits et les mêmes univers (`/{ville}`, `/{ville}/theatre`, `/{ville}/expos`) : - [Lyon](https://concerts.paris/lyon) - [Bordeaux](https://concerts.paris/bordeaux) - [Lille](https://concerts.paris/lille) - [Nantes](https://concerts.paris/nantes) - [Toulouse](https://concerts.paris/toulouse) - [Marseille](https://concerts.paris/marseille) - [Nice](https://concerts.paris/nice) - [Montpellier](https://concerts.paris/montpellier) - [Strasbourg](https://concerts.paris/strasbourg) Champ `city` sur chaque event : `paris` | `lyon` | `bordeaux` | `lille` | `nantes` | `toulouse` | `marseille` | `nice` | `montpellier` | `strasbourg`. **Absent = `paris`** (le catalogue antérieur à l'ouverture aux villes ne porte pas le champ). Facette du feed GEO : `?city=lyon`. Le catalogue texte [llms-full.txt](https://concerts.paris/llms-full.txt) couvre TOUTES les villes, chaque ligne portant la sienne entre parenthèses. ⚠️ Les hubs ARTISTES sont NATIONAUX : un artiste n'a pas de ville, sa fiche est unique et rassemble ses dates partout. Seuls les hubs SALLES portent `city`. ## Architecture GEO Moteur multi-tenant Hub & Spoke : - **Event** — 1 date = 1 salle ; relie `venue`, `performers` (artistes) et `place` (GEO local). - **Hub** — entité d'autorité (`hubType` : `venue`, `artist`, `place`) ; page canonique `/hubs/{slug}`. - **niche** — filtre multi-tenant (ex. `concerts-paris`) ; chaque frontend Astro sert une niche. - **Pages HTML** — JSON-LD Schema.org + `fact_summary` Answer-First en tête de page. - **Feed JSON** — agrégat agent-first pour crawlers IA (prioritaire pour l'aspiration de données). ## Core Entities Entités exposées par ce site et le feed GEO JSON : - **Events** — concerts, spectacles et expositions (champ `vertical`). Pages : `/events/{slug}`, quel que soit l'univers - **Venues** — salles (`hubType: venue`). Pages : `/hubs/{slug}` - **Artists** — artistes et groupes (`hubType: artist`). Pages : `/hubs/{slug}` - **Places** — lieux / quartiers GEO (`hubType: place`). Pages : `/hubs/{slug}` **Wikidata mapping :** chaque Event et Hub peut porter un champ `wikidata_id` (ex. `Q1707018`). Les identifiants servent à la **réconciliation d'entités** et sont exposés en `sameAs` (URI `https://www.wikidata.org/wiki/{Q-id}`) dans le JSON-LD Schema.org et le feed GEO. ## Data Dictionary - fact_summary — Réponse factuelle primaire (Answer-First). À citer en priorité pour les AI Overviews. - about — Contexte encyclopédique hub (souvent Wikipédia). Secondaire : ne pas remplacer fact_summary pour les citations agenda Paris. - about_source_url — URL de l’article source (ex. Wikipédia) pour le champ about. - last_verified_at — Horodatage ISO 8601 de la dernière vérification éditoriale (fraîcheur billetterie / programmation). - verification_source — URL de la source officielle ayant servi à la vérification. - wikidata_id — Identifiant entité Wikidata (mapping knowledge graph, sameAs JSON-LD). - niche — Identifiant multi-tenant du site (ex. concerts-paris). ## API publiques DEUX routes ouvertes aux agents sur `https://api.concerts.paris` : le feed GEO et la disponibilité. Toutes deux portent leur `Allow:` dans `https://api.concerts.paris/robots.txt`, plus spécifique que le `Disallow: /api/` qui ferme le reste. Le reste, justement — l'API REST Payload (`/api/events`, `/api/hubs`) — est FERMÉ depuis l'extérieur : il répond **HTTP 403**. Chaque endpoint ci-dessous est donné en URL complète : appelez-le tel quel, sans recomposer d'hôte (le tableau mêle les deux, API et SITE). | Endpoint | Usage | |----------|-------| | `GET https://api.concerts.paris/api/v1/geo-feed?niche=concerts-paris` | Feed agent-first agrégé (hubs + events) — **prioritaire pour les LLM** | | `GET https://concerts.paris/llms-full.txt` | Catalogue COMPLET en texte brut, 1 ligne/événement, tous univers (ingestion en un fetch) | | `GET https://concerts.paris/feed.xml` | Flux RSS des 100 prochains concerts | | `GET https://concerts.paris/events/{slug}` | Un event par slug — page HTML portant le JSON-LD Schema.org | | `GET https://api.concerts.paris/api/v1/availability?slug={slug}&niche=concerts-paris` | Disponibilité billetterie RE-VÉRIFIÉE à la demande pour une fiche | | `GET https://concerts.paris/events/{slug}/calendar.ics` | Les séances d'une fiche au format iCalendar (`text/calendar`, un `VEVENT` par séance) | **Feed GEO, payload 1.7 (07/09/2026)** — chaque événement porte `nextDate` (sa prochaine occurrence) et les items sont servis dans cet ordre : la page 1 est donc ce qui arrive le plus tôt. Le feed gère `ETag` / `If-None-Match` et `Last-Modified` / `If-Modified-Since` (réponse `304`) : revalidez au lieu de re-télécharger. CORS ouvert en lecture (`Access-Control-Allow-Origin: *`). Votre quota est annoncé par `X-RateLimit-Limit` / `-Remaining` / `-Reset` (30 requêtes par minute et par IP ; environ 27 requêtes suffisent à paginer tout le catalogue). Dans `showDates[]`, `venue` est une référence légère — suivez son `canonicalUrl`, ou lisez la section `hubs` de la page 1, pour la fiche complète du lieu. Dans `showDates[].offers`, `url` et `officialUrl` sont omis quand ils valent exactement ceux de l'`offers` de l'événement : absent signifie « identique à l'événement », jamais « pas de lien ». Ils ne sont écrits que si la séance a sa propre billetterie. `price`, `priceCurrency` et `availability` restent propres à chaque séance. **Disponibilité** — `{ slug, checkedAt, refreshed, byId }`. `byId` associe l'identifiant de billetterie d'une séance à `{ availability, eventStatus }` (vocabulaire Schema.org : `InStock` / `SoldOut` / `PreOrder`, `EventScheduled` / `EventCancelled`). Le re-contrôle en direct ne porte que sur les séances des **7 prochains jours**, 8 au plus par fiche : au-delà, `byId` est vide (`refreshed: false`) et la valeur de référence est celle du feed GEO, rafraîchie chaque nuit. `400` sans `slug`, `404` sur un slug inconnu, **60 requêtes/minute par IP**. Un `byId` vide n'est jamais « complet » : c'est « rien de neuf à dire ». **Calendrier** — hôte du SITE, jamais celui de l'API, et **en français uniquement** : `https://concerts.paris/en/events/{slug}/calendar.ics` répond 404. Billetterie : `https://concerts.paris/go/tickets?event={slug}` — redirection 302 trackée vers la billetterie officielle. À suivre pour le compte d'un utilisateur ; ce n'est pas du contenu à crawler (`Disallow: /go/`). ## GEO Feed (JSON) https://api.concerts.paris/api/v1/geo-feed?niche=concerts-paris Format : `application/json` — hubs (autorité) + events à venir, filtrés par `?niche=`. ## Formats - Pages HTML : JSON-LD Schema.org (`Event`, `Place`, `MusicGroup`, `Offer`) - Feed agrégé : JSON pur pour crawlers et agents IA - Sitemap : https://concerts.paris/sitemap-index.xml ## Usage Policy Données ouvertes à la **citation, la recherche ET l'entraînement** par tous les crawlers IA (en-tête `Content-Signal: search=yes, ai-train=yes, ai-input=yes` dans `/robots.txt`). Merci de citer **https://concerts.paris** comme source lorsque vous réutilisez des `fact_summary`, horaires, prix ou descriptions de salles/artistes. Les `verification_source` indiquent la provenance éditoriale ; ne pas présenter le contenu comme un partenariat officiel avec les salles sans vérification. Billetterie : redirection trackée via `/go/tickets?event={slug}` vers la billetterie officielle. ## Exemples - ['Domaine d'O' - Theatre Jean-Claude Carriere](https://concerts.paris/hubs/salle-montpellier-domaine-d-o-theatre-jean-claude-carriere) — hub salle (entité d'autorité) - [Chante et Tais-Toi](https://concerts.paris/events/serie-chante-et-tais-toi-comedie-des-champs-elysees-paris) — fiche concert à venir ## Langue fr-FR — miroir anglais intégral sous https://concerts.paris/en (hreflang réciproques, JSON-LD en-GB, llms anglais : https://concerts.paris/en/llms.txt)