Google Script - Siret / Sirene

Bonjour , bon script, @David_Lopes comment as tu fais pour ajouter les telephones à partir du siret ? à partir de quel site ?

Hello,

Au top ce petit tuto @cebri ! Merci :slight_smile:

Petite question: le return du script comprend la TVA intracommunautaire, le numéro de siret, la raison sociale, etc.

Quand j’appelle la fonction: =sirene(B2)
Ca me return le numéro de TVA intracommunautaire

Quelle est l’astuce pour retourner la raison sociale sans changer la fonction?

J’ai testé d’appeler l’index de la liste retournée, par exemple =sirene(B2[2]) ou =sirene(B2; 2) mais ça ne fonctionne pas.

J’ai également tenté =sirene(B2; ‹ nom_raison_sociale ›) et =sirene(B2; ‹ data.nom_raison_sociale ›) sans plus de succès.

j’avais déjà scraper la base avant de vouloir faire de l’enrichissement par le biais de Siret/sirene

tu n’as rien a faire normalement. avec ce script tu récupères toutes les infos listées dans le tableau ([…])

Si tu ne les récupères pas, c’est que ton SIRENE n’est peut etre pas valide. Regardes ici si tu as bien les infos que tu cherches
https://entreprise.data.gouv.fr/api/sirene/v1/siren/789566353 (en remplacant mon siren par le tien)

1 « J'aime »

Là on est en plein dans le sujet
J’ai exactement les mêmes besoins en partant d’une base d’entreprise de ma cible avec Siren dans 90% des cas mais qui commence à dater.
Il faudrait aller vérifier l’état de la société Active ou plus
Pour les sociétés actives la mise à jour des données classiques NAF, effectifs, nbre d’établissements…
Quelques sociétés dont il faudrait rechercher le siren
Au fait @David_Lopes j’ai pas compris comment tu as fait pour les n° de téléphone qui a ma connaissance ne sont pas partie du Siren
A la différence des autres participants à ce fil, j’suis un bleu en Gscripts :slight_smile: mais je me soigne ou du moins j’essaie.
Et surtout je manque de temps.
Est-ce que l’un de vous pourrais m’aider à faire ou faire contre rémunération ?

Merci

PS: @Mapi je vais voir ton produit pour essayer de comprendre les applications en terme d’usages

Merci @cebri ! Il ya clairement quelque chose qui m’échappe, je vais continuer de chercher de mon côté :slight_smile:

A priori, mon siren est bien valide. J’ai fait le test avec le tien également et je récupère le même résultat, à savoir, la donnée qui correspond au premier élément retourné dans le script, donc data.numero_tva_intra

return [[ 
    data.numero_tva_intra, data.siret, data.nom_raison_sociale, 
    data.l4_declaree, data.l6_declaree, data.libelle_activite_principale, 
    data.categorie_entreprise, data.date_creation_entreprise
    ]]

Je viens de regarder l’api, le format a changer. L’erreur ne vient pas de toi !
==> J’ai updaté l’article avec le bon code.

En gros ils ont ajouté un noeud « siege_social » pour toutes les datas autre que la TVA, et le code n’entrait pas dedans, donc pas de valeurs. Du coup, a la place de data.siret il faut data.siege_social.siret, etc.

J’ai retesté avec le nouveau code, ca fonctionne :+1:

4 « J'aime »

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…