• Contenu principal
  • Menu de navigation
  • Recherche
  • Pied de page
Logo BnF

API et jeux de données

    • API
    • Jeux de données brutes
    • Jeux de données transformées
    • Par source
    • Découvrir api.bnf.fr
    • Documentation
    • Exemples d'utilisations
    • Services
    • Chercheurs
    • Métiers du livre
  • Blog
XML SRU Chercheurs Métiers du livre Dublin Core Intermarc UNIMARC

API SRU Catalogue général


Présentation

Le service SRU (Search/Retrieve via URL) du Catalogue général permet d’interroger le Catalogue général de la BnF via de simples requêtes HTTP et de récupérer l’ensemble des notices du catalogue général (bibliographiques ou d'autorité) dans différents formats encapsulés dans du XML.

Il est accessible à tous sans authentification. Il est interrogeable manuellement depuis n’importe quel navigateur Internet ou intégrable dans du code informatique (web service RESTful ; protocole HTTP en mode GET ou POST).

Pour faciliter l'utilisation des critères et la construction des requêtes, un formulaire a été mis en place.

Le service SRU Catalogue répond à la norme 1.2 du protocole SRU disponible sur le site de la Bibliothèque du Congrès.

Console

Construction des requêtes

Ce service permet de récupérer toutes les notices bibliographiques et d’autorité du Catalogue général de la BnF en interrogeant celui-ci via un grand nombre de critères de recherche, comme par exemple :

  • pour les notices bibliographiques : mots, auteur, titre, sujet, type de document, numéro de notice, ARK, ISBN… ;
  • pour les notices d’autorité : mots, forme retenue ou rejetée, type de notice, numéro de notice, ARK, ISNI…

Structure des requêtes et critères

Toutes les requêtes doivent débuter par : 

https://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=

C’est dans le paramètre "query" (&query=...) que la requête s'exprime, grâce à des critères.

Pour accéder à la liste des critères disponibles : 

  • page explicative (xml) ;
  • tableau des critères (pdf) ;
  • ou directement sur le formulaire de construction de requêtes.

Relations entre termes d'un critère

Pour chaque critère, on peut chercher 'tous les mots' (relation "all"), 'un des mots' (relation "any"), ou une 'expression exacte' (relation "adj").

Par exemple, pour chercher les notices bibliographiques contenant tous les mots "Julien" et "Gracq" (critère "bib.anywhere" avec relation "all"), il faut utiliser la requête suivante :

https://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=bib.anywhere all "julien gracq"

Les critères de date permettent d'autres relations : supérieur à (>), supérieur ou égal à (>=), égal à (=), inférieur à (>), inférieur ou égal à (<=), entre (within).

Le détail des relations disponibles pour chaque critère est disponible dans le tableau des critères (pdf), ainsi que dans des menus déroulants sur le formulaire de construction de requêtes.

Combinaisons de critères

Il est possible de combiner plusieurs critères grâce aux opérateurs "and", "or" ou "not".

Par exemple, la requête : https://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=(bib.author all "romain gary") and (bib.title all "la promesse de l'aube") not (bib.doctype any "g h v")

permet de retrouver tous les documents "La promesse de l'aube"de Romain Gary qui ne sont ni des enregistrements sonores, ni des images animées, ni des spectacles.

Classement des résultats 

Il est possible de paramétrer le classement des résultats au moment de lancer la requête :

  • tri par auteurs, de façon croissante A..Z (en ajoutant à la requête "sortBy Aut/sort.ascending") ou décroissante Z..A ("sortBy Aut/sort.descending")
  • tri par titres, croissants A..Z ("sortBy Tit/sort.ascending") ou décroissants Z..A ("sortBy Tit/sort.descending")
  • tri par dates, croissantes ("sortBy Dat/sort.ascending") ou décroissantes ("sortBy Dat/sort.descending").

Exemple : 

Sur le formulaire de construction de requête, ces tris sont accessibles via un menu déroulant "Tri", au pied du formulaire (sous le menu déroulant "Format en sortie").

Formats de sortie

Les notices peuvent être renvoyées en UNIMARC, en Intermarc ou en Dublin Core (uniquement pour les notices bibliographiques), encapsulé dans du XML (marcXchange 2.0 - ISO25577). L'encodage est l'UTF-8.

Le format par défaut est le format UNIMARC.

Il est possible de choisir parmi 5 schémas de sortie en utilisant le paramètre recordSchema dans la requête :

  • UNIMARC (avec ou sans analytiques - sous-notices) / pour les notices bibliographiques et notices d'autorités :
    • unimarcXchange
    • unimarcXchange-anl
      (voir la notice exemple dans le Catalogue général)
  • Intermarc (avec ou sans analytiques - sous-notices) / pour les notices bibliographiques et notices d'autorités :
    • intermarcXchange
    • intermarcXchange-anl
      (voir la notice exemple dans le Catalogue général)
  • Dublin Core (uniquement pour les notices bibliographiques) :
    • dublincore

Réponses et résultats

Structure des réponses XML

Conformément à la norme SRU 1.2, la réponse à une requête est renvoyée par le serveur sous forme XML. Cette réponse comporte : 

  • la version du SRU implémenté (1.2), dans <srw:version> ;
  • le rappel de la requête effectuée, dans <srw:echoedSearchRetrieveRequest> ;
  • le nombre de résultats, dans <srw:numberOfRecords> ;
  • et l'ensemble des notices correspondant à la requête, encapsulées dans l'élément <srw:records>, chaque notice étant elle-même encapsulée dans un élément <srw:record>.

Les notices obtenues sont, selon le format de sortie demandé, soit directement en Dublin Core (nativement XML), soit en UNIMARC ou Intermarc encapsulés dans du marcXchange 2.0 (ISO25577). Le MarcXchange fournit, pour chaque notice, l'identifiant pérenne de la notice (ark), le format MARC utilisé (UNIMARC ou Intermarc), et le type de notice (bibliographic ou authority), puis chacune des zones MARC de la notice avec en attribut l'étiquette de la zone MARC.

Pour accéder à la documentation des format Intermarc, UNIMARC et Dublin Core, voir les rubriques dédiées en pied de page.

Pour plus d'information, consultez l'annexe de la documentation complète du service SRU (màj : 2019). Les développeurs y trouveront notamment comment récupérer ces éléments d'information au moyen de XPath (pp. 13-17).

Tri des résultats

Il est possible de paramétrer le classement des résultats tel qu'il s'affichera dans la réponse XML, en utilisant un tri au moment de lancer la requête :

  • tri par auteurs, de façon croissante A..Z (en ajoutant à la requête "sortBy Aut/sort.ascending") ou décroissante Z..A ("sortBy Aut/sort.descending")
  • tri par titres, croissants A..Z ("sortBy Tit/sort.ascending") ou décroissants Z..A ("sortBy Tit/sort.descending")
  • tri par dates, croissantes ("sortBy Dat/sort.ascending") ou décroissantes ("sortBy Dat/sort.descending").

Exemple d'un tri par date croissante.

Sur le formulaire de construction de requête, ces tris sont accessibles via un menu déroulant "Tri", au pied du formulaire (sous le menu déroulant "Format en sortie").

Exploitation des pages de résultats

Pour parcourir l'ensemble des résultats et les récupérer 100 par 100 :

  • Pour récupérer les 100 premières notices bibliographiques de l'Univers "Musique", de type "enregistrement sonore", la requête est : 
    https://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=(bib.set any "music") and (bib.doctype any "g")&startRecord=1&maximumRecords=100
  • Pour récupérer les 100 notices suivantes (on démarre à la 101ième et on demande les 100 suivantes) : 
    https://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=(bib.set any "music") and (bib.doctype any "g")&startRecord=101&maximumRecords=100

Exemples de requêtes

Pour débuter dans l'utilisation du service SRU, il peut être utile de commencer à effectuer des recherches avancées sur le Catalogue général (notices bibliographiques et notices d'autorité), et de comparer les requêtes SRU possibles.

L'utilisation du formulaire de construction de requête permet d'élaborer et d'exécuter rapidement des requêtes.

Les exemples ci-dessous peuvent également permettre de mieux comprendre le fonctionnement du service.

Récupérer des notices par identifiant ark ou numéro de notice
  • Pour récupérer les notices bibliographiques d'identifiant pérenne ark : ark:/12148/cb38499612v et ark:/12148/cb402237466, la requête est :
    • query=bib.persistentid any "ark:/12148/cb38499612v ark:/12148/cb402237466"
    • ou via leurs numéros de notice: 
      query=bib.recordid any "38499612 40223746"
  • Pour récupérer la notice d'autorité de Victor Hugo, la requête SRU est :
    • query=aut.persistentid any "ark:/12148/cb11907966z"
    • ou query=aut.recordid any "11907966" 
      (voir la même notice dans le catalogue général au format public, UNIMARC ou Intermarc)
  • Les critères bib.persistentid et aut.persistentid permettent également de mettre à jour l'ark de vos notices BnF si besoin.
Récupérer des ensembles de notices
  • Pour récupérer l'ensemble des notices bibliographiques de type "Monographie" ou "Périodique" du Catalogue général de la BnF :
    query=bib.recordtype any "mon per"
  • Pour récupérer l'ensemble des notices d'autorité de type "Personne" ou "Collectivité" de la BnF :
    query=aut.type any "pep org"
Récupérer des notices de l'univers "Jeunesse" de la BnF
  • Récupérer l'ensemble des notices bibliographiques de l'univers "Jeunesse" :
    query=bib.set any "youth"
  • Récupérer les "monographies" pour les documents de type "Texte imprimé et livre numérique" de l'univers Jeunesse et publiées avant 1900 : 
    query=bib.set any "youth" and bib.recordtype any "mon" and bib.doctype any "a" and bib.publicationdate < "1900"
  • Récupérer le type de document "Enregistrement sonore",  "Document électronique" ou "Image animée" publiées chez Hachette :
    query = bib.set any "youth" and bib.doctype any "g s h" and bib.publisher any "hachette"
  • Récupérer l'ensemble des notices bibliographiques issues du CNLJ : 
    query=bib.otherid any "UnivJeun0" &recordSchema=intermarcXchange 
    La zone Intermarc 833, si elle est renseignée, vous fournira les notices critiques, avis critiques, public destinataire ou genre du CNLJ. 
    Par exemple les coups de coeur CNLJ pour le public 0-3ans : query=bib.otherid any "UnivJeun0" and bib.anywhere any "AviC6 JAg0003" 
    (ou en zone Unimarc 329).
  • Récupérer la notice d'autorité de Claude Ponti via son identifiant ISNI : 
    query=aut.isni all "0000000121214815" 
    et toutes les notices bibliographiques liées à Claude Ponti en tant qu'auteur : 
    query=author2bib any "12056784"  
    ou toutes les notices bibliographiques au sujet de Claude Ponti : 
    query=subject2bib any "12056784".
  • Récupérer les notices de spectacles de l'univers Jeunesse : 
    query = bib.set any "youth" and bib.doctype any "v"&recordSchema=intermarcXchange 
    (les notices de spectacles ne sont qu'au format Intermarc).
  • Récupérer le(s) document(s) numérisé(s) dans Gallica d'une notice de l'univers Jeunesse :
    query=bib.persistentid any "ark:/12148/cb44516012j"
    Les liens vers le(s) document(s) Gallica se trouvent en Unimarc en 856$u.
  • Récupérer les notices bibliographiques de l'univers jeunesse de genre ou sujet "Bande dessinée": 
    query=bib.set any "youth" and bib.subject adj "bande dessinee" (adj=expression exacte) 
    et la même requête dans le catalogue général. 
    Les bandes dessinées du CNLJ : 
    query=bib.otherid any "UnivJeun0" and bib.subject any "JnBDessi"
Récupérer des notices de l'univers "Musique" de la BnF
  • Récupérer l'ensemble des notices bibliographiques de l'Univers "Musique", de type de document "Enregistrement sonore" et publiées en 2018 : 
    query=bib.set any "music" and bib.doctype any "g" and bib.publicationdate = "2018"
  • Récupérer les notices bibliographiques liées à Jean-Louis Aubert en tant qu'auteur : 
    query=author2bib any "13935859" 
    ou celles liées à l'oeuvre Cosi fan tutte de Mozart excepté les spectacles :
    query=(bib.work2bib all "13915297") not (bib.doctype=v)
  • Récupérer l'ensemble des œuvres musicales (TUM: Titre Uniforme Musical) de la BnF (notices d'autorité validées) :
    query=aut.type any "tum"
Récupérer des notices bibliographiques par identifiant

Voici plusieurs requêtes par identifiant de notice bibliographique : 

ark ;
numero de notice ; 
ISBN ; 
EAN ; 
ISMN (International Standard Music Number) ; 
ISRC (International Standard Recording Code) ; 
Reference commerciale - Cotage Edition (musique) ;
Numero de disque ancien

Récupérer des notices d'autorité par identifiant

Voici plusieurs requêtes par identifiant de notice d'autorité : 

ark ; 
numéro de notice ; 
ISNI 

Points de vigilance

  • Contextes bib et aut : 
    Les recherches dans les contextes 'bibliographique' (préfixe "bib.") ou 'autorité' (préfixe "aut.") ne peuvent être combinées.
    Cependant, certains critères permettent directement des combinaisons (voir la catégorie "Notices liées" dans le tableau des critères), par exemple : bib.author2bib qui permet de renvoyer toutes les notices bibliographiques liées à une notice d'autorité en tant qu'auteur.
  • Notion de notices d'autorité validées : 
    Par défaut, seules les notices d'autorité de référence sont interrogeables (notices 'validées' par la BnF). Le critère 'aut.status' doit être utilisé pour élargir à l'ensemble des notices d'autorité.
  • Spectacles et autorités Dewey non converties en UNIMARC :
    Pour les notices de spectacle et les notices d'autorité Dewey, il n'est pas fourni de conversion en UNIMARC.
  • Pour récupérer les données Gallica via le SRU :  
    En UNIMARC, les zones 856 donnent les liens ark vers les documents dans Gallica lorsqu'ils ont fait l'objet d'une numérisation (exemple dans BnF Catalogue général ou en SRU). Par contre, ces liens ne sont pas présents en Intermarc. Le critère bib.digitized permet de demander s'il existe une version numérisée à la BnF.

Documentation

L'ensemble de la documentation BnF associé à ce service est :

  • Tableau des critères SRU [fichier .pdf – 308 Ko – 07/2026 – 7 p.]
  • Petit manuel pour construire vos requêtes SRU avec beaucoup d'exemples [fichier .pdf – 337 Ko – 24/01/19 – 8 p.]
  • Documentation complète du service SRU de la BnF [fichier .pdf – 349 Ko – 24/01/19 – 17 p.]

Voir également la page BnF expliquant les principes du protocole SRU et la norme SRU sur le site de la Bibliothèque du Congrès.

Aide


Dublin Core Format bibliographique

Le Dublin Core simple propose 15 attributs, facultatifs et répétables :

Contenu

  • Titre dc:title   
  • Sujet dc:subject   
  • Description dc:description   
  • Source, origine de l'information dc:source   
  • Langue dc:language   
  • Relation avec d'autres ressources dc:relation   
  • Couverture chronologique et géographique dc:coverage

Propriété intellectuelle

  • Auteur dc:creator   
  • Contributeur dc:contributor   
  • Editeur dc:publisher   
  • Droits, conditions d'utilisation dc:rights

Instanciation

  • Date dc:date   
  • Type de document (texte, image, son, etc) dc:type   
  • Format dc:format   
  • Identifiant dc:identifier

Pour aller plus loin : 
Présentation des 15 éléments sur le site officiel du Dublin Core
Guide d'utilisation du Dublin Core à la BnF décrivant notamment les choix d'implémentation spécifiques à l'établissement


Intermarc Format bibliographique

Le format Intermarc était le format de travail de la Bibliothèque nationale de France jusqu'en avril 2026. Depuis le 1er juin, les données bibliographiques sont produites à la BnF au format Intermarc NG.
Les données du Catalogue général continuent à être stockées et diffusées en Intermarc ; pour toutes les notices créées ou modifiées depuis le 1er juin 2026, cet Intermarc est le fruit d'une conversion depuis Intermarc NG (la "conversion retour").

Documentation du format Intermarc de diffusion des métadonnées descriptives de la BnF :

  • Notices d'autorité
  • Notices bibliographiques

UNIMARC Format bibliographique

UNIMARC (acronyme pour UNIversal MARC) est le format développé par l’IFLA pour permettre l’échange de l’information bibliographique informatisée et servir d’interface entre les formats MARC nationaux.

En France, c’est le format officiel d’échange de l’information bibliographique et le format de travail du Sudoc (Système universitaire de documentation) et de la plupart des bibliothèques publiques.

Le manuel UNIMARC permet de consulter l'organisation des informations par blocs.

Le format UNIMARC de diffusion de la BnF résulte de la conversion en UNIMARC des données en Intermarc du Catalogue général de la BnF. 
Il respecte la structure du Manuel UNIMARC défini au niveau international par l'IFLA, mais sans perdre pour autant la richesse des données saisies à la source en Intermarc, afin de permettre une réutilisation optimale de ces données dans les catalogues locaux. 
Pour une vue exhaustive des métadonnées descriptives de la BnF en UNIMARC, consulter la documentation du format UNIMARC de diffusion de la BnF. 

Accès

Formulaire de construction de requêtes

Page normative SRU de présentation

Tableau des critères (pdf)

Exemple de requête : https://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=bib.anywhere all "julien gracq"

Fiche Technique
Source des données

Catalogue général de la BnF

Version

1.2

Date de dernière mise à jour

2026

Formats techniques

XML

Formats de description

Dublin Core Intermarc UNIMARC

Technologies

SRU

Public

Chercheurs Métiers du livre

Licence

Licence ouverte de l’État

Contact
coordination-bibliographique@bnf.fr
Partage
X Facebook Linkedin
  • © 2020 BnF
  • À propos
  • Conditions d'utilisation
  • Mentions légales
  • Politique de confidentialité
  • RSS
  • Écrire à la BnF
  • Accessibilité (non conforme)
  • DCAT
X facebook instagram youtube
Image agrandie dans une fenêtre modale