Google Script - Siret / Sirene

Aaaaah ok je vois maintenant! Effectivement, le « numero_tva_intra » est tout seul en bas quand on lance la requête https://entreprise.data.gouv.fr/api/sirene/v1/siren/789566353

Merci beaucoup pour ton aide @cebri :smiley:

2 « J'aime »

Top merci a tous , vraiment très précieux

bonjour, dans le meme style, je recherche à récupérer le siren à partir de la raison sociale.

ci dessous mon script :

function siren(raison) {
  var url = "https://entreprise.data.gouv.fr/api/sirene/v1/full_text/" + raison;
  var response = UrlFetchApp.fetch(url);
  var json = response.getContentText();
  var data = JSON.parse(json);
  return [[ 
    data.l1_normalisee
    ]];
}

"JSON string seems to be invalid !"

de meme en changeant les elements par

data.etablissement.l1_normalisee
data.etablissement.0.l1_normalisee

je n’arrive pas à obtenir de résultat.

merci de vos conseils

D’un point de vue syntaxe en JavaScript object, on ne peut pas écrire en « dot notation » quelque chose du genre etablisssement.0 pour accéder au premier élément du tableau établissement.

Tu devrais utiliser la notation entre crochets pour faire référence à tel ou tel item d’une liste:

data.etablissement[0]

1 « J'aime »

Merci ça a marché

Attention @jarodfrance, pour l’avoir fait plusieurs fois via cette API je peux te dire que les résultats ne sont pas super fiables… Je t’invite à vérifier par toi-même :wink:
Du coup, la technique perd de son intérêt si on est obligé de revérifier manuellement…

1 « J'aime »

L’API sirene open data, pas fiable …??

@ScrapingExpert Je me suis peut-être mal exprimé :wink:
Pour être plus précis :
Si on a le N° SIREN et qu’on cherche le nom de la boite, ça fonctionne parfaitement (forcement, le N° SIREN étant un numéro unique !)
Là où ça se complique c’est quand tu veux faire l’inverse : trouver le SIREN depuis le nom de l’entreprise (ce que cherche à faire @jarodfrance). D’après moi, cela s’explique par ces 2 raisons :

  • existence d’homonymes
  • nom de l’entreprise sur ton fichier qui ne matche pas à 100% avec le nom présent sur la base sirene

J’ai déjà testé plusieurs fois et je me suis rendu compte que les résultats n’étaient vraiment pas top (cas typique : l’API trouve bien un N° SIREN mais celui-ci ne correspond pas à l’entreprise recherchée)…
J’ai l’impression qu’il est possible d’optimiser ces résultats en rajoutant en input l’adresse complète de l’établissement. Je n’ai pas encore eu le temps d’approfondir ces tests cependant :wink:

1 « J'aime »

Ah, oui effectivement.

C’est le fameux problème de recherche par nom d’entité, assez foireux en général, car chaque source/site y va de sa propre dénomination pour chaque entité, introduisant ainsi énormément de « bruit parasite » dans les noms, synonymes, labels, etc, ce qui fait qu’un chat ne s’appelle plus un chat mais un mouton :confused:

Le mieux à faire dans ce type de situation, c’est de ne pas se limiter à la recherche avec le seul nom d’entreprise, mais coupler cela avec au minimum code postal/ville, et pourquoi pas d’autres critères, histoire de créer une sorte d’identifiant unique.

2 « J'aime »

Hello,

Je suis maintenant confronté au même problème que vous: je dois récupérer le siret de liste de sociétés avec raison sociale et adresse (et plus).

Qu’entends-tu par coupler avec code postal / ville ?
En lisant la documentation, je pensais faire une recherche avec les différents mots clés : « raison sociale » et « code postal »

https://entreprise.data.gouv.fr/api/sirene/v1/full_text/raison_sociale?code_postal=40100

Qu’en pensez-vous ?

Merci d’avance pour votre aide

J’essaye mais sans succès :
Quand je test l’url (https://entreprise.data.gouv.fr/api/sirene/v1/full_text/Euro-bois?code_postal=40180), j’ai un résultat mais dans mon excel la case reste vierge…

function siretisation(raison,code_postal) {

  
var url = "https://entreprise.data.gouv.fr/api/sirene/v1/full_text/" + raison + "?code_postal=" + code_postal;
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var data = JSON.parse(json);
return [[ 
    data.siret
    ]];
}

Essaie https://entreprise.data.gouv.fr/api/sirene/v1/full_text/Euro-bois 40180 laVille

1 « J'aime »

Merci.
Je viens de trouver ; a priori dans google apps script, l’appel du module json ne fonctionne pas.
Quand je fais tout dans google sheet cela fonctionne avec un simple concat puis un appel de la fonction importjson…

Pour ceux qui me l’ont demandé :

Première formule :
=CONCATENER("https://entreprise.data.gouv.fr/api/sirene/v1/full_text/";A4;"?code_postal=";F4;"&libelle_commune=";E4)

Deuxième formule :
=importjson(H4;"/etablissement/0/siret";$A$2:$B$2)

Note :
$A$2:$B$2 : hideHeaders VRAI
ce sont les paramètres du module de @Mapi pour ne pas afficher les catégories (headers).

Pour compléter :
J’ai essayé de récupérer le site web via la méthode de @cebri.
Techniquement tout marche très bien ; c’est très bien expliqué et donc assez simple à réaliser.
Dans mon cas, il s’agit de TPE artisanales avec des sites webs dont le nom de domaine est généralement différent du nom de société. L’autocomplete clearbit trouve des noms de domaine d’entreprises avec le même nom de société mais qui ont acheté le nom de domaine identique à leur nom de société.

t’embete pas à chercher à réinventer la roue…passes par societeinfo tu auras tout ce que tu veux

2 « J'aime »

Bonjour,
J’ai paramétrer le script, cela fonctionne mais de manière aléatoire ce message d’erreur :

Échec de la requête pour https://entreprise.data.gouv.fr. Code renvoyé : 404. Réponse tronquée du serveur : {« message »:« no results found »} (Utilisez l’option muteHttpExceptions pour examiner la réponse entière.) (ligne 3…

Je ne sais comment fiabiliser le script. Avez vous ce problème.

Bonjour à tous,

Je déterre un vieux sujet… mais qui est d’actu dans mon cas précis, je tente de récupérer des SIRET et des departements depuis une raison sociale, j’ai cru comprendre que l’API mentionnée plus haut était morte mais qu’elle avait été remplacé par celle ci [https://recherche-entreprises.api.gouv.fr], cependant étant novice, je ne comprend pas bien comment renseigné mon script afin qu’il fonctionne. Certains d’entre vous seraient en mesure de m’eclairer ?

Merci par avance à tous :smiley:

En effet, cette API est valide et fonctionne.
J’ai le truc pour récupérer les données que tu cherches (SIRET et département) dans Google Sheets.

  1. tu cherches et installes l’add-on ImportJSON (depuis la marketplace Google Workspace)
  2. tu actives l’add-on (dans le menu Extensions)
  3. tu tapes dans ta cellule la formule:
    =IMPORTJSON(A1,« departement,siret »)
    avec A1=https://recherche-entreprises.api.gouv.fr/search?q=XXXX&page=1&per_page=1
    (bien entendu, tu remplaces XXXX par le nom de boites

That’s it :wink:

1 « J'aime »

Hello,
Au cas où ça puisse servir, y a une alternative à ImportJSON qui est en lifetime deal en ce moment :
Apipheny