Récupérer une liste de résultats via l'API

L’API de theses.fr a fait l’objet d’une documentation complète et d’un dépôt sur le site api.gouv.fr 

L’URL d’accès de l’API de recherche de theses.fr est : https://theses.fr/api/v1/theses/recherche/

Les paramètres et la syntaxe de la requête

Les différents paramètres de l’API sont :

  •  ?q= : lancement de la requête

  • debut= : numéro de la première thèse du lot de thèse à afficher ou exporter

  • nombre= : nombre de thèses contenues dans le lot à exporter

  • tri= : la façon dont sont triés les résultats

    • pertinence
    • dateAsc = date croissante
    • dateDesc = date décroissante
    • auteursAsc = auteurs A-Z
    • auteursDesc = auteurs Z-A
    • disciplineAsc = discipline A-Z
    • disciplineDesc = discipline Z-A
    • personnesAsc = personnes A-Z
    • personnesDesc = personnes Z-A
  • filtres=[] : paramétrage des filtres (apparaît uniquement lorsque des filtres ont été activés dans l’interface de theses.fr)

Les paramètres sont articulés entre eux par le symbole &.

ExempleExemples

https://theses.fr/api/v1/theses/recherche/?q=technologie : la requête renvoie l’ensemble des thèses qui contiennent le mot « technologie » dans leurs métadonnées descriptives

https://theses.fr/api/v1/theses/recherche/?q=technologie&tri=dateDesc : la requête renvoie l’ensemble des thèses qui contiennent le mot « technologie » dans leurs métadonnées descriptives, classées par ordre décroissant de date de soutenance ou d’inscription

https://theses.fr/api/v1/theses/recherche/?q=technologie&tri=dateDesc&debut=500&nombre=1000 : la requête renvoie l’ensemble des thèses qui contiennent le mot « technologie » dans leurs métadonnées descriptives, classées par ordre décroissant de date de soutenance ou d’inscription, à partir du numéro 500 dans la liste de résultats, jusqu’au numéro 1499 (1000 résultats récupérés).

Utiliser le paramètre query (q)

Dans le paramètre query (q=), vous pouvez interroger les champs de recherche listés sur la page : Les champs interrogeables.

A l’intérieur d’une même requête, vous pouvez interroger simultanément plusieurs champs de l’index. Les champs sont articulés entre eux par des opérateurs booléens AND, OR ou AND NOT, encadrés par des espaces encodés (%20).

ExempleExemples

https://theses.fr/api/v1/theses/recherche/?q=titrePrincipal:(technologie)%20OR%20sujetsLibelle:(technologie)

La requête renvoie l’ensemble des thèses qui contiennent le terme « technologie » dans le champ « titre » ou dans les « mots-clés libres ».

Vous pouvez également articuler plusieurs éléments de recherche dans un même champ (au sein d’une même parenthèse), toujours à l’aide des opérateurs booléens AND, OR ou AND NOT encadrés par des espaces encodés (%20).

https://theses.fr/api/v1/theses/recherche/?q=titrePrincipal:(technologie%20OR%20plasma)%20OR%20sujetsLibelle:(technologie%20OR%20plasma)

La requête renvoie l’ensemble des thèses qui contiennent soit, dans le champ « titre », le terme « technologie » ou « plasma », soit, dans le champ « mots-clés libres », le terme « technologie » ou « plasma ».

https://theses.fr/api/v1/theses/recherche/?q=(Tourisme%20OR%20Hôtellerie%20OR%20Loisir%20OR%20Évènementiel)%20AND%20status:(soutenue)%20AND%20dateSoutenance:(2005) 

La requête renvoie l’ensemble des thèses qui contiennent les termes « Tourisme » ou « Hôtellerie » ou « Loisir » ou « Evènementiel », qui sont en statut « soutenue », avec une date de soutenance située en 2005.

Si vous souhaitez effectuer une recherche sur une période donnée, la syntaxe du champ date est la suivante : dateSoutenance:(%5BAAAA-MM-JJ%20TO%20AAAA-MM-JJ%5D) ou dateSoutenance:([AAAA-MM-JJ TO AAAA-MM-JJ])

https://theses.fr/api/v1/theses/recherche/?q=(Tourisme%20OR%20Hôtellerie%20OR%20Loisir%20OR%20Évènementiel)%20AND%20status:(soutenue) %20AND%20dateSoutenance:(%5B2020-01-01%20TO%202024-01-31%5D) : la requête renvoie l’ensemble des thèses qui contiennent les termes « Tourisme » ou « Hôtellerie » ou « Loisir » ou « Evènementiel », qui sont en statut « soutenue », avec une date de soutenance comprise entre le 01/01/2020 et le 31/01/2024.

https://theses.fr/api/v1/theses/recherche/?q=*%20AND%20dateInsertionDansES:(%5B2024-03-15%20TO%202024-03-31%5D)

La requête renvoie toutes les thèses mises à jour dans l’index entre le 15/03/2014 et le 31/03/2014

Caractères à échapper

Le moteur de recherche Elastic Search utilise les caractères suivants comme caractères signifiants : + - && || ! ( ) { } [ ] ^ " ~ * ? : \

Si vous saisissez ces caractères dans les valeurs des différents champs de recherche ou des filtres, votre requête ne pourra pas être comprise. Vous devrez au préalable les échapper, en les faisant précéder du caractère spécial \ (%5C).

Exemple

https:// theses.fr/api/v1/theses/recherche/?q=Ursula%20%5C(1969%5C)&debut=0&nombre=10&tri=pertinence

La requête renvoie l’ensemble des thèses qui contiennent le mot « Ursula » et le terme « (1969) ». Les parenthèses sont échappées pour ne pas perturber la requête.

Les champs interrogeables

Données relatives au statut de la thèse

  • status:(*) = toutes les thèses

  • status:(soutenue) = uniquement les thèses soutenues

  • accessible:oui = les thèses accessibles en ligne

  • status:(enCours) = uniquement les thèses en cours

Paramètres de date

  • datePremiereInscriptionDoctorat:() : date de première inscription en doctorat

  • dateSoutenance:() : date de soutenance

  • dateInsertionDansES:() : date de dernière mise à jour des données de la thèse dans l’index

Les dates sont enregistrées entre parenthèses sous la forme :

  • pour une année donnée : AAAA. Cette requête fonctionne uniquement pour les thèses imprimées, dont la date de soutenance est enregistrée sous la forme AAAA-01-01 dans la base de données (seule l’année de soutenance est connue)

  • pour une date donnée : AAAA-MM-JJ

  • pour une période donnée : [AAAA-MM-JJ TO AAAA-MM-JJ]

Description bibliographique de la thèse

  • titrePrincipal:(XXX) : titre principal de la thèse

  • sujetsLibelle:(XXX) : mots-clés libres par libellé

  • sujetsRameauLibelle:(XXX) : mots-clés contrôlés par libellé

  • sujetsRameauPpn:(XXX) : mots-clés contrôlés par identifiant

  • resumes.\*:(XXX) : résumés. Il est possible de spécifier la langue des résumés dans lesquels la recherche doit être effectuée, sous la forme resumes.XX:() où XX correspond au code ISO 639-1 de la langue concernée.

  • discipline:(XXX) : discipline

Description des personnes

  • auteursNP:(XXX) : nom et/ou prénom de l’auteur(s)

  • auteursPpn:(XXX) : identifiant de l’auteur(s)

  • directeursNP:(XXX) : nom et/ou prénom du/des directeur(s)

  • directeursPpn:(XXX) : identifiant du/des directeur(s)

  • presidentJuryNP:(XXX) : nom et/ou prénom du président du jury

  • presidentJuryPpn:(XXX) : identifiant du président du jury

  • rapporteursNP:(XXX) : nom et/ou prénom du/des rapporteur(s)

  • rapporteursPpn:(XXX) : identifiant  du/des rapporteur(s)

  • membresJuryNP:(XXX) : nom et/ou prénom du/des examinateurs

  • membresJuryPpn:(XXX) : identifiant du/des examinateurs

Description des structures

  • etabSoutenanceN:(XXX) : nom de l’établissement de soutenance

  • etabSoutenancePpn:(XXX) : identifiant de l’établissement de soutenance par identifiant

  • etabsCotutelleN:(XXX) : nom de l’établissement de cotutelle

  • etabsCotutellePpn:(XXX) : : identifiant de l’établissement de cotutelle

  • ecolesDoctoralesN:(XXX) : nom de l’école(s) doctorale(s)

  • ecolesDoctoralesPpn:(XXX) : : identifiant de la ou les école(s) doctorale(s)

  • partenairesRechercheN:(XXX) : nom du ou des partenaire(s) de recherche

  • partenairesRecherchePpn:(XXX) : : identifiant du/des partenaire(s) de recherche

Autres paramètres

  • nnt:(XXXXXXXXXXXX) : numéro national de la thèse, sur 12 caractères

  • numSujet:(sXXXXX) : identifiant du projet de thèse dans la base de données STEP, avec le préfixe s

  • numSujetSansS:(XXXXX) : identifiant du projet de thèse dans la base de données STEP, sans le préfixe s

  • codeEtab:(XXXX) : code court de l’établissement, sur 4 caractères. Voir la liste des codes courts : /sudoc/regles/CodesUnivEtab.htm

  • oaiSetNames:(XXXXXXXX) :  domaine thématique de la thèse, correspondant à l’une des valeurs de la liste : https://theses.fr/schemas/tef/recommandation/tef_oai_setSpec.html

  • langues:(XX) : langue de la thèse, sur deux caractères composant le code ISO 639-1 de la langue sélectionnée.